iptables -t nat -I POSTROUTING -s 1721805232 -o eth0 -m conntrack --ctstate NEW -j SNAT --to-source 19216812339使用这段命令后 容器无法访问互联网我想只有1721805232的流量经过19216812339处理
可能是因为该命令只对172.18.0.52/32的流量进行了SNAT操作,但是没有针对其他流量进行DNAT操作,导致容器无法访问互联网。你可以尝试使用以下命令,对所有流量进行DNAT和SNAT操作:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-destination 172.18.0.52
其中第一条命令是进行SNAT操作,将所有经过eth0网卡的流量的源IP地址改为该网卡的IP地址,以便返回流量时能够正确路由。第二条命令是进行DNAT操作,将所有进入eth0网卡的流量的目标IP地址改为172.18.0.52,以便让该容器处理这些流量。
注意:如果你想只有172.18.0.52/32的流量经过192.168.123.39处理,那么你需要确保该容器的路由表中只有该流量的默认路由指向192.168.123.39。你可以使用以下命令设置该容器的路由表:
ip route add default via 192.168.123.39 dev eth0 src 172.18.0.52
其中172.18.0.52是该容器的IP地址,eth0是该容器的网卡名称。这样设置后,只有目标IP地址为外部网络且源IP地址为172.18.0.52/32的流量才会经过192.168.123.39处理
原文地址: https://www.cveoy.top/t/topic/fiPo 著作权归作者所有。请勿转载和采集!