查看docker与宿主机网卡的对应关系,tcpdump在容器外网络抓包
通过iflink找到网卡对应关系
1. 在宿主机上执行命令ip link
$ ip link
......
13: veth56ecf40@if12: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue mast
er docker0 state UP mode DEFAULT group defaultlink/ether 56:17:10:68:88:b1 brd ff:ff:ff:ff:ff:ff link-netnsid 4
15: veth0f80cbf@if14: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue mast
er docker0 state UP mode DEFAULT group defaultlink/ether fa:e6:8f:3b:01:54 brd ff:ff:ff:ff:ff:ff link-netnsid 5
2. 在容器内查看iflink文件
root@336043b07211:/# docker exec -it nginx-1 /bin/bash
root@336043b07211:/# cat /sys/class/net/eth0/iflink
13
或者通过ethtool来查看
在容器中执行:ethtool -S eth0
root@336043b07211:/# ethtool -S eth0
NIC statistics:peer_ifindex: 13
这样就可以确定:
nginx-1
这个容器在物理机上对应的veth pair是veth56ecf40@if12
(13对应宿主机13:)
tcpdump在容器外网络抓包
这个 13: 就是我们要找的 网卡信息,抓包的时候指定对应的网卡 veth56ecf40
, 现在可以抓包了:
$ tcpdump -i veth56ecf40 port 5050 -A
Tcpdump选项介绍
-A 以ASCII格式打印出所有分组,并将链路层的头最小化。
-c 在收到指定的数量的分组后,tcpdump就会停止。
-C 在将一个原始分组写入文件之前,检查文件当前的大小是否超过了参数file_size 中指定的大小。如果超过了指定大小,则关闭当前文件,然后在打开一个新的文件。参数 file_size 的单位是兆字节(是1,000,000字节,而不是1,048,576字节)。
-d 将匹配信息包的代码以人们能够理解的汇编格式给出。
-dd 将匹配信息包的代码以c语言程序段的格式给出。
-ddd 将匹配信息包的代码以十进制的形式给出。
-D 打印出系统中所有可以用tcpdump截包的网络接口。
-e 在输出行打印出数据链路层的头部信息。
-E 用spi@ipaddr algo:secret解密那些以addr作为地址,并且包含了安全参数索引值spi的IPsec ESP分组。
-f 将外部的Internet地址以数字的形式打印出来。
-F 从指定的文件中读取表达式,忽略命令行中给出的表达式。
-i 指定监听的网络接口。
-l 使标准输出变为缓冲行形式,可以把数据导出到文件。
-L 列出网络接口的已知数据链路。
-m 从文件module中导入SMI MIB模块定义。该参数可以被使用多次,以导入多个MIB模块。
-M 如果tcp报文中存在TCP-MD5选项,则需要用secret作为共享的验证码用于验证TCP-MD5选选项摘要(详情可参考RFC 2385)。
-b 在数据-链路层上选择协议,包括ip、arp、rarp、ipx都是这一层的。
-n 不把网络地址转换成名字。
-nn 不进行端口名称的转换。
-N 不输出主机名中的域名部分。例如,‘nic.ddn.mil‘只输出’nic‘。
-t 在输出的每一行不打印时间戳。
-O 不运行分组分组匹配(packet-matching)代码优化程序。
-P 不将网络接口设置成混杂模式。
-q 快速输出。只输出较少的协议信息。
-r 从指定的文件中读取包(这些包一般通过-w选项产生)。
-S 将tcp的序列号以绝对值形式输出,而不是相对值。
-s 从每个分组中读取最开始的snaplen个字节,而不是默认的68个字节。
-T 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc远程过程调用)和snmp(简单网络管理协议;)。
-t 不在每一行中输出时间戳。
-tt 在每一行中输出非格式化的时间戳。
-ttt 输出本行和前面一行之间的时间差。
-tttt 在每一行中输出由date处理的默认格式的时间戳。
-u 输出未解码的NFS句柄。
-v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息。
-vv 输出详细的报文信息。
-w 直接将分组写入文件中,而不是不分析并打印出来。
查看docker与宿主机网卡的对应关系,tcpdump在容器外网络抓包相关推荐
- 关于fi dd ler 手机抓包 网卡地址地址_超详细的网络抓包神器 tcpdump 使用指南
tcpdump 是一款强大的网络抓包工具,它使用 libpcap 库来抓取网络数据包,这个库在几乎在所有的 Linux/Unix 中都有.熟悉 tcpdump 的使用能够帮助你分析调试网络数据,本文将 ...
- docker与宿主机共享内存通信
docker与宿主机共享内存通信 docker中的进程要与宿主机使用共享内存通信,需要在启动容器的时候指定"–ipc=host"选项.然后再编写相应的共享内存的程序,一个跑在宿主机 ...
- docker导致宿主机重启和Cgroup 驱动程序有关
现象 某个宿主机突然登录不上了,重启后查看系统日志/var/log/messages和下面的日志类似 Jan 5 15:50:01 hanginx01 systemd: Started Session ...
- docker 连接宿主机的 MySQL
docker 连接宿主机的 MySQL 本文地址:https://blog.lucien.ink/archives/505 在实际生产过程中,docker 内的服务有时需要连接宿主机的 MySQL,在 ...
- 记录一次docker导致宿主机重启故障解决方法
记录一次docker导致宿主机重启故障解决方法 参考文章: (1)记录一次docker导致宿主机重启故障解决方法 (2)https://www.cnblogs.com/caidingyu/p/1215 ...
- 使用 IE 或Chrome等浏览器,通过网络抓包的形式,查看发送请求时的网络
要求: 使用 IE 或Chrome等浏览器,通过网络抓包的形式,查看发送请求时的网络 实现步骤: 1.打开 IE 浏览器,选择"开发者工具",切换到"网络"标签 ...
- mac for docker访问宿主机服务
pod访问mac主机网络 Docker For Mac的Docker Daemon是运行于虚拟机(xhyve)中的, 而不是像Linux上那样作为进程运行于宿主机,因此Docker For Mac没有 ...
- docker 导致宿主机重启的解决方法
宿主机操作系统为centos 7.4 在k8s运行一段时间报错: containerd: time="2019-12-19T21:50:49.070815105Z" level=i ...
- docker使用宿主机代理
docker run -it --network=host --name="Host-Proxy-Test" ubuntu:16.04export ALL_PROXY='socks ...
最新文章
- 链接静态库时__imp_前缀错误
- H5 新标签用法及解释
- 项目管理中的需求变更和解决之道
- centos 7 安装 mail
- [html] 说说页面中字体渲染规则是怎样的?会有哪些因素影响字体的渲染?
- LeetCode 1859. 将句子排序
- LeetCode 1797. 设计一个验证系统(map)
- 企业是否应该实现对客户需求的快速响应_为什么说数据中台是企业数字化转型的基石?...
- 我们在程序员节组织了一场游戏,竟还用Python去验证其公平性?
- python导入math函数取一随机数返回其平方根_Python数字
- 基于Session的认证方式_创建工程_准备一个springmvc的工程_Spring Security OAuth2.0认证授权---springcloud工作笔记115
- CSS知识点补充收集
- 怎么样把c语言和单片机融合,求助怎么把两个单片机c语言程序结合在一起?大一期末实验...
- 2022年考研数据结构_2 线性表
- oracle怎么判断逻辑读,如何查看Oracle数据库物理读、逻辑读前10的sql?
- 【钛媒体】人人不死,只是凋零
- 网络安全——文件上传
- Linux中yum yum yum
- CH340系列串口下载器原理图分享
- 写给郭·蝎子莱莱的前端入门