![通过辅助服务器通过 RDP 连接到双 NAT 机器](https://linux22.com/image/491220/%E9%80%9A%E8%BF%87%E8%BE%85%E5%8A%A9%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%80%9A%E8%BF%87%20RDP%20%E8%BF%9E%E6%8E%A5%E5%88%B0%E5%8F%8C%20NAT%20%E6%9C%BA%E5%99%A8.png)
我想知道是否有人可以推荐一个免费的工具,让我能够通过我在公共互联网上租用的服务器连接到我的家庭开发机器,该机器位于我的 ISP 拥有的 NAT 防火墙后面。
也就是说,现在我根本无法 ping 通我的家用机器,因为它是双重 NAT 的,所以无论我在家里的防火墙上戳多少个洞,我都无法访问它。
我在数据中心有一台服务器,我可以在其上运行某种“代理”,如果有一个工具可以安装在我家里的机器上,它会偶尔 ping 服务器并检查是否有打开频道或类似内容的请求...
显然这是可以做到的,因为 GotoMyPC 和 Fog Creek 的 Copilot 等工具可以做到这一点。我只是在寻找一个免费的替代方案。
这样,如果我在某个咖啡店并且想从我的笔记本电脑获取文件,我就可以连接到我家里的开发机器。
谢谢!
答案1
我使用 OpenVPN 来实现这一点。
我在数据中心服务器上安装 OpenVPN,然后将我的笔记本电脑和家里的系统设置为客户端。正确设置访问规则后,只要 OpenVPN 客户端正在运行,我就可以从笔记本电脑 rdesktop 到家里,无论它们在哪里。这意味着整个 rdesktop 对话都是通过隧道传输的。
或者,您也可以在家庭系统上运行 OpenVPN 客户端,然后在服务器上设置端口转发,该端口转发将通过 OpenVPN 连接重定向到家庭计算机。这样您的家庭计算机几乎可以从任何地方访问,但从您的 rdesktop 会话到服务器的连接将不会通过隧道传输。
OpenVPN 的最佳部分——由于 OpenVPN 连接是由客户端发起的,因此家庭防火墙中没有漏洞。
答案2
根据您在服务器上拥有的访问权限,SSH 远程端口转发可能是一个可行的解决方案。例如,假设我有一个名为的服务器dev2
,并且我希望能够Shteef
通过端口 22 连接到我的桌面 ()。
运行时Shteef
:
ssh -R 8022:localhost:22 dev2
离开时让此命令保持运行。一旦进入咖啡店机器 ( Coffee69
),请通过 ssh 访问dev2
:
ssh dev2
并连接到环回:
ssh localhost -p 8022
现在您已通过 SSH 进入Shteef
。只需更改端口号,RDP 也应该可以正常工作。
答案3
你可以这样做微软网格,但远程桌面的性能绝对糟糕透了,所以我并不是说你会想要这样做;不过它还处于测试阶段,希望它会有所改进。