MyTetra Share
Делитесь знаниями!
Xming и удаленная работа с графическим терминалом Linux
Время создания: 27.10.2018 15:18
Текстовые метки: xming xserver windows ssh linux
Раздел: Xming
Запись: Velonski/mytetra-database/master/base/1540635509zn3rq4q7w2/text.html на raw.githubusercontent.com

При обычном входе в систему Linux через графический терминал вы видите на своем экране приглашение, формируемое менеджером дисплея - Display Manager (далее DM). Кроме обеспечения авторизации, DM также позволяет выбрать графическую оболочку, в которой вы будете работать (KDE, Gnome, Window Maker и т.п.) и, при определенных настройках, обеспечивает возможность удаленного подключения пользователей.


В настоящий момент в графической подсистеме (X Window System или X11) используются три наиболее распространенных разновидности менеджеров дисплея. Это X Display Manager (xdm), Gnome Display Manager (gdm) и KDE Display Manager (kdm). Самый простой - это xdm, более красивые и функциональные - это gdm и kdm. В последних версиях Linux Ubuntu используется lightdm - лёгкий дисплейный менеджер, основанный на HTML-подобном интерфейсе. Кроме этих, существуют и другие относительно редко используемые, дисплейные менеджеры, расширяющие возможности базового DM. В большинстве операционных систем семейства Linux, менеджер дисплея, используемый по умолчанию указывается в файле /etc/X11/default-display-manager .


В данной статье рассматриваются варианты настроек для менеджеров xdm, gdm и kdm. Настройки для LightDM рассматриваются в статье Удаленное подключение по локальной сети к графической подсистеме Linux Ubuntu


Какой именно менеджер дисплея используется в системе на данный момент, можно проверить с помощью команды ps при запущенной графической оболочке (уровень запуска 5):


# ps -A | grep dm


В результате выполнения команды отобразится список процессов, одним из которых будет мененджер дисплея.


Для подключения из ОС Windows к графической подсистеме Linux через локальную сеть, Используется специальное программное обеспечение - X-сервер.

Один из наиболее популярных и бесплатных представителей - Xming X Server for Windows .


Для операционных систем семейства Windows XP/VISTA/7 можно воспользоваться самой распространенной стабильной версией 6.9.0.31 Скачать, (около 2 Мб). Более поздние версии Xming и дополнительные пакеты с поддержкой различных шрифтов, а также локализованную версию мастера Xlaunch найдете здесь:


www.straightrunning.com - сайт проекта Xming


sourceforge.net - раздел проекта Xming на sourceforge.net


Xming устанавливается на компьютере с операционной системой Windows, и позволяет с помощью специального мастера подключаться к рабочему столу Linux с использованием протокола XDMCP, или напрямую работать с отдельными графическими приложениями, запускаемыми на удаленной подсистеме, с использованием технологии перенаправления графического вывода X11 Forwarding. Использование XDMCP позволяет получить доступ к рабочему столу Linux и работать так же, как будто вы находитесь в среде графической подсистемы Linux, а X11 Forwarding позволяет работать с отдельными графическими приложениями, не используя рабочий стол, что дает заметный выигрыш в быстродействии.


Кроме установки пакета Xming на компьютере с Windows, как правило, потребуется выполнение некоторых несложных настроек демона SSH и менеджера дисплея на компьютере с Linux. В качестве Linux будет рассматриваться Mandriva 2010 Free. Для выполнения настроек потребуются права пользователя root


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

Менеджеры дисплея (DM) могут настраиваться на поддержку X Display Manager Control Protocol (XDMCP)- протокола, обеспечивающего удаленное подключение графических терминалов (X-терминалов) к графическому серверу (X-серверу). Настроенный на удаленную работу менеджер дисплея, принимает входящие подключения на UDP порт 177 (по умолчанию) сетевого интерфейса локальной сети. Проверить, готов ли менеджер к удаленным подключениям, можно командой:


# netstat -na или netstat -na | grep 177


Если UDP порт 177 не слушается системой, значит удаленное подключение с использованием протокола XDMCP невозможно и необходимо выполнить настройки используемого менеджера дисплея (Display Manager). В принципе, не исключено использование для подключения нестандартного номера порта, вместо udp/177, что также задается настройками DM.


Настройка менеджера xdm (Mandriva 2010 Free).


Переходим в каталог /etc/X11/xdm и редактируем файл конфигурации xdm-config. Для разрешения удаленного подключения закомментировать строку:


#DisplayManager.requestPort 0


Изменения в настройках менеджера дисплея вступают в силу только при его перезапуске, поэтому, после редактирования конфигурационных файлов необходимо или перезагрузиться, или перезапустить графическую подсистему, например выполнив, с обычного терминала, под root-ом последовательно команды


init 3 - перейти на уровень запуска 3 (без графической подсистемы)


init 5 - перейти на уровень запуска 5 (с графической подсистемой).


Для перезапуска текущего менеджера дисплея в Linux Mandriva ( Mageia ) можно использовать команду:


service dm restart


Для перезапуска менеджера дисплея lightdm в Linux Ubuntu:


service lightdm restart


Настройка менеджера kdm Linux Mandriva 2010 Spring Free).


Переходим в каталог /usr/share/config/kdm и редактируем файл kdmrc. На самом деле kdmrc - это ссылка на

/etc/alternatives/kdm4-config

, который, в свою очередь является ссылкой на реальный файл конфигурации


/var/lib/mandriva/kde4-profiles/free/share/config/kdm/kde4rc


В секции [Xdmcp] строку Enable=false меняем на:

Enable=true

Перезапускаем графическую подсистему.


В последних версиях KDE, настройки по умолчанию задают режим запуска X-сервера без ожидания TCP подключений ( не слушается TCP порт 6000 ). Это легко проверяется командой netstat -na | grep 6000 и при необходимости, вносятся изменения в конфигурационный файл /usr/share/config/kdm/kdmrc. Для разрешения приема входящих соединений, параметр ServerArgsLocal= нужно оставить пустым. По умолчанию, ServerArgsLocal=-nolisten tcp , что приводит к запуску X-сервера с запретом на удаленное подключение.


Настройка менеджера gdm Linux Mandriva 2010 Free.


При стандартной установке Mandriva Linux 2010 Spring, менеджер дисплея gdm не инсталлируется, однако, в составе дистрибутива имеется, и при необходимости, может быть установлен. Для разрешения удаленного подключения с использованием XDMCP, нужно перейти в каталог /etc/X11/gdm и подредактировать файл custom.conf. В секции [xdmcp] строку Enable=false меняем на:

Enable=true

Перезапускаем графическую подсистему или перезагружаемся и проверяем, слушается ли порт udp/177.


Устанавливаем Xming, и запускаем приложение Xlaunch. Для использования XDMCP необходимо выбрать режим работы в одном окне:


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


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


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

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


Удаленная работа с использованием X11 Forwarding.


Перенаправление графического вывода удаленной подсистемы (X11 Forwarding) позволяет работать напрямую с графическими приложениями без использования рабочего стола Linux. Если количество нужных для работы приложений невелико, то такой способ предпочтительнее, поскольку позволяет снизить степень использования ресурсов удаленной системы и позволяет получить более высокое быстродействие, по сравнению с технологией, основанной на использовании XDMCP. При перенаправлении графического вывода, (X11 forwarding) Xming, используется в качестве X-сервера, работающего поверх вашего рабочего стола Windows, с запускаемыми на удаленной системе с ОС Linux графическими приложениями. Кроме Xming, в данной технологии используются клиент и сервер SSH. Клиентская часть - на компьютере с ОС Windows, сервер - на компьютере с Linux. Разработчики Xming с некоторых пор, включили клиентское программное обеспечение для реализации X11 Forwarding в состав инсталляционных пакетов (Standart PuTTY и Portable PuTTY). Однако, в ранних версиях инсталляционных пакетов Xming (версии 6.9.0.5) его еще не было. В данной статье рассматриваются примеры с использованием PuTTY версии 0.60, бесплатного SSH - клиента для Windows, который можно скачать здесь


Инсталляция не требуется. Просто скопируйте исполняемый файл putty.exe в каталог с установленным Xming или любой другой по вашему выбору.


Для организации X11 forwarding нам придется немного изменить настройки ssh-демона Linux. При стандартной установке Linux Mandriva 2010 Spring Free никаких настроек делать не пришлось, но, на всякий случай, их все же не мешает проверить. Все действия требуют права root.


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


X11Forwarding yes


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


service sshd restart


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


Настройка Putty.


Основные настройки можно оставить по умолчанию или в соответствии с вашими предпочтениями. Для работы с Xming в режиме перенаправления достаточно подправить только секцию SSH:


Разрешено X11 Forwarding и будет использоваться X-дисплей 0. Использовать 0-й номер дисплея не обязательно, важно, чтобы этот номер совпадал с номером дисплея, указанном при запуске Xming:


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


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



Если возникли проблемы.


При возникновении проблем с подключением, следует, в первую очередь, просмотреть журналы на стороне Linux и на стороне Windows. Xming, по умолчанию ведет журнал в каталоге %TEMP% зарегистрировавшегося пользователя. Имя файла журнала - Xming.0.log. Вместо "0" в имени могут присутствовать другие цифры. Ошибки, возникающие при старте Xming, фиксируются в файле Xming.log, находящемся в домашнем каталоге Xming (обычно - C:\Program Files\Xming\). Для диагностики на стороне Linux обычно достаточно записей в журнале /var/log/messages


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


- не слушается порт udp/177, или слушается нестандартный порт, или слушается не на том сетевом интерфейсе

- подключение блокируется файерволлом

- менеджер дисплея отвергает удаленное подключение.


Последняя ошибка внешне выглядит следующим образом - Xming нормально запускается, нет никаких сообщений об ошибках, соединение не разрывается, но экран остается пустым ("серая клетка"). В файле журнала периодически появляется запись :


winProcEstablishConnection - Hello

winProcEstablishConnection - Xdmcp enabled, waiting to start clipboard client until fourth call.

AUDIT: Thu Dec 30 12:37:57 2010: 2292 Xming: client 1 rejected from IP 192.168.0.101

Auth name: MIT-MAGIC-COOKIE-1 ID: -1


MIT-MAGIC-COOKIE-1 - это наиболее популярный протокол авторизации в X-Window, поскольку он самый простой. Для организации удаленного сеанса используется 128-битный ключ, который передается в виде простой текстовой строки. По умолчанию, данные авторизации хранятся в файле .Xauthority домашнего каталога пользователя и состоят из полей с именем компьютера, именем протокола авторизации (MIT-MAGIC-COOKIE-1) и 128-битного ключа. Просмотреть информацию о существующих записях можно с помощью команды xauth list


Обычно, при правильной настройке PuTTY, для исправления ситуации достаточно на стороне Linux добавить запись для IP-адреса компьютера с Windows в файл /etc/hosts


192.168.0.11 WINCOMP - для компьютера WINCOMP с IP-адресом 192.168.0.11


Если на компьютере с Windows существует несколько сетевых интерфейсов, то запись в файл hosts нужно добавлять для каждого из них.


Для отладки, или временного решения проблемы, можно в строку запуска Xming, добавить параметр -ac, отключающий контроль доступа к серверу ( disable access control restrictions )


Следующей, наиболее часто встречающейся проблемой, является случай, когда в сеансе пользователя, подключившегося к компьютеру с Linux с помощью PuTTY, выполняется переход в учетную запись суперпользователя root и уже из под нее запускается графическое приложение. Обычно запуск не выполняется и выдается сообщение об ошибке согласования протоколов авторизации:


PuTTY X11 proxy: wrong authorisation protocol attemptedPuTTY X11 proxy: wrong authorisation protocol attemptedError: cannot open display: localhost:10.0


Возможно также сообщение об ошибке авторизации с использованием MIT-MAGIC-COOKIE-1 :


PuTTY X11 proxy: MIT-MAGIC-COOKIE-1 data did not matchPuTTY X11 proxy: MIT-MAGIC-COOKIE-1 data did not matchError: cannot open display: localhost:10.0


Причиной таких ошибок является либо отсутствие файла .Xauthority в домашнем каталоге /root, либо отсутствие в нем необходимых для авторизации записей. В качестве наиболее простого решения проблемы можно воспользоваться добавлением уже существующих и рабочих записей из профиля пользователя в профиль root'а. Для чего нужно:


под учетной записью пользователя выполнить команду:

xauth list

В результате отобразится информация подобная следующей:


computer1/unix:10 MIT-MAGIC-COOKIE-1 d6be173154bd0bbb4cec9588b097737a

computer2/unix:10 MIT-MAGIC-COOKIE-1 bbdf4a00c6bb558fa568bb21cfab9b1f


под учетной записью root добавить данные авторизации командой, например для computer2:


auth add computer2/unix:10 MIT-MAGIC-COOKIE-1 bbdf4a00c6bb558fa568bb21cfab9b1f


Чтобы не набирать все это вручную, можно использовать перенаправление вывода команды auth в текстовый файл и создание на основе полученного файла скрипта для добавления записей в профиль root'a:


- выполнить под учетной записью пользователя команду auth list > /tmp/magiccookies


под учетной записью root'а отредактировать файл /tmp/magiccookies , добавив в начало нужных строк auth add . Ненужные строки можно удалить. Добавить отредактированному файлу атрибут ”исполняемый” командой chmod +x /tmp/magiccookies и запустить его на выполнение.

Если в файле журнала ( Xming.N.log ) присутствует строка


XDMCP fatal error: Manager unwilling Host unwilling


то это означает, что возникли проблемы с доступом к удаленной системе, и наиболее вероятно, что отсутствует файл Xaccess, он пустой, или в файле нет настроек, разрешающих данное подключение. Для диагностики данной проблемы, проверьте конфигурационный файл вашего менеджера дисплея , определите место нахождения Xacess и проверьте его содержимое. Так, например, в конфигурационном файле менеджера kdm в Mandriva, указан путь к файлу Xaccess - /usr/share/config/kdm/Xaccess но сам файл отсутствует. Для решения проблемы можно создать его самостоятельно, с одной единственной строкой, содержащей символ звездочки ( * ) ( разрешено подключение всем ) или использовать файл от менеджера xdm, указав его путь в конфигурационном файле kdmrc секции [Xdmcp]


Xaccess=/etc/X11/xdm/Xaccess


Более разумно, все же разместить файл управления доступом Xaccess в том же каталоге, где расположен конфигурационный файл менеджера дисплея ( DM ).


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


winDeinitMultiWindowWM - Noting shutdown in progress


Это сообщение записывается при завершении работы Xming, а тот факт, что между инициализацией и завершением работы нет никаких других событий, означает что от удаленного узла не было получено вообще никакого ответа. Более точную информацию о проблеме можно получить, используя снифферы, например tcpdump на стороне Linux, и tshark на стороне Windows. Для графической среды пользователя можно использовать бесплатный анализатор трафика Wireshark как в среде Linux, так и в среде Windows.


При изменении настроек в конфигурационных файлах на стороне Linux нужно перезапускать графическую подсистему, например выполнением команд:


init 3 - переход на уровень запуска 3 ( без графической оболочки )

init 5 - переход на уровень запуска 5 ( с графической оболочкой )


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


gdm-restart - перезапустить менеджер дисплея gdm

service dm restart - перезапустить менеджер дисплея, с использованием скрипта /etc/rc.d/init.d/dm .

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования