Xming и удаленная работа с графическим терминалом Linux.



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



    При обычном входе в систему 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. Для выполнения настроек потребуются права пользователя 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).


  • Переходим в каталог /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).

  • Переходим в каталог /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.

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

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

    Xlaunch - режим XDMCP


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

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

    Xlaunch - адрес или имя удаленного 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 никаких настроек делать не пришлось, но, на всякий случай, их все же не мешает проверить. Все действия требуют права root.

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

    X11Forwarding yes

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

    service sshd restart

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

  • Настройка Putty.

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

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

    Xming - X11 forwarding


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

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

    Drakdisk  X11 forwarding





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



        При возникновении проблем с подключением, следует, в первую очередь, просмотреть журналы на стороне 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 .

    Статьи по теме доступа к удаленным рабочим столам Linux и Windows:

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

    Xming и удаленная работа с графическим терминалом Linux Ubuntu

    Remmina - клиент удаленного рабочего стола


    Если вы желаете помочь развитию проекта, можете воспользоваться кнопкой "Поделиться" для своей социальной сети











    В начало страницы       |       На главную страницу сайта


  • Рейтинг@Mail.ru Яндекс.Метрика