Использование socat для удаленного доступа к X

У меня есть удаленный сервер, на котором я хочу запустить некоторые приложения графического интерфейса в сетевом пространстве имен, которое я уже настроил. Я использую socat для пересылки x сессии.

socat  exec:'ssh {REMOTE_HOST} rm -rf /tmp/.X11-unix/X1; socat -d -d -d -d unix-l\:/tmp/.X11-unix/X1111 -' unix:/tmp/.X11-unix/X0

Тем не менее, если я пытаюсь запустить приложение, как eog

DISPLAY=:1111 eog

Сбой со следующим сообщением:

I   No protocol specified
** (eog:9498): WARNING **: Could not open X display
Cannot open display:
Run 'eog --help' to see a full list of available command line options.

А также socat выходит сразу после.

1 ответ

Решение

Ну, это заняло день, но я нашел способ сделать это.

В итоге я использовал Xpra для запуска X-сервера на удаленном сервере и подключил его к своей локальной машине.

Подход socat тоже сработал после запуска xhost + локально и добавив fork флаг в socat вызов на удаленном сервере. Тем не менее, он никогда не работал согласованно (было так много шансов, что приложение зависло при запуске). И это никогда не работало с более сложными приложениями, такими как Firefox. Распределение приложений указывало на зависание приложений при попытке использовать dbus.

Другие вопросы по тегам