我有一台服务器在通过转发的 X11 链接启动 X11 应用程序时非常慢(需要 3-5 分钟)。我试过用 2-3 台不同操作系统的不同机器连接它。应用程序启动后,一切似乎都很好。我正在使用受信任的 X11 转发 (ssh -Y) 并使用基于证书的身份验证进行连接(这无关紧要)。
操作系统是 Gentoo Linux on amd64。没有一个应用程序提供任何与 X 环境相关的消息(一个什么都不显示,另一个只是标准的欢迎消息,最后一个是关于正在使用的资源的错误消息(最终弹出的窗口也告诉我了)。
根据 Bertera 的建议,我使用 -v 选项运行。在打印时出现窗口之前,它不会打印任何内容:
debug1: client_input_channel_open: ctype x11 rchan 3 win 87380 max 16384
debug1: client_request_x11: request from 127.0.0.1 43716
debug1: channel 1: new [x11]
debug1: confirm x11
此外,我已经测试了 ssh 端口转发,它也非常慢(我猜这可能是 X11 转发的问题)。
服务器的延迟/RTT 是多少(一个简单的 ping 就足够了)?您要启动什么应用程序?
X11 是一种同步协议,具有序列化的绘图调用。如果延迟很高或应用程序执行许多绘图调用,其加载时间将会增加。
如果可以,您应该在服务器上安装 freenx 并使用 nx 客户端(例如:remmina 或 nomachine.com 客户端):它们通过反序列化 X11 绘图调用来工作,从而大大提高性能。
问题是 ssh 使用 ipv6 在环回上做事,我有 ip6tables 设置来丢弃所有流量。只需执行以下操作即可使用:
感谢 #gentoo 上的 ezakimak 指出了 ipv6 的角度。