Использование 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.