有没有一种方法可以将127.0.0.1:3389映射到192.168.1.2:3389 (使用iptables?也就是说,所有到localhost:3389连接将被redirect到我的LAN机器?
原因如下:我的iPhone RDP应用程序可以执行SSH隧道,但不提供调整SSH参数的选项。 所以,它通过SSH连接到我的路由器,build立到127.0.0.1:3389的隧道,然后尝试连接到iPhone上的localhost:3389 。 失败。
我不想在我的LAN机器上运行SSH服务器,而是想使用路由器的SSH服务器(运行Tomato的华硕RT-N16)。 那可行吗? 这不起作用:
$ iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 3389 -j DNAT --to-destination 192.168.1.2
看看rinetd,它似乎做你想做的事情。 这里有更多关于安装和使用的信息 。
你的iptables命令有一些错误:
1)你试图在OUTPUT表中捕捉到这个,但是对于这样的redirect,你需要在PREROUTING
2)你也没有redirect到端口。 你只是告诉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)。 如果什么都行不通,请回到这里,我们会find一个解决办法。