我搜索了论坛,但找不到完全符合我的用例的解决方案。我需要在远程机器上执行此操作,因此没有太多的自由来犯错(并且可能会把自己锁在盒子外面)。
远程 PC 有两个物理接口:eth0 和 eth1。eth0 IP 为 192.168.0.4/255.255.255.0,而 eth1 为 192.168.1.60/255.0.0.0
我需要将 eth0 上收到的端口 502 上的入站 TCP 流量路由/转发到 192.168.1.50 端口 502(这是可通过 eth1 网络访问的远程设备)。我需要对端口 30718 上的 UDP 执行上述相同操作。
我已经阅读了 iptables 操作方法,但不确定是否使用 INPUT 或 FORWARD 等。
如能提供关于如何使用 iptables 执行此操作的任何帮助,我们将不胜感激!
谢谢,
尚马克
答案1
我无法帮助您使用 iptables 来完成此操作,但以下方法可以解决问题:
对于 TCP,您可以使用redir
:
redir --lport=502 --cport=502 --caddr=192.168.1.50 [--debug]
您可以添加--laddr
以将其绑定到您的接口。否则它将接受来自任何接口的连接。
对于 UDP,你可以使用socat
:
sudo socat UDP4-RECVFROM:30718,fork UDP4-SENDTO:192.168.1.50:10161
手册见这里:
http://manpages.ubuntu.com/manpages/trusty/man1/filan.1.html