0x0 起
使用Docker部署了一套应用,端口转发已经配置,系统防火墙已经关闭,但是使用另外的服务器telnet无法通讯,2台服务器之间一台交换机并未牵扯安全设备,交换机上也没有配置acl策略。
0x1 排查
docker ps
//列出所有docker镜像,可在PORTS列看到对应的端口映射关系;
curl 127.0.0.1:端口
//测试宿主机是否联通端口,正常
sysctl net.ipv4.ip_forward
//查看Linux服务器是否开启内核转发为0表示未开启;
echo 1 > /proc/sys/net/ipv4/ip_forward //开启内核转发
业务端口外部可以正常访问。
0x2 END
Docker 的Proxy在1.7 版本之后全部都依赖于iptables了,所以Docker转发的时候实际上是在iptables上创建了一个转发规则,然后根据这个转发规则来进行转发而iptables需要转发就必须要开启网卡转发功能,也就是net.ipv4.ip_forward要一直处于开启状态。