【问题标题】:iptables: forward a single IP/Port to one interface, everything else to anotheriptables:将单个 IP/端口转发到一个接口,其他所有内容到另一个
【发布时间】:2017-01-02 14:58:31
【问题描述】:

我正在运行 ubuntu 16.0.4 作为 wifi 热点并共享一个 vpn 连接。

eth0 位于子网 10.10.10.x
tun0 位于子网 10.9.0.x
wlan0 位于子网 10.10.11.x

我可以通过以下规则共享 vpn 连接...
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
...因此任何使用 ubuntu 盒子作为网关的有线设备都可以共享 vpn。

我还通过 vpn 转发无线接口上的所有流量,并允许通过以下方式返回流量...
iptables -A FORWARD -i tun0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o tun0 -j ACCEPT

到目前为止,一切都很好。

但是,我希望将端口 32400 上的所有流量转发到 eth0,特别是 IP 10.10.10.20(当然,允许返回流量)。

以我目前的设置,我在 wlan0 上的无线连接看不到 eth0 的子网。

我怎样才能做到这一点?我可以在端口 32400 上转发所有流量...或将单个 IP(例如 wlan0 上的 10.10.11.200)的所有内容转发到 10.10.10.20(eth0)。

我已经尝试了端口转发和 IP 转发,但似乎都无法正常工作,因为我不确定方法和正确的语法。

提前感谢您的建议。

【问题讨论】:

    标签: iptables nat


    【解决方案1】:

    这些规则应该可以解决问题,假设目标端口是相同的 32400(但我不确定引用其他规则的顺序)

    iptables -t nat -A PREROUTING -p tcp --dport 32400 -j DNAT --to-destination 10.10.10.20:32400
    iptables -t nat -A POSTROUTING -p tcp -d 10.10.10.20 --dport 32400 -j SNAT --to-source 10.10.11.200
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-31
      • 2017-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-16
      • 1970-01-01
      • 2012-04-28
      相关资源
      最近更新 更多