我有两个 Linux,同在一个 172.17.0.0/16 的网络中,
A:172.17.82.13 - 可以上互联网
C:172.17.10.109 - 不能上互联网(可能是防火墙某种设定)
为了 C 也能上网,在 A 上开启了 ip forwarding,同时 C 的默认网关指向 A, A 的 iptables 开启了 nat 转换:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
也试过:
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.17.82.13
但 C 还是上不了网,通过 tcpdump 抓包发现,C 的包 A 收到了,A 也把包转发出去了,甚至收到了回包,但是到这里就断了,A 把这个回包吞了,并没有回给 C,这是怎么回事? 我也照着网上一些资料设置了下面的规则,也不起作用。
iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
有没有 iptables 大佬能够指点一二,截图发不了,就是 C ping A 没有问题,ping 114.114.114.114 的时候,C 上的 tcpdump 只有 icmp 发包,A 上则有 C 的 icmp 请求的 114 的回复。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.