Для удаленного подключения к графической подсистеме Linux из Windows используются два основных способа:
- перенаправление графического ввода-вывода из среды Linux на графический сервер , работающий на стороне Windows ( X11 Forwarding )
- подключение с использованием X Display Manager Control Protocol (XDMCP) - протокола, обеспечивающего удаленное подключение графических терминалов (X-терминалов) к графическому серверу (X-серверу).
Первый способ проще реализуется и позволяет получить приемлемое быстродействие графических приложений на системах с малой производительностью. Менеджер дисплея и TCP-соединения X-сервера на стороне Linux в данном случае не используются. Второй – позволяет получить полноценное удаленное рабочее место пользователя, функционально ничем не отличающееся от обычного, локального. При реализации данного вида удаленного подключения используются дополнительные настройки конфигурации для X-сервера и менеджера дисплея.
Подключение из Windows к графической подсистеме Linux на примере Ubuntu Desktop .
В данной же статье рассматриваются вопросы, связанные с особенностями настройки X-сервера Ubuntu и менеджера дисплея LightDM. На стороне Windows используется бесплатный пакет Xming, последнюю версию которого, а также дополнительные пакеты с поддержкой различных шрифтов, и локализованную версию мастера Xlaunch найдете здесь:
Страница загрузки Xming на сайте проекта sourceforge.net
Страница новостей разработчика.
Удаленная работа с использованием X11 Forwarding.
Перенаправление графического вывода удаленной подсистемы (X11 Forwarding) позволяет работать напрямую с графическими приложениями среды Linux на компьютере с графическим сервером Xming на стороне Windows. Данный режим реализуется с помощью SSH-подключения, в котором ssh-сервер sshd на стороне Linux перехватывает графический ввод-вывод и перенаправляет его ssh-клиенту ( PuTTY ) на стороне Windows, который в свою очередь , перенаправляет его графическому серверу Xming, развернутому в среде Windows. Таким образом, для реализации данного режима не требуется настройка X-сервера и менеджера дисплея для работы по сети, но требуется установка и настройка демона ssh на стороне Linux. В стандартном варианте установки Ubuntu Desktop 13.04 сервер SSH не устанавливается, поэтому его нужно установить командой :
sudo apt-get install ssh
В процессе выполнения команды будет выдано сообщение об устанавливаемых пакетах и объеме занимаемого ими пространства на жестком диске:
… ncurses-term openssh-server python-requests python-urllib3 ssh-import-id, rssh molly-guard monkeysphere openssh-blacklist openssh-blacklist-extra ) НОВЫЕ пакеты, которые будут установлены: ncurses-term openssh-server python-requests python-urllib3 ssh ssh-import-id обновлено 0, установлено 6 новых пакетов, для удаления отмечено 0 пакетов, и 273 пакетов не обновлено. Необходимо скачать 848 kБ архивов. После данной операции, объём занятого дискового пространства возрастёт на 3 480 kB. Хотите продолжить [Д/н]?После ответа Д будет установлен и запущен сервер SSH
Для проверки работоспособности ssh-сервера можно воспользоваться командой:
netstat -na | more
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 192.168.0.133:39653 192.168.0.33:50021 ESTABLISHED tcp6 0 0 :::22 :::* LISTEN . . .
Строка
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTENОзначает, что сервер ожидает входящие соединения ( “слушает”, LISTEN ) стандартный порт 22 на всех сетевых интерфейсах (0 0.0.0.0:22 )
Для режима перенаправления графического вывода X11 forwarding в настройках демона sshd необходимо включить ( проверить ) некоторые параметры. Все действия требуют права root.
Переходим в каталог /etc/ssh и открываем конфигурационный файл демона SSH sshd_config. Для работы через X11 Forwarding в нем должна присутствовать незакомментированная строка
X11Forwarding yes
Естественно, в данном режиме, работа с удаленной графической подсистемой Linux, выполняется напрямую с графическими приложениями, без использования рабочего стола Ubuntu. Если количество нужных для работы приложений невелико, то такой способ предпочтительнее, поскольку позволяет снизить степень использования ресурсов удаленной системы и позволяет получить более высокое быстродействие, по сравнению с технологией, основанной на использовании XDMCP. Таким образом, при перенаправлении графического вывода, (X11 forwarding)программа Xming, используется в качестве X-сервера, работающего поверх вашего рабочего стола Windows, с запускаемыми на удаленной системе с ОС Linux графическими приложениями.
Кроме Xming, в данной технологии используются клиент и сервер SSH. Клиентская часть - на компьютере с ОС Windows, сервер - на компьютере с Linux. Разработчики Xming с некоторых пор, включили клиентское программное обеспечение для реализации режима X11 Forwarding в состав инсталляционных пакетов (Standart PuTTY и Portable PuTTY).
При установке пакета Xming имеется возможность выбрать устанавливаемые версии PuTTY
Кроме того, свежую версию бесплатного SSH - клиента для Windows, можно скачать на странице загрузки PuTTY
Инсталляция не требуется. Просто скопируйте исполняемый файл putty.exe в каталог с установленным Xming, или любой другой, по вашему выбору.
Для работы с Xming в режиме перенаправления графического вывода достаточно подправить секцию SSH:
Данные настройки означают, что разрешено X11 Forwarding и для него будет использоваться графический дисплей (X-дисплей) с номером 0. Использовать 0-й номер дисплея не обязательно, но важно, чтобы этот номер совпадал с номером дисплея, указанном при запуске Xming ( поле Display number ):
При запуске Xming, с помощью мастера Xlaunch, задается номер дисплея (при необходимости) и выбирается многооконный режим Multiple windows, остальные параметры можно оставить по умолчанию. Фактически, номер дисплея определяет номер порта графического сервера на стороне Windows
– 0 соответствует порту 6000/TCP
- 1 – 6001/TCP
. . .
Как уже рассматривалось выше, настройки X11 Forwarding в секции SSH/X11 PuTTY, также определяют X-сервер, на который будет перенаправляться графический ввод-вывод:
localhost:0 - X-сервер, слушающий порт 6000/TCP
localhost:1 - X-сервер, слушающий порт 6001/TCP
. . .
Соответственно, если на одном и том же компьютере запускается несколько X-серверов Xming, то номера графических дисплеев для них должны быть разными и соответствовать номерам, задаваемым в настройках клиента SSH. Для проверки подключенных графических подсистем можно воспользоваться командой отправки сообщения графическому дисплею
xmessage $DISPLAY - отобразить значение переменной DISPLAY
В результате выполнения команды получим:
Данное сообщение отображается на том графическом дисплее, которому соответствует перенаправление графического вывода SSH-клиента, в окне которого выполнялась команда xmessage
После того, как Xming стартовал, с помощью ssh-клиента PuTTY подключаемся к ssh-серверу Linux Ubuntu, и в командной строке запускаем нужное графическое приложение, Например, если запустить графический терминал xterm, то на компьютере с Windows появляется окно графического терминала Linux.
При запуске из сессии SSH-клиента PuTTY, или из окна уже запущенного терминала xterm , какого-либо графического приложения, например, обозревателя firefox на рабочем столе Windows отобразится его окно, в котором можно работать точно так же, как и на локальном компьютере с Linux Ubuntu.
Удаленное подключение к графической подсистеме из Linux .
Настройки демона sshd для удаленного доступа к графической подсистеме Linux выполняются точно так же, как и в случае перенаправления для X-сервера на стороне Windows. Графический вывод удаленной системы, в данной конфигурации, будет перенаправляться демоном sshd и разворачиваться графическим сервером на стороне подключившегося клиента.
Для удаленного подключения к графической подсистеме с использованием перенаправления 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 192.168.0.1 ‘xterm’
После авторизации, на локальном дисплее отобразится окно терминала xterm удаленного компьютера под управлением Linux.
По соображениям безопасности, вместо параметра ssh -X желательно использовать параметр -Y, предотвращающий возможность взаимодействия удаленного клиента с локальным графическим дисплеем системы, к которой выполняется подключение.
Подключение к рабочему столу Linux Ubuntu с использованием XDMCP.
Менеджер дисплея ( Display Manager или DM) - это специальная системная служба обеспечивающая запуск графического сервера, вывод на графический дисплей приглашения на вход в систему, регистрацию пользователей, запуск оконных менеджеров, монтирование необходимых устройств, ведение баз данных входов и выходов пользователей в системе utmp и wtmp и т.п.
А если упрощенно - то менеджер дисплея - это программа, с которой начинается сеанс работы пользователя в графическом окружением Linux. Визуально, менеджер дисплея представляет собой окно регистрации пользователя при входе в систему. Обычно под этим подразумевается форма для ввода логина и пароля, меню для выбора графической среды, и дополнительные элементы управления питанием (для выключения компьютера, перезагрузки, перевода в спящий режим), выбора языка ввода, и т.п.
В настоящий момент в графической подсистеме Linux (обозначаемой как X Window System или как X11) наиболее распространенными менеджерами дисплеев являются X Display Manager (xdm), Gnome Display Manager (gdm) и KDE Display Manager (kdm) и с 2012 года -Light Display Manager ( LghtDM ) . Разработка последнего начата в 2010 г. сотрудником компании Canonical Робертом Энцеллом (Robert Ancell) и в настоящее время LiightDM является вполне достойной альтернативой менеджерам дисплея предыдущего поколения. Главными его особенностями являются небольшой размер, высокое быстродействие, возможность работы с любой графической оболочкой и расширение функциональных возможностей с помощью плагинов. В перспективе, проект LightDM задается довольно амбициозной, но все же, реальной целью - стать стандартом для Х-сервера Linux X.org - сервера X Window System с открытым исходным кодом. С 2012 года, LightDM стал использоваться в качестве менеджера дисплеев по умолчанию во всех дистрибутивах Lunux Ubuntu.
Особенности настроек безопасности в Linux Ubuntu Desktop последних версий не предусматривают возможности удаленного подключения к графической среде по локальной сети – сервер X11 не слушает порт 6000/TCP и менеджер LightDM не слушает порт 177/UDP. Поэтому, в первую очередь нужно выполнить соответствующие настройки, обеспечивающие возможность сетевого подключения по протоколу XDMCP.
Все файлы конфигурации менеджера дисплея LightDM размещаются в системном каталоге /etc/lightdm. Основные настройки - это lightdm.conf, который после инсталляции имеет следующее содержание:
[SeatDefaults] user-session=ubuntu greeter-session=unity-greeterДля разрешения TCP-подключений к графическому серверу X11, нужно в файл конфигурации lightdm.conf добавить строку :
xserver-allow-tcp=true
Для разрешения удаленных подключений к менеджеру дисплея нужно добавить секцию
[XDMCPServer]
enabled=true
Внесенные изменения вступят в силу только после перезапуска менеджера дисплея или перезагрузки системы. Для перезапуска LightDMможно воспользоваться командой:
service lightdm restart
Естественно, перезапуск менеджера дисплея приведет к закрытию всех сессий пользователей, вошедших в систему через него.
После перезапуска графической подсистемы или перезагрузки Ubuntu, можно проверить, слушаются ли порты 6000/TCP и 177/UDP:
netstat –na | more
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 192.168.0.133:52588 192.168.0.33:50021 ESTABLISHED tcp6 0 0 :::6000 :::* LISTEN tcp6 0 0 :::22 :::* LISTEN udp 0 0 0.0.0.0:177 0.0.0.0:* udp 0 0 0.0.0.0:34524 0.0.0.0:* udp 0 0 0.0.0.0:5353 0.0.0.0:* udp 0 0 127.0.1.1:53 0.0.0.0:* udp6 0 0 :::177 :::* udp6 0 0 :::5353 :::* udp6 0 0 :::41728 :::* . . .В результате, видим, что менеджер дисплея ( LightDM ) настроен на использование протокола XDMCP и принимает входящие подключения на UDP порт 177 (по умолчанию) , а графический сервер (сервер X11 ) – принимает входящие подключения на порт 6000/TCP.
Если какой-либо из портов не слушается или закрыт брандмауэром, то удаленное подключение с использованием протокола XDMCP невозможно. Кроме того, на компьютерах с несколькими сетевыми интерфейсами возможны проблемы с удаленным подключением, вызванные нестыковкой IP-адресов и имен узлов. Поэтому, в файлах /etc/hosts ( Ubuntu ) и \windows\system32\drivers\etc\hosts ( Windows ) нужно прописать соответствие имен и IP-адресов компьютеров для того сетевого интерфейса, через который будет выполняться подключение ( например, только для подсети 192.168.0.0/24). В Ubuntu 13.04, после установки системы, например на компьютер с именем Ubuntu13, в файле /etc/hosts присутствуют записи :
127.0.0.1 localhost
127.0.0.1 Ubuntu13
Как видно, имени Ubuntu13 сопоставлен адрес петлевого интерфейса, и следовательно, реальный обмен данными по протоколу IP с использованием имени узла, невозможен. Чтобы устранить данную проблему, нужно последнюю строку заменить на IP-адрес в локальной сети и имя ( в примере Ubuntu13 ) – например
192.168.0.133 Ubuntu13
Аналогично, в системе с Windows, в файле hosts нужно оставить ( добавить) только те записи, которые задают однозначное соответствие имен и IP-адресов в одной и той же подсети.
Для подключения к удаленному Linux Ubuntu, можно воспользоваться ярлыком Xlaunch. При подключении с использованием XDMCP необходимо выбрать режим работы в одном окне ( One Window ):
Выбираем сессию с использованием XDMCP:
Указываем IP-адрес или имя компьютера с ОС Linux, к которому необходимо подключиться:
Следующий экран служит для определения дополнительных параметров сессии и его пока можно оставить без изменений. Жмем кнопку "Далее" и, если все сделано правильно - перед нами приглашение менеджера дисплея Linux.
источник
Комментариев нет:
Отправить комментарий