VNC 和 ssh -X 的区别

The*_*man 35 ssh vnc

为什么要使用 VNC(或就此而言 NX)而不是仅使用ssh -X (-Y). 我读到 VNC 使用的带宽较少,但是与相应的工具还有其他区别/优势吗?

dka*_*dal 35

除了带宽和延迟问题(可能会有所不同)之外,最大的区别在于它提供的功能。

VNC 导出整个会话、桌面等,而 ssh 将运行单个程序并在您的工作站上显示其窗口。

VNC 服务器会导出一个会话,即使您断开屏幕连接,该会话仍然存在,您可以稍后在所有窗口打开等情况下重新连接到它。这对于 ssh X 隧道是不可能的,因为当您的 X 服务器死机时,窗口会消失.

  • 虽然有点过时(因为这个 Q 大概只与 GUI 应用程序有关):如果不需要实际的 GUI 应用程序,并且只需要基本的 shell 访问就可以了(例如,xterm),然后执行“ssh”,然后执行“screen bash”。如果断开连接(笔记本电脑关闭、vpn 断开连接等),远程外壳将保持活动状态。通过“screen -r”重新登录并重新连接。我只是提出这个问题,因为我看到人们运行 vnc 只是为了基本的 shell 访问(或运行本地显示的远程 xterm);大多数时候(但当然并非总是如此),简单的 shell 访问就足够了。 (10认同)
  • 这是我一直使用 VNC,从不直接使用 X 窗口的最大原因。(我通过 ssh 隧道使用 VNC)。当我合上笔记本电脑的盖子时,连接断开了。使用 ssh -X,无法恢复——我必须从头开始重新启动应用程序。使用 VNC(直接和通过 ssh 隧道),我可以重新连接并从上次中断的地方继续。 (6认同)
  • @simona ssh 登录成功后,然后运行 ​​screen: `ssh user@host` ; 登录后:`screen bash`; 断开连接,`ctrl+a` 后跟 `ctrl+d`。您可以注销并重新登录,然后:`screen -ls` 和`screen -r`。退出 bash 会退出屏幕会话。有关更多(更多),请参阅 [GNU screen](http://www.gnu) 上的 [各种教程](https://www.google.com/search?q=how+to+use+gnu+screen) .org/软件/屏幕/) (3认同)

gre*_*ade 10

ssh -X将 X11 命令重定向到本地 X 服务器。所以就好像你在本地运行程序,而它实际上在另一端的计算机上运行。它非常慢,因为它使用了大量带宽。(这就是人们在说 X11 是“网络透明”时所谈论的。)

相反,VNC 和其他远程桌面应用程序让另一台计算机处理所有图形绘制等,并在本质上捕获屏幕截图并将其发送回您的计算机。它看起来要快得多,因为显示所有内容所需的信息要少得多。但是,它还会发送整个桌面,而不是单个应用程序。

我不建议用ssh -X在互联网上,原因很简单:它使用所有可用的带宽。在我看来,它在 LAN 上相当有用,所以如果您只需要一个应用程序并且不想运行整个桌面,这是一个很好的方法。否则,只需使用 VNC。

  • “它非常慢,因为它使用了大量带宽。X11 协议非常复杂,通常涉及通过连接来回发送大型像素图。” - 这是错误的,X11 协议不是很复杂,它不涉及通过连接来回发送大型像素图。快来加入这个提案,了解更多关于 X Window 系统的信息:http://area51.stackexchange.com/proposals/20129/the-x-window-system (3认同)

Ste*_*ski 5

VNC 将从远程系统共享整个桌面。它需要远程系统上的成熟桌面。

ssh -X 允许您从远程服务器运行单个 X 应用程序。远程系统不需要运行完整的桌面,您通常只需要在远程系统上安装少量软件包。

ssh -X在通过远程连接安装复杂的软件包时非常有用。某些软件产品可能使用 GUI 安装程序(Oracle 数据库等)。我不想在我的远程服务器上安装一个成熟的 Gnome 桌面。因此,您在远程服务器上安装一两个 X11 软件包(Xauth?),并允许 DBA 使用诸如“ssh -X /media/cdrom/oracle-installer”之类的简单命令远程运行 Oracle 安装程序。