V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
L4Linux
V2EX  ›  问与答

这样的 Port Forwarding 规则该怎么用 iptables 创建?

  •  
  •   L4Linux · 2022-12-25 20:21:40 +08:00 · 746 次点击
    这是一个创建于 735 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我目前用 TUN/TAP 给虚拟机分配了 network interface ,通过设置一下三条规则,虚拟机能上网:

    iptables -A FORWARD -i tap0 -o wlan0 -j ACCEPT
    iptables -A FORWARD -i wlan0 -o tap0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
    

    现在,我想让虚拟机能访问主机上的某些服务,这些服务只监听了 127.0.0.1 。假设 tap0 的网段是 10.0.0/24 ,iptables 命令该怎么写呢?

    4 条回复    2022-12-26 09:20:53 +08:00
    wonderblank
        1
    wonderblank  
       2022-12-25 21:49:03 +08:00   ❤️ 1
    1. 直接监听 0.0.0.0 ,可以直接访问
    2. iptables -t nat -I PREROUTING -i tap0 -p tcp --dport 80 -j REDIRECT --to-port 80 # DNAT
    L4Linux
        2
    L4Linux  
    OP
       2022-12-25 22:50:08 +08:00
    @wonderblank 好像不行,这样设置虚拟机里访问不了 10.0.0.0:80 (网关),而且 iptables -L 也显示不出这条规则。
    L4Linux
        3
    L4Linux  
    OP
       2022-12-25 23:11:11 +08:00
    @wonderblank Samba 成功了 V2Ray 没成功。这条规则是没问题的。
    wonderblank
        4
    wonderblank  
       2022-12-26 09:20:53 +08:00
    可以加上-d tap0_ip_on_host ,这样就不会影响其他网站访问。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2851 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 14:07 · PVG 22:07 · LAX 06:07 · JFK 09:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.