如何将流量从一个 IP 透明地重定向到另一个 IP?

如何将流量从一个 IP 透明地重定向到另一个 IP?

我想将端口 1111 上的所有传入流量重定向到端口 1111 上的另一台服务器,用作透明代理。在谷歌搜索后,我尝试使用iptables,但它没有按预期工作。

root@glider:~# sysctl net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1

root@glider:~# iptables -t nat -A PREROUTING -p tcp --dport 1111 -j DNAT --to-destination 10.2.4.44:1111

root@glider:~# iptables -t nat -A POSTROUTING -j MASQUERADE

root@glider:~# telnet localhost 1111
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

root@glider:~# telnet 10.2.4.44 1111
Trying 10.2.4.44...
Connected to 10.2.4.44.
Escape character is '^]'.

我正在使用 Kubuntu 14.04 LTS。

答案1

PREROUTING链用于传入数据包,但不用于本地生成的数据包。为了测试它,您不应该连接到本地主机。相反,您应该从其他主机测试连接。

nat规则应用到所有接口可能会有问题。我建议您将规则限制为仅在需要的接口上应用。

规则DNAT应该有-i <interface name>-d <ip address>MASQUERADE规则应该有-o <interface name>

相关内容