工具🔧:
tcpdump
;telnet
;ifconfig
;iptables
conntrack
另: bridge命令 brctl
;
telnet
+tcpdump
抓包
做法: ifconfig
查看docker0
和宿主机对应的网卡,宿主机ping www.baidu.com
获得baidu的ip(36.152.44.96
), 然后进入一个docker容器之后telnet 36.152.44.96
; 同时宿主机上tcpdump -i ens33 host 36.152.44.96
抓包
附: docker内部安装telnet
:
apt-get update
apt-get install telnet
iptables 显示nat表对应的地址转发
关于iptables
四表五链这里就不展开了,详情可以参见这里:iptables
iptables -t nat -nvL
: (-t: table:nat; -nvL: name, verbose, show-List
)
target: MASQUERADE
: 表示经过了地址转发;prot
: protocolin, out
: 表示是从哪个/些网卡进出source, destination
: 表示src/dest 网段
Chain DOCKER
: 实际上是被最上面的Chain PREROUTING
用到了,所以PREROUTING
第三个是DOCKER
Conntrack
conntrack
: 对应iptables
那个图最开始的Connection Tracking部分,用于显示发送接收packets的详细信息的
安装:
yum install epel-release
添加epel源yum install conntrack-tools
conntrack -L
:
docker容器中telnet 36.152.44.96
, 所以可以看到最后的dst=36.152.44.96
;
注: src, dst, sport, dport
是一组,第二组是从baidu服务器角度看的