如何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
VNC 在从 5900 开始的端口号上运行。(VNC :0 是端口 5900,VNC :1 是端口 5901 等)假设您的工作机器将 :0 用于 VNC,那么您需要转发端口 5900。
如果您已经有一个工作 ssh 隧道可以让您连接
home
到work
(通过中间机器public
),那么您只需要添加-L 5900:localhost:5900
到您运行的任何 ssh 命令home
来连接到work
. 然后你可以 VNC 到localhost:0
onhome
。home
这是最安全的选项,因为您的流量在和之间是端到端加密的work
,但这确实意味着您有两层 SSH 隧道。如果您愿意,您可以改为设置两个单独的隧道,一个在
home
and之间,另一个在andpublic
之间。这可能会稍微快一些,但请注意,此替代方案的安全性取决于. 在这个版本中,任何可以向on发送流量的人都可以连接到 on 的 5900 端口。并且可以检查您的所有 VNC 流量。work
public
public
localhost
public
work
root
public
您可以选择使用
autossh
这些隧道中的一个或两个。