Запуск удалённых приложений, часть 2






Удалённый рабочий стол при помощи Xnest/Xephyr

Использование опции -display позволяет организовать удалённый запуск отдельных приложений, а как быть, если вам нужен весь рабочий стол целиком? При помощи X-серверов Xnest или Xephyr можно запустить удалённую X-сессию через XDMCP. Эти серверы работают подобно обычным оконным приложениям, однако могут удалённо подключаться к GDM для организации X-сессии. Xnest и Xephyr не являются частью GNOME и обычно не устанавливаются по умолчанию. Поискав в репозитариях пакетов вашей системы, вы можете найти и установить соответствующие пакеты. Их имена, например, в Fedora выглядят примерно так: xorg-x11-server-Xephyr и xorg-x11-server-Xnest.


После установки серверы могут быть вручную запущены для того, чтобы подключиться к удалённой системе:

Познакомившись с обеими реализациями можно сделать вывод, что Xephyr (изображён на скриншоте выше) более современен, активно разрабатывается и, как следствие, более стабилен. К сожалению, есть один неприятный момент в работе с ним: после того, как вы завершите работу в X-сессии, вы снова не сможете подключиться к удалённому GDM. Такое, вероятно, происходит потому, что GDM по умолчанию сконфигурирован так, чтобы разрешать не более одного подключения. Думаю, это можно решить, покопавшись в конфигурации GDM. В процессе экспериментов я не придумал ничего лучше, нежели перезапускать GDM на удалённой системе.

XDMCP через GDM работает наподобие трубопровода для удалённых приложений, которые отображают свои окна в локальной системе. Фактически, на удалённой системе вообще не нужно выполнять вход в систему. Главное, чтобы был запущен GDM. Поскольку создаётся новая X-сессия, вы можете использовать разрешение экрана отличное от используемого на удалённой системе. Например, если на удалённой системе невозможно получить разрешение экрана более, чем 800*600, то при наличии такой возможности в локальной системе, вы можете без проблем это сделать при использовании Xephyr и XDMCP через GDM. Также, вы без проблем можете использовать различные окружения рабочего стола (GNOME, KDE, Xfce и еже с ними) на удалённой системе и при подключении к ней через XDMCP.

XDMCP: «за» и «против»

«За»:

  • используются «родные» возможности X11;
  • легко конфигурируется через GDM;
  • без проблем работает через фаерволл;
  • раздельные X-сессии.

«Против»:

  • не поддержки звука/видео;
  • небезопасно, пароли передаются в открытом виде;
  • несовместим с не-Linux платформами.

Удалённый экран через SSH

Безусловно, наиболее простым методом удалённого отображения приложений является использование SSH. SSH — отличное средство безопасного подключения к удалённым компьютерам. Вместе с Linux поставляется открытая реализация SSH, называемая OpenSSH. Как в серверной, так и клиентской частях  OpenSSH присутствует возможность включения туннелирования X11. Чтобы воспользоваться этой возможностью, клиент OpenSSH должен быть запущен с опцией -X.

SSH работает по принципу «клиент-сервер». Сервером является удалённая система, а клиентом — локальная (такая схема, как раз, и укладывается в традиционное понимание многими термина «клиент-сервер»,  а  в случае с X11 всё наоборот). Для того, чтобы разрешить форвардинг X11, удалённый сервер должен быть соответствующим образом сконфигурирован. Соответствующие настройки делаются в файле /etc/ssh/sshd_config:

Настройки туннелирования X11 могут быть также включены/запрещены для каждого пользователя отдельно:

Внося изменения в конфигурационный файл сервера OpenSSH, не забывайте перезапускать его для того, чтобы изменения ступили в силу:

На стороне клиента, в файле /etc/ssh/ssh_config необходимо включить опцию Forward11Trusted. В Fedora эта опция включена по умолчанию, в то время как в некоторых других дистрибутивах вам придётся сделать это самостоятельно:

Имейте ввиду, что расположение файлов конфигурации OpenSSH в различных дистрибутивах могут быть разными. Подробности  вы найдёте в документации к OpenSSH, установленному в вашей системе.

После того, как клиент и сервер настроены, пользователь может пользоваться прелестями туннелирования X11, подключившись к удалённой системе SSH-клиентом, вызванным с опцией -X. При использовании этой опции, SSH передаёт удалённым приложениям всю необходимую информацию об X-сервере, так что вам не нужно их запускать с опцией -display или устанавливать предварительно переменную окружения DISPLAY.

Использование перенеправления X11 через SSH не требует, чтобы в удалённой системе работал GDM или X-сервер. Это даёт возможность работать с удалёнными компьютерами, не имеющими ни запущенного X-сервера, ни монитора вообще. Также, отсутствие GDM и X-сервера уменьшает количество потребляемых ресурсов на удалённой системе.

Однако, имейте ввиду, что поскольку графические приложения нуждаются в библиотеках, поставляемых вместе с X-сервером, последний должен быть установлен в удалённой системе.

Форвардинг X11 через SSH: «за» и «против»

«За»:

  • безопасно;
  • просто настраивается;
  • прост в использовании;
  • работает при использовании перенаправления портов;
  • не требует наличия запущенных GDM и X-сервера в удалённой системе;
  • возможность запуска нескольких приложений в пределах одной сессии;
  • работает в видео.

«Против»:

  • очень медленный по сравнению с использованием GDM и VNC;
  • не поддерживает звук;
  • протокол X11 сам по себе является очень «жирным».

По мотивам LinuxJournal.Com