我正在运行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转发,但似乎无法正常工作,因为我不确定方法还是正确的语法。
提前感谢您的建议。
答案 0 :(得分:0)
这些规则可以解决这个问题,假设目标端口是相同的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