工具🔧:
tcpdump;telnet;ifconfig;iptablesconntrack
另: 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 updateapt-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服务器角度看的