请帮助。
POSTROUTING 上的 Iptables 无法识别 docker0 网桥。可能存在其他问题,但似乎数据包没有通过 docker 网桥作为数据包来源的规则。
1)net.ipv4.ip_forward = 1
2)主机网络接口:
docker0 172.17.0.1 Bcast:0.0.0.0 Mask:255.255.0.0 #docker 桥接 eno1 zzz186 #真实接口
3)Docker容器网络接口:
eth0 172.17.0.2 Bcast:0.0.0.0 掩码:255.255.0.0
4)主机路由表:
目标网关 Genmask 标志 指标参考使用 Iface 0.0.0.0 zzz185 0.0.0.0 UG 0 0 0 eno1 10.10.49.0 0.0.0.0 255.255.255.0 U 0 0 0 eno2 zzz184 0.0.0.0 255.255.255.248 U 0 0 0 eno1 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
5)Iptables FILTER 表:
链转发(策略接受 0 个数据包,0 字节) pkts 字节数 目标 协议 选择加入 退出 源 目标 0 0 接受所有 -- 任何 docker0 任何地点 任何地点 3145 264K 接受全部 -- docker0 任何地点任何地点
和 NAT 表
链 POSTROUTING(策略接受 0 个数据包,0 字节) pkts 字节数 目标 协议 选择加入 退出 源 目标 0 0 MASQUERADE 全部 -- * eno1 172.17.0.0/16 !172.17.0.0/16 0 0 MASQUERADE 全部 -- * eno1 172.17.0.1 0.0.0.0/0 0 0 MASQUERADE 全部 -- * eno1 172.17.0.2 0.0.0.0/0 0 0 MASQUERADE 全部 -- * eno1 172.17.0.0/16 0.0.0.0/0 105 6769 MASQUERADE 全部 -- * eno1 0.0.0.0/0 0.0.0.0/0
因此,docker 容器 (172.17.0.2) 可以与主机 (zzz186) 通信,但无法进一步与互联网通信。它没有从主机的默认网关 (zzz185) 获得 ping 响应。
我将很高兴接受任何想法。