将特定 IP 和端口从服务器 A 隧道传输到服务器 B

将特定 IP 和端口从服务器 A 隧道传输到服务器 B

这是我们的情况,我们希望进入服务器 A ip 的流量被发送(隧道)到服务器 B 上的特定 ip,并接受从服务器 B 返回到服务器 A 的回复。如何使用 iptables 来实现这一点?

答案1

为确保双向流量都通过服务器 A,请在其上运行以下 iptables 规则:

# this will forward all the relevant traffic to the server b
iptables -t nat -A PREROUTING -p tcp --dport 1234 -d ip.address.of.a -j DNAT --to ip.address.of.b:1234
# and this will make sure there's no triangular routing - all packets forwarded to b 
# will have source  ip address of a, return communication will always go via a
iptables -t nat -A POSTROUTING -p tcp --dport 1234 -d ip.address.of.b -j MASQUERADE 

如果仅转发还不够 - 我建议您在 a 和 b 之间建立一个 vpn [使用 openvp、ipsec 或仅使用看门狗的 ssh 端口转发] 并应用类似的防火墙规则。

答案2

在 Linux 中,您只需为您的发行版安装 rinetd 并配置参数,即可完成。

Windows 也有一个端口:http://www.ehowstuff.com/how-to-install-and-configure-port-forwarding-using-rinetd-in-windows/

是的,iptables 也可以做到这一点,但我一直使用 rinetd,因为它更直接。

相关内容