![为什么某些远程桌面服务不需要您设置端口转发?](https://linux22.com/image/1232752/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%9F%90%E4%BA%9B%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E6%9C%8D%E5%8A%A1%E4%B8%8D%E9%9C%80%E8%A6%81%E6%82%A8%E8%AE%BE%E7%BD%AE%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%EF%BC%9F.png)
我在办公室里混合使用 Linux 和 Windows 机器。我的 Windows 机器上运行着 logmein,Linux 机器上安装了 VNC。Linux logmein 浏览器插件运行良好。但是,我很困惑为什么没有像 logmein 或 gotomypc 这样的 Linux 服务,您只需安装该程序就可以开始使用,因为路由器中无需设置端口转发。这是因为这些服务使用端口 80 来处理它们的通信,而这些端口是开放的吗?是否需要设置服务器来处理重定向,因此创建不需要端口转发的开源 RDP 客户端/服务器套件并不划算?
答案1
像 TeamViewer 这样的应用程序是 [客户端-服务器-客户端]:它们依赖于使用双方本地网络之外的服务器。每一端都是客户端,并发起与外部服务器的连接。防火墙和 NAT 路由器通常可以相当自由地传递传出连接,而 NAT 可以使回复(来自外部服务器)到达正确的内部节点(PC)。
真正的 [客户端-服务器] 服务要求服务器具有可路由地址。从 NAT 路由器后面提供服务的 PC 没有可路由地址,只有离互联网最近的路由器才有。因此,给定 IP 和端口号的传入连接必须路由到路由器已知的特定本地网络节点 (PC) 以服务于该特定端口 - 即端口转发。
答案2
当然!
事实上,大多数“即插即用”应用程序(如果你愿意的话)在你和另一台机器之间都有一个协商服务器,它通过一个临时端口帮助你连接在一起。TeamViewer就是一个很好的例子。它有适用于 Windows 和 Mac 的原生版本,并且可以在 Linux 上的 Wine 下运行。
答案3
如果 Linux 上还没有这样的软件,我会很惊讶。除了 Logmein 和 gotomypc 之外,还寻找过 Linux 上的这种功能吗?如果真的很少,我猜是出于安全考虑。
有什么原因不能使用 SSH 吗?出于安全原因,我建议使用它,而且一旦安全机制到位,让安全人员打开该端口并不难。