网络拓扑:
路由器:10.0.0.1 网关: 10.0.0.2 服务器:10.0.0.5
服务器拿到的路由表:
default via 10.0.0.2 dev enp2s0 proto dhcp src 10.0.0.5 metric 100
10.0.0.0/24 dev enp2s0 proto kernel scope link src 10.0.0.5
10.0.0.2 dev enp2s0 proto dhcp scope link src 10.0.0.5 metric 100
路由器是 tplink 的,网关是 openwrt 。
如果直接设置在 tplink 的端口转发 12345:tplink:10.0.0.5:12345 无法连上,在 0.5 上抓包表现为:
入:外网进来,到 0.5 的 12345 的包 回:0.5 到外网的出去的包。
很显然,这个时候回包的 dst 是外网地址,走 0.2 出去
0.1 发出去的包 src=外网,dst=0.5 0.1 收到的包 src=0.2,dst=外网 无法匹配。
所以这种情况如何搞呢?
我想到这么几个解决方案:
0.2 是 openwrt 的单臂旁路网关,写了一句:
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
作为转发配置。
求教各位大佬如何做比较好呢。。。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.