在我的一个工作地点,我们有一组 Linux 服务器,其中一个充当主路由器。在网络内的另一台 Linux 服务器上,我在 VM 中运行 Server 2012。VM 的远程桌面已打开,我可以从我的网络内部进行 RDP。我的目标是从网络外部使用 RDP,通过路由器(Linux 机器),然后转到另一台 Linux 服务器上的 3389 端口。
所有服务器都使用 IPTABLES 作为防火墙,并且都运行 Debian Wheezy x64。
我的 iptables 列表中有以下规则-A PREROUTING -p tcp --dport 9999 -j DNAT --to-destination 192.168.0.15:3389
:虚拟机托管在 0.15 地址上,我想通过端口 9999 从外界连接。在我的测试中,远程桌面连接似乎只是无缘无故地断开连接。我还能寻找什么?
所以,我以不正确的方式解决这个问题。
首先,如果我将端口发送到
:3389
,它需要指向 VM 自己的 IP 地址。如果我指向虚拟机主机的 IP 地址,我需要将它放到该虚拟机实例的 VirtualBox RDP 端口(即:5050
)。我所做的是尝试直接连接到 VM 的 RDP 端口,而不是 VirtualBox RDP 端口。我这样做是为了让虚拟机知道它正在被远程访问。我把这一行放在我的 iptables 配置文件中:
-A PREROUTING -p tcp -m tcp --dport 5555 -j DNAT --to-destination 192.168.0.6:3389
我重新启动了iptables,然后我可以正常连接。由于我得到的建议,它很快就被删除了。我将调查 VPN 解决方案,以确保它更安全,不受路过的 RDP'ers 的影响。