通过 ssh 隧道传输 VNC/rdesktop

通过 ssh 隧道传输 VNC/rdesktop

我有一个朋友在防火墙后面,拥有一台 Windows 计算机。我家里有一台 Linux 机器,没有防火墙。

我想要与他的机器建立 rdesktop 连接,而不使用任何中间服务,例如LogMeIn.

我的计划是:

  1. 让他通过 SSH 连接到我的机器(防火墙允许 SSH),并设置适当的隧道。
  2. 在我的机器上当前运行的服务器上激活 rdesktop/vnc X

我不喜欢它的是,以他的用户身份在当前运行的服务器上运行程序很麻烦X。我宁愿让他以某种方式设置隧道我的rdesktop localhost:1234用户,这样只要他与我连接,我就可以进行操作。

有什么更聪明的方法吗?

答案1

我更愿意设置一个 VPN (开放VPN例如)服务器在您的计算机上,客户端在您朋友的计算机上。当他想让你连接时,他打开VPN(在你的机器上不涉及登录),你打开远程桌面客户端到他的机器的IP(至少使用openvpn,你可以为他的机器分配一个“固定”IP,这样你就可以保存起来,不用每次都看)。

这样你就无法登录你的机器,只有当他打开VPN时你才能访问他的机器。另一方面,当你不想让他连接到你的机器时,你可以关闭服务器。不管怎样,如果你不给他一个你机器上的用户(或者一个只有你想要的访问权限的用户),他就不能做太多事情。

这样,如果需要,您可以轻松地与更多朋友一起使用,因为他们只需要安装 VPN 客户端。

答案2

如果我正确地阅读了这个问题,听起来您已经了解了 ssh 隧道方面的问题,但您希望以您自己的用户身份在您朋友的计算机上运行程序,而不是在他的会话中运行它们。有许多 VNC 服务器(我使用的是tightvnc,它非常可靠),它们创建一个在后台运行的虚拟桌面,然后您可以连接到该桌面,而不是将您连接到朋友计算机上当前活动的会话。

一旦您在朋友的计算机上安装了ightvnc,您就可以运行“tightvncserver :1”在不同的显示器上启动桌面,然后将端口5901(5900 +显示器编号)转发到您的计算机。

请注意,默认桌面非常空闲;您可以在远程计算机上的 ~/.vnc/xsession 脚本中配置ightvnc 启动时运行的内容。

答案3

这是一种略有不同的方法,我已经成功使用了几年。它需要您进行一些设置,但对于您的远程朋友来说却非常简单。

首先你需要设置一个UltraVNC 单击客户端。一旦您拥有客户端,您就可以向远程用户发送电子邮件,当他们运行该客户端时,它将连接到在侦听器模式下运行的 vnc 客户端。可以将其视为反向 vnc 连接。您可以阅读有关反向连接、UltraVNC SC 等的更多信息。这里

Lifehacker 很好地解释了如何设置这一切这里

相关内容