标签 tcpdump 下的文章

有时候会针对某一个docker容器抓包,排查网络问题。就需要知道宿主机上的哪个虚拟网卡对应容器,可以通过以下方式查看。

示例:

test-container 容器抓包,具体操作

1.进入容器查看iflink

swift@xxx-001:~$ docker exec -it test-container bash
[root@384a71d00b2b sonatype]# cat /sys/class/net/eth0/iflink
9

2.宿主机查看对应虚拟网卡

swift@xxx-001:~$ ip link |grep 9
    link/ether 02:42:89:df:3d:4e brd ff:ff:ff:ff:ff:ff
    link/ether 8a:7d:fa:d0:96:39 brd ff:ff:ff:ff:ff:ff link-netnsid 3
9: vethadfe873@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP mode DEFAULT group default
    link/ether da:90:0e:5d:04:af brd ff:ff:ff:ff:ff:ff link-netnsid 2
    link/ether f6:b8:43:09:0b:7d brd ff:ff:ff:ff:ff:ff link-netnsid 0
    link/ether ce:8c:08:d1:86:9e brd ff:ff:ff:ff:ff:ff
    link/ether 32:ce:9e:82:e2:0d brd ff:ff:ff:ff:ff:ff
    link/ether b2:2c:9b:3b:25:de brd ff:ff:ff:ff:ff:ff link-netnsid 4

可以看到宿主机上的 vethadfe873 该虚拟网卡对应 test-container 容器

3.接下来就可以根据该虚拟网卡进行抓包操作

swift@xxx-001:~$ sudo tcpdump -i vethadfe873 -n