加速远程 X 会话

Ale*_*ysh 18 remote-desktop xorg ubuntu macos

我有一台运行 Ubuntu 11.10 服务器的远程机器,我通过 SSH 从 OS X 10.7.3 连接到它:

主机 remote.example.com
 ForwardX11 是
 ForwardX11Trusted 是

有时我想在那里启动一个 GUI 应用程序(最值得注意的是,gitk)。但是用户界面相当慢。远程机器和我自己的 Mac 都有良好的互联网连接。它们之间Ping在55ms左右,没有丢包。有什么我可以做的事情来加快速度吗?

设置一些其他远程桌面解决方案是一种选择,但我想避免它,因为我并不经常需要这个应用程序。

har*_*ymc 18

本文为X11转发SSH最佳选择推荐使用的,而不是默认的AES加密,使用ARCFOUR和执行更好的河豚密码。

因此,应该使用:

ssh -c arcfour,blowfish-cbc -XC host.com
Run Code Online (Sandbox Code Playgroud)

Seb 的技术说明(如果站点关闭,则有存档版本)推荐:

ssh -Y -C -o CompressionLevel=9 -c arcfour,blowfish-cbc user@hostname
Run Code Online (Sandbox Code Playgroud)

这可能有助于进一步提高您已经通过压缩观察到的速度提升。

  • AES、arcfour 和 blowflish 不是压缩;它们是密码学。请注意,通过更改 AES,您会降低连接的安全性;所以这在某些情况下可能不可行。不过,“-C”选项在这里很关键,因为那是压缩。请注意设置压缩级别,确保对其进行测量,因为它可能会对 CPU 产生巨大影响...... (2认同)

amc*_*abb 7

您提到您不想设置其他远程桌面解决方案,但您关心性能。X11 不是一个非常有效的协议,因此除非您使用更现代的协议,否则您只能期待微小的改进。

NX (NoMachine) 可能是您的最佳选择。它仍然使用 ssh,因此与可能需要更改防火墙设置等的其他桌面协议相比,它不应该付出太多额外的努力。 Fedora 有 NX 包,所以我认为它们也可用于 Ubuntu。

如果您对性能足够关心而花时间提出问题,那么希望您可以多花几分钟时间来学习 NX。

编辑:澄清为什么 X11 over ssh 永远不会很快:X 协议处理低级绘图,如线和圆,以及低级事件,如“鼠标向左移动 3 个像素”。像 GTK 和 Qt 这样的现代 GUI 工具包不绘制线条,它们绘制图像。当 X11 通过 SSH 时,它必须不断发送图像数据和低级鼠标事件。NX、VNC 或远程桌面等高级协议可以通过了解工具包的工作方式来减少带宽和延迟。例如,它们可以避免发送鼠标事件的需要,它们可以避免在移动窗口时进行数千次重绘,并且它们可以像菜单一样缓存屏幕区域。如果性能只是一个小问题,原始 X11 总是错误的选择。幸运的是,有许多易于配置和使用的快速替代方案。