V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
helllkz
V2EX  ›  宽带症候群

NAT 环回可以端口转发吗

  •  
  •   helllkz · 2020-01-27 21:26:07 +08:00 · 8117 次点击
    这是一个创建于 1760 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在 openwrt 上配置了外网的端口转发,外网访问的时候是没问题的,但是如果在内网访问外网 IP 的话,如果能让端口转发生效呢?
    比如 nextcloud 之类的,外网访问域名,回家了还修改成内网 IP 就好麻烦啊
    16 条回复    2022-11-29 23:25:49 +08:00
    cwbsw
        1
    cwbsw  
       2020-01-27 21:32:32 +08:00
    你设置端口转发的时候就没看到 NAT Loopback 那个选项吗,而且应该是默认打开的。
    stille
        2
    stille  
       2020-01-27 21:35:14 +08:00
    L 大的 openwrt 10.25 之后的版本编译出来貌似都无法回环.
    我是刷回 10.25 版才支持
    已经有人反馈了
    Buges
        3
    Buges  
       2020-01-27 21:48:46 +08:00   ❤️ 1
    从路由的角度来说,因为包没有进行 SNAT,所以内网建立的连接,把包发到路由器的外网 ip 地址,但回来的包源地址是运行服务的设备的内网 ip 地址,本机就会将其丢弃。解决方法是为 DNAT 添加对应的 SNAT:
    假设你的端口转发由以下 DNAT 规则实现:
    #iptables -t nat -A PREROUTING --dst <路由器的公网 ip 地址> -p tcp --dport <路由器上暴露的端口> -j DNAT --to-destination <内网运行服务的 ip:端口>

    那么添加一条对应的 SNAT 规则修正包的源地址:
    #iptables -t nat -A POSTROUTING -p tcp --dst <内网运行服务的 ip> --dport <内网运行服务的端口> -j SNAT --to-source <路由器的内网地址>

    这样回复的包会被发给路由器,防火墙在对其进行 Un-DNAT 操作将包发回本机。
    swiftg
        4
    swiftg  
       2020-01-27 21:57:19 +08:00 via iPhone
    openwrt 19.07 默认配置,luci 里设置了端口转发就行了,不用其他配置。内网外网都可以用
    mikeguan
        5
    mikeguan  
       2020-01-27 22:01:43 +08:00 via Android
    这个不算回环吧,你可设置内网域名解析解决
    EvineDeng
        6
    EvineDeng  
       2020-01-27 23:16:13 +08:00 via Android
    dnsmasq 将域名指向内网 ip ?
    fetich
        7
    fetich  
       2020-01-27 23:42:39 +08:00
    NAT Loopback 大流量情况下,对路由器要求高,造成传输效率低,搞不好就死机了。

    不知你使用的工具对处于局域网和互联网的同一机器优先级判定是如何的,可以同时指定互联网 DDNS 的域名,然后在指定一个内网解析的域名,这样处于互联网时通过端口转发访问,处于内网是优先使用内网地址直链(不通过路由器转发)
    fetich
        8
    fetich  
       2020-01-27 23:45:16 +08:00
    具体的端口转发的规则是如何设定的?例如 3389 转发 3389,还是 13389 转发 3389 ?

    建议设定相同的转发,不然在内网可能会有问题(没测试过),不过效率会低(见 #6 回复)
    helllkz
        9
    helllkz  
    OP
       2020-01-28 15:22:18 +08:00
    @cwbsw
    设置了的,我把外网的 12345 端口转发到 OP 的 80 端口,在内网通过外网 IP 访问 12345 端口是没问题的,可以访问到 OP
    但是然后我把外网的 5000 转发到内网群晖的 5000 端口,就没法转发了
    @swiftg
    端口转发里面选择了 NAT 环回的

    @fetich
    不同端口都没问题,但是好像只能转发到 OP 本机上,不能转发到其他内网设备上
    superhack
        10
    superhack  
       2021-01-13 21:08:08 +08:00
    @Buges 赞,你这个方案一针见血
    holiday2coder
        11
    holiday2coder  
       2021-02-08 23:03:53 +08:00
    老哥 这个问题你后来解决了吗 我现在跟你一样的问题
    holiday2coder
        12
    holiday2coder  
       2021-02-08 23:04:08 +08:00
    @helllkz 老哥 这个问题你后来解决了吗 我现在跟你一样的问题
    helllkz
        13
    helllkz  
    OP
       2021-02-09 08:48:17 +08:00
    @holiday2coder 目前用自定义挟持域名搞的
    holiday2coder
        14
    holiday2coder  
       2021-02-09 21:11:09 +08:00
    @helllkz 意思就是改本地 host 直接解析域名到内网 nas 的 ip ?
    holiday2coder
        15
    holiday2coder  
       2021-02-10 21:24:00 +08:00
    @helllkz 兄弟 我问题解决啦 哈哈哈
    blankmiss
        16
    blankmiss  
       2022-11-29 23:25:49 +08:00
    @holiday2coder 咋解决的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1005 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:22 · PVG 06:22 · LAX 14:22 · JFK 17:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.