V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
hangvane
V2EX  ›  Linux

求助各位 dalao, iptables 如何添加非对称的 NAT 规则段

  •  
  •   hangvane · 2019-05-07 19:48:45 +08:00 · 2642 次点击
    这是一个创建于 1787 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景:内网穿透,想用 server 的 port:20001-30000 代理虚拟子网里另一台服务器的 port:1-10000,其他都搞定了就差 NAT 了

    目前进度:

    将 server 的 28000 端口请求转发给虚拟子网 10.8.0.8 的 8000 端口,可以访问到

    iptables -t nat -A PREROUTING -p tcp --dport 28000 -j DNAT --to-destination 10.8.0.8:8000
    iptables -t nat -A PREROUTING -p udp --dport 28000 -j DNAT --to-destination 10.8.0.8:8000
    

    尝试将 28000-30000 端口请求转发到 8000-10000,结果是只有首条 28000→8000 有效,其他无效

    iptables -t nat -A PREROUTING -p tcp --dport 28000:30000 -j DNAT --to-destination 10.8.0.8:8000-10000
    iptables -t nat -A PREROUTING -p udp --dport 28000:30000 -j DNAT --to-destination 10.8.0.8:8000-10000
    

    查阅到了一篇相关文章,文章结论如下

    “当匹配的端口在映射端口的区间内时,那么端口号不会被修改。如果匹配端口不在映射端口的区间内,则大多数情况下映射端口号为最小的端口号,即映射端口号是不可预测的。

    举例:

    [1000-2000] 映射到[1000-2000]时会一一映射

    [1000-2000] 映射到[3000-4000]结果不可预知,一般会映射到 3000 端口。”

    这篇文章的结论符合目前的情况,但是接下来还能怎么做呢?

    难道写个脚本添加 10000 条 iptables 规则进去?这也太...

    emm 如果真的没法了那我就试试别的内网穿透工具,目前刚好是有 ovpn server 所以先拿 ovpn 试了下...

    希望能得到 v 友的解答,不胜感谢!

    4 条回复    2019-05-08 18:01:24 +08:00
    LGA1150
        1
    LGA1150  
       2019-05-07 20:42:00 +08:00
    用 -d 限定目标地址
    omph
        2
    omph  
       2019-05-08 12:36:00 +08:00   ❤️ 1
    [firewall - iptables with DNAT target to multiple port range translation - Stack Overflow]( https://stackoverflow.com/questions/36422683/iptables-with-dnat-target-to-multiple-port-range-translation)

    或许只能自己写 ipt 模块了
    hangvane
        3
    hangvane  
    OP
       2019-05-08 17:59:52 +08:00
    @omph 好的,看来没什么太好的办法了,感谢
    hangvane
        4
    hangvane  
    OP
       2019-05-08 18:01:24 +08:00
    @LGA1150 可以详细解释下吗?没懂?如何用-d 实现非对称 NAT ?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1339 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 23:37 · PVG 07:37 · LAX 16:37 · JFK 19:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.