我想用 iptables 转发流量,而不向发送主机显示不同的 ip/port。
我的应用程序使用 TCP 侦听主机 xx15.42,端口 23555。客户端将连接到 xx15.42:5555。我希望将连接转发到端口 23555 而不将该端口暴露给客户端。
我已经尝试过使用 DNAT:
iptables -t nat -A PREROUTING -p tcp --dport 5555 -j DNAT --to-destination x.x.15.42:23555
但是对于客户端,它将显示他们正在连接到端口 23555。
我也尝试使用 REDIRECT,但由于某种原因根本不起作用。客户端无法连接。
iptables -t nat -A PREROUTING -p tcp --dport 5555 -d x.x.15.42 -j REDIRECT --to-port 23555
如何转发此流量,同时使其看起来像应用程序正在侦听端口 5555?
所以我使用的第一个防火墙规则有效:
唯一的问题确实是服务器告诉客户端连接到端口 23555 而不是我想要的端口 5555。在服务器部分更改它可以解决问题。
我只是 iptables 的涉猎者,所以你可以试试这个:
这两行都是需要的(我认为是缺少 FORWARD 选项导致这种情况),但不确定是否需要 interface
-i eth0
选项来源参考