Подключение к графической подсистеме Linux Debian по локальной сети.


Графическая подсистема Linux базируется на клиент-серверной технологии, где в качестве клиента выступает графическое приложение, а в качестве сервера – графический сервер, так называемый X-сервер, он же X.Org Server, он же X Window System, он же X11, а также ”иксы” на жаргоне пользователей Unix-подобных операционных систем (ОС GNU/Linux, BSD). X-сервер обслуживает запросы графических приложений и обеспечивает их взаимодействие с дисплеем, мышью, клавиатурой и другими устройствами пользовательского интервейса. Другими словами, графическое приложение выполняет отрисовку графики на дисплее, а также взаимодействие с мышью и клавиатурой через графический сервер. При чем, сам графический сервер может находиться как на локальном компьютере, так и на удаленном, как под управлением ОС семейства Linux, так и под управлением ОС от Microsoft.

X-сервер был разработан в 1984-м году и c 2004 года является проектом управляемым организацией X.Org Foundation. Полное название графического сервера - X.Org Foundation Open Source Public Implementation of X11. Несколько странноватые сокращенные названия произошли от графической системы-предшественницы - W Window System. Поскольку в английском алфавите буква X находится после W, то получилось X Window System. А после разработки стандарта графической системы под номером 11, прижилось и более краткое наименование - X11. Кроме графического сервера, элементами графической подсистемы Linux являются менеджер дисплея (Display manager) и среда рабочего стола (Desktop Environment). Они обеспечивают авторизацию пользователей, а также внешний вид рабочего стола и набор стандартных программ графической среды.

Как уже упоминалось, графический сервер может быть развернут на удаленном компьютере, в том числе и под управлением Windows (платный NetSarang Xmanager, бесплатный Xming и другие) . Запросы графических приложений в этом случае будут обслуживаться по локальной сети, что требует изменения некоторых настроек, установленных по умолчанию. Для удаленного доступа к графической подсистеме Linux из Windows используются два основных способа:

- перенаправление графического ввода-вывода из среды Linux на графический сервер , работающий на стороне Windows ( X11 Forwarding )

- подключение с использованием X Display Manager Control Protocol (XDMCP) - протокола, обеспечивающего удаленное подключение графических терминалов (X-терминалов) к графическому серверу (X-серверу).

Первый способ реализуется с использованием сервера SSH на стороне Linux и позволяет получить приемлемое быстродействие графических приложений на системах с малой производительностью. Менеджер дисплея и TCP-соединения X-сервера на стороне Linux в данном случае не используются. Запросы графических приложений Linux перехватываются SSH-сервером и перенаправляются X-серверу на стороне Windows через ssh-клиент.

Второй способ позволяет получить полноценное удаленное рабочее место пользователя, функционально ничем не отличающееся от обычного, локального. При реализации данного вида удаленного подключения используются дополнительные настройки конфигурации для X-сервера и менеджера дисплея.

Оба способа предполагают наличие на стороне Windows X-сервера, в качестве которого, например, можно использовать популярный бесплатный Xming X Server for Windows

Страница проекта Xming на Sourceforge - Здесь можно скачать стабильную общедоступную версию Xming X Server

Сайт проекта Xming - здесь можно скачивать последние версии продукта, но только после внесения пожертвования.
 

Доступ к графическим приложениям Linux с использованием перенаправления X11 Forwarding.



    В данном случае рассматривается реализация доступа по локальной сети к графическим приложениям Linux Debian из Windows 10. Правда, за последние несколько лет, практически не меняются никакие настройки Xming X-сервера и программного обеспечения графической подсистемы Linux. Разница в настройках зависит, в основном, от используемого менеджера дисплея. На стороне Linux потребуется установить SSH-сервер (если он не установлен), а на стороне Windows – Xming X Server. Оба продукта устанавливаются стандартно, без каких-либо особенностей.

Как уже упоминалось, перенаправление графического вывода удаленной подсистемы (X11 Forwarding) позволяет работать напрямую с графическими приложениями среды Linux на компьютере с графическим сервером Xming на стороне Windows. Данный режим реализуется с помощью SSH-подключения, в котором ssh-сервер sshd на стороне Linux перехватывает графический ввод-вывод и перенаправляет его ssh-клиенту ( PuTTY ) на стороне Windows, который в свою очередь , перенаправляет его графическому серверу Xming, развернутому в среде Windows. Таким образом, для реализации данного режима не требуется настройка на стороне Linux X-сервера и менеджера дисплея для работы по сети, но требуется установка и настройка демона sshd.

Для установки пакета ssh из репозитория Debian используется команда:

apt-get install ssh

Для установки требуются права суперпользователя root

В процессе выполнения команды будет выдано сообщение об устанавливаемых пакетах и объеме занимаемого ими пространства на жестком диске. После завершения установки сервер ssh будет запущен в стандартной конфигурации, в которой обычно отключен X11 Forwarding. 

Для проверки работоспособности ssh-сервера можно воспользоваться командой:

netstat -nap | grep sshd

В ответ получаем список слушаемых сервером sshd портов (состояние LISTEN) портов: 

tcp       0       0 0.0.0.0:22      0.0.0.0:*      LISTEN

tcp6     0                    :::22                 :::*      LISTEN




    Для режима перенаправления графического вывода X11 forwarding в настройках демона sshd необходимо включить ( проверить ) некоторые параметры. Все действия требуют права root.

Переходим в каталог /etc/ssh и открываем конфигурационный файл демона SSH sshd_config. Для работы через X11 Forwarding в нем должна присутствовать незакомментированная строка 

X11Forwarding yes

Чтобы изменения вступили в силу, демон ssh нужно перезапустить командой

service sshd restart

После чего графическая подсистема Linux готова к использованию X11 Forwarding.

На компьютере с Windows нужно установить Xming X server и SSH-клиент с поддержкой X11 Forwarding, в качестве которого обычно используется PuTTY. Разработчики Xming с некоторых пор, включили в состав инсталляционных пакетов X-сервера и SSH-клиент (Normal PuTTY и Portable PuTTY), который можно установить вместе с Xming: 
 

Выбор варианта инсталляции Xming



Однако, инсталлируемый в комплекте с X-сервером SSH-клиент PuTTY, представляет собой сильно урезанный консольный вариант, пользоваться которым крайне неудобно, особенно если требуется работать с большим количеством серверов SSH. Поэтому, лучше всего, скачать свежую и полную версию на странице загрузки PuTTY. На данной странице имеются ссылки для загрузки как 32-битной, так и 64-битной версии программы, как инсталляционные пакеты .msi, так и отдельные архивы с исполняемыми модулями, не требующие инсталляции. Вообще-то, PuTTY – это очень полезный и функциональный инструмент, который обладает гораздо большими возможностями, чем те, что необходимы для организации перенаправления X11 Forwarding, и , если вы серьезно настроены работать с SSH, желательно установить полный пакет. Однако, для организации X11 Forwarding можно просто скачать архив с PuTTY.exe или plink.exe . В этом случае инсталляция не требуется. Просто скопируйте исполняемый файл putty.exe в каталог с установленным Xming, или любой другой, по вашему выбору.
 

Настройка Putty для перенаправление X11 Forwarding.



    Для работы с сервером Xming в режиме перенаправления графического вывода достаточно подправить секцию SSH:
 

PuTTY для X11 forwarding



Данные настройки означают, что разрешено X11 Forwarding и для него будет использоваться графический дисплей (X-дисплей) с номером 0. Использовать 0-й номер дисплея не обязательно, но важно, чтобы этот номер совпадал с номером дисплея, указанном при запуске Xming ( поле Display number ):
 

Xming - X11 forwarding



Поле X display location можно вообще не заполнять – в этом случае, PuTTY будет определять дисплей X-сервера автоматически. 

При запуске Xming, с помощью мастера Xlaunch, задается номер дисплея (при необходимости) и выбирается многооконный режим Multiple windows, остальные параметры можно оставить по умолчанию. Фактически, номер дисплея определяет номер порта графического сервера на стороне Windows 

– 0 соответствует порту 6000/TCP 

- 1 – 6001/TCP

. . . 

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

Порядок работы с графическими приложениями Linux с использованием X11 Forwarding



После того, как Xming стартовал, с помощью ssh-клиента PuTTY подключаемся к ssh-серверу Debian, и в командной строке запускаем нужное графическое приложение, Например, если запустить графический терминал xterm, то на компьютере с Windows появляется окно графического терминала Linux.
 

Xterm на компьютере с Windows через   X11 forwarding



При запуске из сессии SSH-клиента PuTTY, или из окна уже запущенного терминала xterm , какого-либо графического приложения, например, обозревателя firefox на рабочем столе Windows отобразится его окно, в котором можно работать точно так же, как и на локальном компьютере с Debian Linux .


 

Удаленное подключение к графической подсистеме из Linux .



Настройки демона sshd для удаленного доступа к графической подсистеме Linux выполняются точно так же, как и в случае перенаправления для X-сервера на стороне Windows. Графический вывод удаленной системы, в данной конфигурации, будет перенаправляться демоном sshd и разворачиваться графическим сервером на стороне подключившегося ssh-клиента.

Для удаленного подключения к графической подсистеме с использованием перенаправления X11 Forwarding клиентов Linux-систем, можно воспользоваться стандартным SSH-клиентом:

ssh -X -l user 192.168.0.1 

-X - использовать перенаправление графического вывода X11Forwarding.

-l user - имя пользователя для подключения к удаленному компьютеру.

192.168.0.1 - адрес удаленного компьютера

После регистрации в удаленной системе, пользователь user имеет возможность работать с графическими приложениями на удаленном компьютере 192.168.0.1

Для запуска конкретного приложения на удаленной системе, можно указать его имя:

ssh -X -l user debian-9 ‘xterm’ - подключиться к компьютеру debian-9 в режиме X11 Forwarding и запустить графический терминал xterm.

После авторизации, на локальном дисплее отобразится окно терминала xterm удаленного компьютера под управлением Linux.

По соображениям безопасности, вместо параметра ssh -X желательно использовать параметр -Y, предотвращающий возможность взаимодействия удаленного клиента с локальным графическим дисплеем системы, к которой выполняется подключение.

И в заключение, добавлю, что на компьютере с Linux графическая среда не нужна, поскольку с графическими приложениями взаимодействует X-сервер на удаленном компьютере с Windows или Linux. Этот факт позволяет повысить быстродействие графических приложений за счет экономии ресурсов компьютера с ОС Linux, которые потребовались бы для графической среды (особенно с KDE). 

 

 



 

Подключение к рабочему столу Debian с использованием XDMCP.



    Данный вид подключения позволяет получить рабочий стол Linux на компьютере с Windows и требует изменения настроек менеджера дисплея и графического сервера.

Менеджер дисплея ( Display Manager или DM) - это специальная системная служба обеспечивающая запуск графического сервера, вывод на графический дисплей приглашения на вход в систему, регистрацию пользователей, запуск оконных менеджеров, монтирование необходимых устройств, ведение баз данных входов и выходов пользователей в системе utmp и wtmp и т.п.

А если упрощенно - то менеджер дисплея - это программа, с которой начинается сеанс работы пользователя в графическом окружении Linux. Визуально, менеджер дисплея представляет собой окно регистрации пользователя при входе в систему. Обычно под этим подразумевается форма для ввода логина и пароля, меню для выбора графической среды, и дополнительные элементы управления питанием (для выключения компьютера, перезагрузки, перевода в спящий режим), выбора языка ввода, и т.п. По умолчанию, в Debian 9 устанавливается менеджер дисплея Light Display Manager ( LghtDM ), однако имеется возможность сменить его другие - GNOME display manager (GDM)KDE display manager (KDM)LXDE display manager (LXDM) и т.д. Какой из менеджеров используется в данный момент времени, можно посмотреть в файле /etc/X11/default-display-manager. Пример содержимого в Debian 9:

/usr/sbin/lightdm



Все файлы конфигурации менеджера дисплея LightDM размещаются в системном каталоге /etc/lightdm. Основные настройки хранятся в файле lightdm.conf, где нужно найти секцию XDMCP:

[XDMCPServer]

#enabled=true

#port=177

#listen-address=

#key=

#hostname=


Для разрешения удаленных подключений к менеджеру дисплея нужно раскомментировать первые 2 строки (убрать символ #:

[XDMCPServer]

enabled=true

port=177

#listen-address=

#key=

#hostname=


Если в файле конфигурации sshd_config отсутствует секция [XDMCPServer], то настройки можно выполнить в секции менеджера дисплея [LightDM], раскомментировав строки:

xdmcp-manager = lightdm

xdmcp-port = 177


Внесенные изменения вступят в силу только после перезапуска менеджера дисплея или перезагрузки системы. Для перезапуска LightDM можно воспользоваться командой:

service lightdm restart 

Нужно учитывать, что перезапуск менеджера дисплея приведет к закрытию всех сессий пользователей, вошедших в систему через него.

Для подключения к удаленному Debian, можно воспользоваться ярлыком Xlaunch. При подключении с использованием XDMCP необходимо выбрать режим работы в одном окне ( One Window ):
 

Xlaunch - режим XDMCP



Выбираем сессию с использованием XDMCP:
 

Xlaunch - режим XDMCP



Указываем IP-адрес или имя компьютера с ОС Linux, к которому необходимо подключиться:
 

Xlaunch - адрес или имя удаленного Linux



Следующий экран служит для определения дополнительных параметров сессии и его пока можно оставить без изменений. Жмем кнопку "Далее" и, если все сделано правильно - перед нами приглашение менеджера дисплея Linux.