如何在 SSH 中加速 X11 转发

內容

当您通过 SSH 运行 X 应用程序时,SSH 协议的加密/解密开销可能会减慢远程运行的 X 应用程序的渲染速度。此外,如果通过广域网建立 SSH 会话,由于网络延迟和吞吐量限制,通过 SSH 的 X11 转发可能会变得更慢。

在本教程中,我将介绍一些关于如何通过广域网在 SSH 中加速 X11 转发的技巧。

有两种方法可以通过 SSH 提高 X11 转发的性能。

方法一

首先,您可以使用 OpenSSH 客户端的_压缩选项_。使用 -C 选项,OpenSSH 客户端将压缩通过 SSH 交换的所有数据,包括 stdinstdoutstderr 和转发的 X11 会话。

您还可以考虑在 SSH 中使用计算量较小的密码,以便在加密/解密过程中花费更少的时间。众所周知,OpenSSH 使用的默认 AES 密码速度很慢。

一项独立研究表明,arcfourblowfish 密码比 AES 更快,如下所示。根据 SSH 手册页,blowfish 是一种快速分组密码,而且非常安全。同时,arcfour 流密码比常见的分组密码更容易受到攻击。因此使用arcfour时要小心。

要使用上述技巧加速 X11 转发,您可以按如下方式通过 SSH 连接到远程主机。

$ ssh -XC -c blowfish-cbc,arcfour [email _host.com

方法二

或者,您可以在 SSH 配置文件中指定这些选项。

要编辑系统范围的 SSH 配置文件:

$ sudo vi /etc/ssh/ssh_config

要编辑每用户 SSH 配置文件:

$ vi ~/.ssh/config

在任一 SSH 配置文件中,添加以下内容:

Host remote_host.com Compression yes ForwardX11 yes Ciphers blowfish-cbc,arcfour

然后您可以通过 SSH 连接到远程主机,而无需使用任何命令行选项:

$ ssh [email _host.com

请注意,在 SSH 中切换到不同的密码有一些注意事项。首先,特定密码的性能可能因不同的处理器架构而异。例如,最近几代 Intel 处理器(例如 Intel i5、i7、Xeon)配备了对 AES 的硬件支持(例如 AES-NI),在这种情况下(硬件加速)AES 将比其他处理器快得多。

其次,如果建立X11转发的网络非常慢,那么X11转发的瓶颈实际上是网络,而不是CPU。在这种情况下,无论您使用哪种密码,X11转发的性能都不会受到影响。

總結
本文介绍了通过 SSH 在广域网中加速 X11 转发的技巧。主要包括使用 OpenSSH 客户端的压缩选项和选择计算量较小的密码来提高性能。推荐使用 blowfish 和 arcfour 密码,同时指定这些选项可以在 SSH 配置文件中进行。文章还提到了不同处理器架构对密码性能的影响以及网络速度对 X11 转发性能的影响。