V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
mjikop1231
V2EX  ›  问与答

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

  •  
  •   mjikop1231 · 2016-11-09 12:19:06 +08:00 · 1869 次点击
    这是一个创建于 2940 天前的主题,其中的信息可能已经有所发展或是发生改变。
    局域网内 IP : 10.12.17.201 作为服务器,通过与外网连接的服务器做 80 端口映射。
    但是在同局域网内的其他主机无法通过外网 IP 访问。
    并且部分主机所在网段和服务器所在网段有 DMZ 隔离,无法直接通过内网 IP 访问。

    求问解决方法。
    5 条回复    2016-11-09 14:56:34 +08:00
    XiaoxiaoPu
        1
    XiaoxiaoPu  
       2016-11-09 13:05:41 +08:00
    https://onebitbug.me/2014/06/01/building-a-gateway-iptables/ 同网段内网无法访问 DNAT 端口
    mjikop1231
        2
    mjikop1231  
    OP
       2016-11-09 13:19:40 +08:00
    然而局域网下 DMZ 划分了,不同 DMZ 划分区之间不能直接访问,可以被认作是多个内网吧?但只要是 10.0.0.0/8 下的主机都无法使用外网 IP 访问啊。
    @XiaoxiaoPu
    XiaoxiaoPu
        3
    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
        4
    mjikop1231  
    OP
       2016-11-09 14:36:11 +08:00
    @XiaoxiaoPu 但我并没有操作网关的权限,所以有没有什么方法可以用在服务器和客户机上使得可以访问的?
    XiaoxiaoPu
        5
    XiaoxiaoPu  
       2016-11-09 14:56:34 +08:00
    @mjikop1231 想不到什么办法,毕竟问题出在网关那里,把问题反馈给网管处理吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1078 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:25 · PVG 03:25 · LAX 11:25 · JFK 14:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.