如何在 NAT 后面的两台主机之间建立安全的 VNC 隧道?

如何在 NAT 后面的两台主机之间建立安全的 VNC 隧道?

VNC如何为我家里的电脑和办公室的电脑建立安全隧道,两台主机都在 NAT 后面。我确实可以ssh 访问工作中的机器(我已经建立了一个反向 ssh 隧道(使用autossh)到具有公共 IP 的主机)。所有涉及的机器都在运行 Linux。我需要 X11 访问我的工作计算机,使用-X带有 ssh 的标志可以工作,但速度太慢了。

正如@satwell 所建议的,我采取了第二个建议的解决方案:

work$ ssh -R 5900:localhost:5900 public
home$ ssh -L 5900:localhost:5900 public

它似乎工作得很好,让我从家里连接,但我看到的屏幕看起来像这样: 在此处输入图片描述 我如何访问实际的(统一)桌面?

答案1

VNC 在从 5900 开始的端口号上运行。(VNC:0 是端口 5900,VNC:1 是端口 5901,等等)假设您的工作机器使用:0 作为 VNC,那么您需要转发端口 5900。

如果你已经有一个可以工作的 ssh 隧道,可让你从 连接homework(通过中间机器public),那么你只需要添加-L 5900:localhost:5900到你运行的任何 ssh 命令即可home连接到work。然后你就可以在localhost:0上使用 VNC 了home

home这是最安全的选择,因为您的流量在和之间是端到端加密的work,但这意味着您有两层 SSH 隧道。

如果您愿意,也可以设置两个单独的隧道,一个在home和之间public,另一个在work和之间public。这可能稍微快一点,但请注意,此替代方案的安全性取决于 的安全性。在此版本中,任何可以向发送public流量的人都可以连接到 上的端口 5900。并且可以检查您的所有 VNC 流量。localhostpublicworkrootpublic

work$ ssh -R 5900:localhost:5900 public
home$ ssh -L 5900:localhost:5900 public

您可以选择使用autossh其中一个隧道或者同时使用两个隧道。

相关内容