V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
lilogo
V2EX  ›  问与答

为何同一内网下无法通过公网 IP 访问内网中的服务

  •  
  •   lilogo · May 11, 2023 · 1446 views
    This topic created in 1091 days ago, the information mentioned may be changed or developed.

    家宽有公网 IP ,于是在内网 Linux 机器上部署了一个 vaultwarden 并且也在路由器上做了端口转发,但是有一个问题无法在家里通过公网 IP + 端口的形式访问 vaultwarden ,只能通过内网 IP 直接访问。

    不知道是哪里配置出了问题,在外部的话是可以正常通过公网 IP + 端口的形式访问的。

    6 replies    2023-05-16 17:20:48 +08:00
    stcQ2G13k9yxep40
        1
    stcQ2G13k9yxep40  
       May 11, 2023 via iPhone
    老问题了,需要做域内 NAT ,把源数据 IP 转换为公网其他 IP 即可,不然数据包来回兜圈子,无法路由到你的主机。有些防火墙或路由器是默认配置了域内 NAT ,不然就需要手动来做了。
    AS4694lAS4808
        2
    AS4694lAS4808  
       May 11, 2023 via Android
    找找 NAT 回环 选项
    flynaj
        3
    flynaj  
       May 11, 2023 via Android
    路由器要支持环回才行。
    lilogo
        4
    lilogo  
    OP
       May 16, 2023
    是 NAT 回环的问题,问题清楚其实也好解决,我这边使用的是 MikroTik 的 RouterOS 7 ,在网上试了好几种方法都不生效,以下方法是可以正常工作的:

    ```
    /ip firewall nat add chain=dstnat dst-address-type=local protocol=tcp dst-port=8182 action=dst-nat to-addresses=192.168.2.88 to-ports=48182
    /ip firewall nat add chain=srcnat src-address=192.168.2.0/24 dst-address=192.168.2.88 protocol=tcp dst-port=8182 out-interface-list=LAN action=masquerade
    ```

    其中 192.168.2.0 是本地 LAN 网段, 192.168.2.88:48182 是内网服务, 现在外网可以正常访问并且内网也可以通过域名和公网 IP 的形式访问了。
    lilogo
        5
    lilogo  
    OP
       May 16, 2023
    @lilogo 抱歉,上面所有 48182 都修改成 8182 即可。或者明确内网服务和公网访问端口亦可,上面笔误属于。
    lilogo
        6
    lilogo  
    OP
       May 16, 2023
    更新,最后 NAT 回环规则应该只需要下面这一条就可以, 这样就不用每个端口都配置一条了:

    /ip firewall nat add chain=srcnat src-address=192.168.2.0/24 dst-address=192.168.2.0/24 protocol=tcp out-interface-list=LAN action=masquerade comment="Hairpin-NAT"
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5664 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 66ms · UTC 07:29 · PVG 15:29 · LAX 00:29 · JFK 03:29
    ♥ Do have faith in what you're doing.