我有一台运行 Ubuntu 11.10 Server 的远程计算机,我通过 SSH 从 OS X 10.7.3 连接到该计算机:
主机 remote.example.com ForwardX11 是 ForwardX11Trust 是
有时我想在那里启动 GUI 应用程序(最明显的是gitk
)。但 UI 相当慢。远程机器和我自己的 Mac 都有良好的互联网连接。它们之间的 Ping 大约为 55ms,并且没有数据包丢失。我可以做些什么来加快速度?
设置其他远程桌面解决方案是一种选择,但我想避免它,因为我并不经常需要这个应用程序。
答案1
文章X11 转发的最佳 SSH 选项建议使用性能更佳的 arcfour 和 blowfish 密码代替默认的 AES 密码。
因此应该使用:
ssh -c arcfour,blowfish-cbc -XC host.com
ssh -Y -C -o CompressionLevel=9 -c arcfour,blowfish-cbc user@hostname
这可能有助于进一步提高您已经观察到的压缩速度。
答案2
您提到您不想设置其他远程桌面解决方案,但您关心性能。X11 不是一种非常高效的协议,因此除非您使用更现代的协议,否则您只能期待微小的改进。
NX (NoMachine) 可能是您的最佳选择。它仍然使用 ssh,因此与其他可能需要更改防火墙设置等的桌面协议相比,它应该不需要太多额外的工作。Fedora 有 NX 软件包,所以我推测它们也适用于 Ubuntu。
如果您足够关心性能,愿意花时间提出这个问题,那么希望您可以花几分钟来学习 NX。
编辑:澄清为什么 X11 通过 ssh 永远不会很快:X 协议处理低级绘图,如线条和圆圈,以及低级事件,如“鼠标向左移动 3 个像素”。现代 GUI 工具包(如 GTK 和 Qt)不画线,而是画图像。当 X11 通过 SSH 时,它必须不断发送图像数据和低级鼠标事件。高级协议(如 NX、VNC 或远程桌面)可以通过了解工具包的工作方式来减少带宽和延迟。例如,它们可以避免发送鼠标事件,它们可以避免在移动窗口时进行数千次重绘,它们可以缓存屏幕区域(如菜单)。如果性能只是一个小问题,原始 X11 始终是错误的选择。幸运的是,有许多快速的替代方案,易于配置和使用。