如何将同一台机器上一个接口上的入站流量路由到另一个接口?

如何将同一台机器上一个接口上的入站流量路由到另一个接口?

我搜索了论坛,但找不到完全符合我的用例的解决方案。我需要在远程机器上执行此操作,因此没有太多的自由来犯错(并且可能会把自己锁在盒子外面)。

远程 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

http://linux.die.net/man/1/redir

相关内容