局域网服务器外网映射后局域网无法使用外网 IP 访问服务器

2016-11-09 12:19:06 +08:00
 mjikop1231
局域网内 IP : 10.12.17.201 作为服务器,通过与外网连接的服务器做 80 端口映射。
但是在同局域网内的其他主机无法通过外网 IP 访问。
并且部分主机所在网段和服务器所在网段有 DMZ 隔离,无法直接通过内网 IP 访问。

求问解决方法。
1869 次点击
所在节点    问与答
5 条回复
XiaoxiaoPu
2016-11-09 13:05:41 +08:00
https://onebitbug.me/2014/06/01/building-a-gateway-iptables/ 同网段内网无法访问 DNAT 端口
mjikop1231
2016-11-09 13:19:40 +08:00
然而局域网下 DMZ 划分了,不同 DMZ 划分区之间不能直接访问,可以被认作是多个内网吧?但只要是 10.0.0.0/8 下的主机都无法使用外网 IP 访问啊。
@XiaoxiaoPu
XiaoxiaoPu
2016-11-09 14:02:18 +08:00
@mjikop1231 其实关键不是是不是一个内网,而是返回的包没用经过网关转发,参考下面的分析:
假设你的公网 IP 是 1.1.1.1 ,网关的三个网络接口分别为 wan0, lan0, lan1 。服务器所在的 DMZ 为 10.12.0.0/16 ,接到网关的 lan0 上,另有一个主机为 10.16.0.1/16 ,接到网关的 lan1 上
1. 从 10.16.0.1:12345 发起请求,四元组为 (10.16.0.1, 12345, 1.1.1.1:80),从 wan0 进入网关
2. 网关机器收到该请求,进行了 DNAT ,四元组变为 (10.16.0.1, 12345, 10.12.17.201, 80),从 lan0 发送给 服务器
3. 10.12.17.201 收到了这个请求,四元组为 (10.16.0.1, 12345, 10.12.17.201, 80)
4. 10.12.17.201 进行回复时,回复的包四元组为 (10.12.17.201, 80, 10.16.0.1, 12345),从 lan0 发送给网关
5. 网关上配置了 10.16.0.0/16 走 lan1 ,因此这个包会通过 lan1 发送给 10.16.0.1
发送的链路为 lan1-wan0-lan0 ,其中在 wan0-lan0 上进行了 DNAT ,回来的链路却是 lan0-lan1 ,而不是 lan0-wan0-lan1 ,自然就失败了
mjikop1231
2016-11-09 14:36:11 +08:00
@XiaoxiaoPu 但我并没有操作网关的权限,所以有没有什么方法可以用在服务器和客户机上使得可以访问的?
XiaoxiaoPu
2016-11-09 14:56:34 +08:00
@mjikop1231 想不到什么办法,毕竟问题出在网关那里,把问题反馈给网管处理吧。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/319224

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX