使用 iptables 将 localhost:port 端口转发到 lan:port - 如何操作?

使用 iptables 将 localhost:port 端口转发到 lan:port - 如何操作?

有没有办法可以映射127.0.0.1:3389192.168.1.2:3389(使用 iptables?也就是说,所有连接都localhost:3389将被重定向到我的 LAN 机器?

原因如下:我的 iPhone RDP 应用程序可以进行 SSH 隧道,但不提供调整 SSH 参数的选项。因此,它通过 SSH 连接到我的路由器,建立到 127.0.0.1:3389 的隧道,然后尝试连接到localhost:3389iPhone。失败。

我不想在我的 LAN 机器上运行 SSH 服务器,而是想使用路由器的 SSH 服务器(运行 Tomato 的 Asus RT-N16)。这样可行吗?这行不通:

$ iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 3389 -j DNAT --to-destination 192.168.1.2

答案1

看一下rinetd它似乎可以满足您的要求。关于安装和使用,还有更多信息这里

答案2

您的 iptables 命令有一些错误:

1)你试图在 OUTPUT 表中捕获它,但对于这样的重定向,你需要在 PREROUTING 中执行此操作

2)您也没有重定向到端口。您只是告诉 iptables 将这些数据包发送到某个 IP,而不指定端口。

因此你的命令应如下所示:

iptables -t nat -A PREROUTING -d 127.0.0.1 -p tcp --dport 3389 -j DNAT --to 192.168.1.2:3389

我的 iptables-fu 可能有点生疏,所以如果它不起作用,请尝试在 INPUT 表中运行相同的命令 (-A INPUT)。如果不起作用,请在这里留言,我们会找到解决办法。

相关内容