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

Debian10 的 iptables redirect 规则

  •  
  •   plko345 · 2020-05-18 10:51:55 +08:00 · 3252 次点击
    这是一个创建于 1668 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我想实现的规则是, 主机 A(vmware 虚拟机, debian10) 有一个监听 127.0.0.1:8080 的服务, 我想主机 B (宿主机)能够访问 A 的服务

    iptables -t nat -A PREROUTING -d <主机 A 的外网地址> -p tcp --dport 30000 -j REDIRECT --to-ports 8080
    
    iptables -t nat -A OUTPUT -d <主机 A 的外网地址> -p tcp --dport 30000 -j REDIRECT --to-ports 8080
    
    sysctl -w net.ipv4.conf.all.route_localnet=1
    

    失败, 我又尝试了 DNAT 的规则

    iptables -t nat -A PREROUTING -d <主机 A 的外网地址> -p tcp --dport 30000 -j DNAT --to-destination 127.0.0.1:8080
    

    依然失败, 我之前在公司的 ubuntu 16.04 上实现过是成功的, 但现在在虚拟机上是失败的, 是否和 debian10 nftables 有关, debian10 上现在默认 iptables 规则会转换好像, 有相关经验的吗?

    7 条回复    2020-05-18 23:06:23 +08:00
    plko345
        1
    plko345  
    OP
       2020-05-18 11:00:00 +08:00
    忘记说了

    ```sh
    iptables -t nat -A OUTPUT -d <主机 A 的外网地址> -p tcp --dport 30000 -j REDIRECT --to-ports 8080
    ```

    这条规则在主机 A 上, `curl <主机 A 外网地址>:30000` 能成功访问服务, 也就是说回环接口是成功的
    Saimen
        2
    Saimen  
       2020-05-18 13:00:59 +08:00 via Android
    使用 iptables-legacy
    Jirajine
        3
    Jirajine  
       2020-05-18 13:08:02 +08:00 via Android
    把那个 DNAT 规则在 A 上执行。
    另外你这个用法怎么感觉有点不对呢,直接 ssh 端口转发不好么。
    tulongtou
        4
    tulongtou  
       2020-05-18 13:20:51 +08:00
    为啥虚拟机的服务不绑定成 0.0.0.0:8080
    istek999
        5
    istek999  
       2020-05-18 14:14:38 +08:00   ❤️ 1
    iptables -A PREROUTING -p tcp -m tcp --dport 本地端口 -j DNAT --to-destination 服务 IP:服务端口
    iptables -A POSTROUTING -d 服务 IP/32 -p tcp -m tcp --dport 服务端口 -j SNAT --to-source 本地 IP
    istek999
        6
    istek999  
       2020-05-18 14:15:51 +08:00
    还有记得本地打开转发。
    net.ipv4.ip_forward = 1
    plko345
        7
    plko345  
    OP
       2020-05-18 23:06:23 +08:00
    @istek999 感谢, 但有点不明白, 我的那条 DNAT 规则应该和你的是一样的呀, 可能是其他问题导致的吧

    还有为什么 REDIRECT 规则不行
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1999 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:12 · PVG 00:12 · LAX 08:12 · JFK 11:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.