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

NAT 环回可以端口转发吗

  •  
  •   helllkz · 2020-01-27 21:26:07 +08:00 · 5299 次点击
    这是一个创建于 671 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在 openwrt 上配置了外网的端口转发,外网访问的时候是没问题的,但是如果在内网访问外网 IP 的话,如果能让端口转发生效呢?
    比如 nextcloud 之类的,外网访问域名,回家了还修改成内网 IP 就好麻烦啊
    15 条回复    2021-02-10 21:24:00 +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   2020-01-28 15:22:18 +08:00
    @cwbsw
    设置了的,我把外网的 12345 端口转发到 OP 的 80 端口,在内网通过外网 IP 访问 12345 端口是没问题的,可以访问到 OP
    但是然后我把外网的 5000 转发到内网群晖的 5000 端口,就没法转发了
    @swiftg
    端口转发里面选择了 NAT 环回的

    @fetich
    不同端口都没问题,但是好像只能转发到 OP 本机上,不能转发到其他内网设备上
    superhack
        10
    superhack   319 天前
    @Buges 赞,你这个方案一针见血
    holiday2coder
        11
    holiday2coder   293 天前
    老哥 这个问题你后来解决了吗 我现在跟你一样的问题
    holiday2coder
        12
    holiday2coder   293 天前
    @helllkz 老哥 这个问题你后来解决了吗 我现在跟你一样的问题
    helllkz
        13
    helllkz   292 天前
    @holiday2coder 目前用自定义挟持域名搞的
    holiday2coder
        14
    holiday2coder   292 天前
    @helllkz 意思就是改本地 host 直接解析域名到内网 nas 的 ip ?
    holiday2coder
        15
    holiday2coder   291 天前
    @helllkz 兄弟 我问题解决啦 哈哈哈
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   908 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:53 · PVG 04:53 · LAX 12:53 · JFK 15:53
    ♥ Do have faith in what you're doing.