Назад | Перейти на главную страницу

X11 пересылка через приложения ssh очень медленно запускается

У меня есть сервер, который очень медленно (занимает 3-5 минут) при запуске приложений X11 через перенаправленную ссылку X11. Я пробовал подключаться к нему с 2-3 разными машинами с разными операционными системами. После запуска приложений вроде все нормально. Я подключаюсь с использованием доверенной пересылки X11 (ssh -Y) и использую аутентификацию на основе сертификатов (не то, чтобы это имело значение).

Операционная система - Gentoo Linux на amd64. Ни одно из приложений не выдает никаких сообщений, относящихся к среде X (одно ничего не показывает, другое просто стандартное приветственное сообщение, а последнее - сообщение об ошибке, касающееся используемого ресурса (о котором мне тоже сообщило окно, которое наконец появилось).

По совету Бертеры я использовал параметр -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 для сервера (достаточно простого пинга)? Какое приложение вы пытаетесь запустить?

X11 - это синхронный протокол с сериализованным вызовом отрисовки. Если задержка велика или приложение выполняет много вызовов рисования, время его загрузки увеличится.

Если вы можете, вам следует установить freenx на сервер и использовать клиент nx (например, remmina или nomachine.com client): они работают путем десериализации вызовов рисования X11, что дает гораздо более высокую производительность.

Проблема в том, что ssh делает что-то в петле с ipv6, и у меня была настройка ip6tables, чтобы отбросить весь трафик. Сделал следующее, и теперь он работает:

ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -A OUTPUT -o lo -j ACCEPT
ip6tables -A FORWARD -i lo -o lo -j ACCEPT

Спасибо ezakimak на #gentoo за указание угла ipv6.