Xming подключение к linux

Обновлено: 06.07.2024

При обычном входе в систему 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):

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

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

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 (по умолчанию) сетевого интерфейса локальной сети. Проверить, готов ли менеджер к удаленным подключениям, можно командой:

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

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

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

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

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

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

service dm restart

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

service lightdm restart


В секции [Xdmcp] строку Enable=false меняем на:
Enable=true
Перезапускаем графическую подсистему.

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

Устанавливаем 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 для 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.

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

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

- не слушается порт udp/177, или слушается нестандартный порт, или слушается не на том сетевом интерфейсе
- подключение блокируется файерволлом
- менеджер дисплея отвергает удаленное подключение.

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

Обычно, при правильной настройке 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 )

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

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 'а. Для чего нужно:

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

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

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

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

XDMCP fatal error: Manager unwilling Host unwilling

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

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

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

winDeinitMultiWindowWM - Noting shutdown in progress

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

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

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

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

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

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

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

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

Способы и средства удаленного подключения к графической подсистеме Linux из Windows уже рассматривались подробно в статье Подключение из Windows к графической подсистеме Mandriva Linux. В данной же статье рассматриваются вопросы, связанные с особенностями настройки X-сервера Ubuntu и менеджера дисплея LightDM. На стороне Windows используется бесплатный пакет Xming, последнюю версию которого, а также дополнительные пакеты с поддержкой различных шрифтов, и локализованную версию мастера Xlaunch найдете здесь:

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

Перенаправление графического вывода удаленной подсистемы ( X11 Forwarding ) позволяет работать напрямую с графическими приложениями среды Linux на компьютере с графическим сервером Xming на стороне Windows. Данный режим реализуется с помощью SSH-подключения, в котором ssh-сервер sshd на стороне Linux перехватывает графический ввод-вывод и перенаправляет его ssh-клиенту ( PuTTY ) на стороне Windows, который в свою очередь , перенаправляет его графическому серверу Xming , развернутому в среде Windows. Таким образом, для реализации данного режима не требуется настройка X-сервера и менеджера дисплея для работы по сети, но требуется установка и настройка демона ssh на стороне Linux. В большинстве дистрибутивов Linux для рабочих станций (например, Ubuntu Desktop), сервер 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

Строка Означает, что сервер ожидает входящие соединения ( “слушает”, 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 графическими приложениями. При этом, графический сервер на удаленном Linux не используется и может быть даже не установлен.

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

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

При установке пакета Xming имеется возможность выбрать устанавливаемые версии PuTTY.

Однако, лучшим выбором будет скачать актуальную версию бесплатного SSH - клиента для Windows на странице загрузки PuTTY, где размещены ссылки для скачивания файлов утилиты putty.exe и дополнительных программных модулей, которые могут использоваться для работы с ней (копирование файлов, генерация ключей, телнет-клиент и т.п.). Имеется также ссылка для скачивания архива, включающего putty.exe и дополнительных программ для 32-х и 64-х разрядных ОС. Инсталляция не требуется. Просто скопируйте исполняемый файл putty.exe в каталог с установленным Xming, или любой другой, по вашему выбору.

PuTTY для X11 forwarding

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

Xming - X11 forwarding

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

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

Как уже рассматривалось выше, настройки X11 Forwarding в секции SSH/X11 PuTTY, также определяют X-сервер, на который будет перенаправляться графический ввод-вывод:

localhost:0 - X-сервер, слушающий порт 6000/TCP

localhost:1 - X-сервер, слушающий порт 6001/TCP

xmessage $DISPLAY - отобразить значение переменной DISPLAY

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

xmessage – вывод значения переменной DISPLAY

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

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

При запуске из сессии 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 Ubuntu Desktop последних версий не предусматривают возможности удаленного подключения к графической среде по локальной сети – сервер X11 не слушает порт 6000/TCP и менеджер LightDM не слушает порт 177/UDP. Поэтому, в первую очередь нужно выполнить соответствующие настройки, обеспечивающие возможность сетевого подключения по протоколу XDMCP.

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

Для разрешения TCP-подключений к графическому серверу X11 , нужно в файл конфигурации lightdm.conf добавить строку :

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

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

service lightdm restart

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

После перезапуска графической подсистемы или перезагрузки Ubuntu, можно проверить, слушаются ли порты 6000/TCP и 177/UDP:

netstat –na | more

В результате, видим, что менеджер дисплея ( LightDM ) настроен на использование протокола XDMCP и принимает входящие подключения на UDP порт 177 (по умолчанию) , а графический сервер (сервер X11 ) – принимает входящие подключения на порт 6000/TCP. Вообще-то, сетевой доступ к графическому серверу на стороне Linux для случая с применением Xming на стороне Windows не потребуется, и настройка для порта 6000/TCP приведена лишь в качестве примера.

Для удаленного подключения к рабочему столу Linux по протоколу XDMCP используется порт 177/UDP, который должен слушаться на стороне Linux и не должен быть закрыть брандмауэром. Кроме того, на компьютерах с несколькими сетевыми интерфейсами возможны проблемы с удаленным подключением, вызванные нестыковкой IP-адресов и имен узлов. Поэтому, в файлах /etc/hosts ( Ubuntu ) и \windows\system32\drivers\etc\hosts ( Windows ) нужно прописать соответствие имен и IP-адресов компьютеров для того сетевого интерфейса, через который будет выполняться подключение ( например, только для подсети 192.168.0.0/24). Очень часто в среде Linux, после установки системы, например на компьютер с именем Ubuntu13, в файле /etc/hosts присутствуют записи :

Как видно, имени Ubuntu13 сопоставлен адрес петлевого интерфейса, и следовательно, реальный обмен данными по протоколу IP с использованием имени узла, невозможен. Чтобы устранить данную проблему, нужно в последней строке заменить 127.0.0.1 на IP-адрес компьютера в локальной сети например:

Аналогично, в системе с Windows, в файле hosts нужно оставить ( добавить) только те записи, которые задают однозначное соответствие имен и IP-адресов в одной и той же подсети.

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

Xlaunch - режим XDMCP

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

Xlaunch - режим XDMCP

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

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

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

Иногда приходится пользоваться тем, что дали. "Мой компьютер", на котором стоит Debian Linux, был занят моей женой (не учите своих жен пользоваться линуксом). Зато был свободен компьютер сестры с установленным на нем Windows. И вот появилось желание подключиться к своему компьютеры с рабочей станции под управлением враждебной OS. Первым, что пришло в голову - это удаленный рабочий стол. Однако, нашлось более элегантное решение. И, несмотря на заголовок статьи, речь пойдет о немного другой технологии. Взгляните на этот снимок:


Вы видите приложения Linux прямо на рабочем столе Windows! Как же они туда попали?

Немного о теории. В отличие от Windows, в Linux графическая оболочка не является частью ядра системы. Стандартная оконная система для Linux - это X Window System, или, попросту говоря, иксы. Она берет на себя отрисовку графических элементов и взаимодействие с устройствами ввода-вывода. А самое вкусное заключается в том, что эта система имеет прозрачную клиент-серверную архитектуру. Оконная система выполняет роль сервера, а графические приложения - роль клиентов. Как и положено клиентам, они подключаются к серверу и взаимодействуют с ним для отрисовки и для получения событий мыши и клавиатуры.

Но это еще не все! Дело в том, что оконная система может находиться на другом компьютере, а графическое приложение связываться с ней через сеть. Так вы можете запустить приложение на удаленном компьютере, заставив его рисоваться на том компьютере, за которым сейчас работаете. Или наоборот. Или запустить программу на одном удаленном компьютере с отрисовкой интерфейса на другом удаленном компьютере. Заманчивая возможность, неправда ли? :-)

Думаю, достаточно теории, давайте приступим к практике.

Для начала подготовим удаленный компьютер Debian Linux. Все, что нам здесь нужно - это SSH-сервер. Через него мы будем подключаться удаленно и запускать нужные нам программы. Выполняем всего одну команду в консоли:

$ sudo apt-get install openssh-server

Все, с этим компьютером мы закончили, и касаться его клавиатуры в ходе этой статьи больше не будем. Теперь можем переходить к подготовке компьютера Windows. Здесь нужно установить две программы:

1. SSH-клиент. Я установил PuTTY.
2. X Server для Windows. Я выбрал Xming.

Обе программы можно загрузить с сайта SourceForge (пакеты Xming и Xming-portable-PuTTY). Также по желанию можно загрузить стандартный набор шрифтов (пакет Xming-fonts). Все, что загрузили - устанавливаем (с полной установкой всех компонент Xming), и переходим к настройке. Теперь главное не запутаться, что к чему будем подключать.

Для начала установим соединение по SSH с удаленным компьютером. Для этого запускаем PuTTY. Вводим IP-адрес компьютера Linux.


Теперь переходим в раздел Connection / SSH / X11 и включаем перенаправление графического интерфейса. В качестве расположения X-сервера водим IP-адрес компьютера Windows, за которым сейчас сидим.


Кроме того, чтобы вместо русских букв не всплыли крокозябли, желательно в разделе Window / Translation установит правильную кодировку (у меня - UTF8 - стандартная кодировка на Debian и Ubuntu). Возвращаемся в раздел Session, сохраняем настройки и подключаемся к компьютеру Linux. В случае успешного подключения мы вводим логин и пароль и видим текстовую консоль. С ее помощью мы можем удаленно запустить консольные программы, но графические программы не могут рисоваться в консоли. Поэтому оставим на время наше подключение по SSH.

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


На втором шаге нам предлагается автоматически запускать какое-нибудь приложение вместе с иксами. Я предпочел сделать это позже по мере необходимости посредством уже запущенного нами PuTTY.



И, наконец, на следующем шаге сохраняем настройки кнопкой "Save configuration" и запускаем X-сервер кнопкой "Готово".



В системном лотке появится иконка Xming



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


Итак, X-сервер запущен. Возвращаемся в нашу консоль, предоставленную соединением SSH. Здесь мы можем удаленно запустить консольное приложение, и в этой же консоли увидим вывод этого приложения. А что теперь будет, если мы попытаемся запустить в этой консоли графическое приложение? Обычно, если вы подключились по SSH и пытаетесь запустить оконное приложение, вы получите ошибку, потому что вы подключились к удаленному компьютеру в консольном режиме, и рисовать окна просто нечем. Однако, в этот раз мы включили перенаправление графики на наш компьютер Windows, на котором уже запущен свой X-сервер. Поэтому, если вы попытаетесь запустить оконное приложение в удаленном консольном терминале, его окно нарисуется на компьютере Windows. Попробуйте, например, набрать следующую команду:

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

Ну, надеюсь, у вас все получилось, и на вашем рабочем столе Windows красуются оконные приложения Linux.

Удаленное подключение к рабочему столу Linux из Windows с помощью Xming и SSH

Взгляните на этот снимок:


Вы видите приложения Linux прямо на рабочем столе Windows! Как же они туда попали?

Но это еще не все! Дело в том, что оконная система может находиться на другом компьютере, а графическое приложение связываться с ней через сеть. Так вы можете запустить приложение на удаленном компьютере, заставив его рисоваться на том компьютере, за которым сейчас работаете. Или наоборот. Или запустить программу на одном удаленном компьютере с отрисовкой интерфейса на другом удаленном компьютере. Заманчивая возможность, неправда ли? 🙂

Думаю, достаточно теории, давайте приступим к практике.

$ sudo apt-get install openssh-server

Все, с этим компьютером мы закончили, и касаться его клавиатуры в ходе этой статьи больше не будем. Теперь можем переходить к подготовке компьютера Windows. Здесь нужно установить две программы:

1. SSH-клиент. Я установил PuTTY.
2. X Server для Windows. Я выбрал Xming .

Для начала установим соединение по SSH с удаленным компьютером. Для этого запускаем PuTTY. Вводим IP-адрес компьютера Linux.



Теперь переходим в раздел Connection / SSH / X11 и включаем перенаправление графического интерфейса. В качестве расположения X-сервера водим IP-адрес компьютера Windows, за которым сейчас сидим.



На втором шаге нам предлагается автоматически запускать какое-нибудь приложение вместе с иксами. Я предпочел сделать это позже по мере необходимости посредством уже запущенного нами PuTTY.



В системном лотке появится иконка Xming



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



Итак, X-сервер запущен. Возвращаемся в нашу консоль, предоставленную соединением SSH. Здесь мы можем удаленно запустить консольное приложение, и в этой же консоли увидим вывод этого приложения. А что теперь будет, если мы попытаемся запустить в этой консоли графическое приложение? Обычно, если вы подключились по SSH и пытаетесь запустить оконное приложение, вы получите ошибку, потому что вы подключились к удаленному компьютеру в консольном режиме, и рисовать окна просто нечем. Однако, в этот раз мы включили перенаправление графики на наш компьютер Windows, на котором уже запущен свой X-сервер. Поэтому, если вы попытаетесь запустить оконное приложение в удаленном консольном терминале, его окно нарисуется на компьютере Windows. Попробуйте, например, набрать следующую команду:

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

Ну, надеюсь, у вас все получилось, и на вашем рабочем столе Windows красуются оконные приложения Linux.

Огромное спасибо! Великолепная статья.

К сожалению, сделав все как написано, результата я не получил!

Иногда многое можно понять просмотрев логи.

У меня осталась только пара вопросов:
1. Можно ли как-то сделать, чтобы в винде у меня открывались не разнородные окошки, а прямо Kubuntu-вский рабочий стол с меню?
2. Если можно, то можно еще сделать так, чтобы с винды происходило именно управление теми же иксами, которые открыты на Linux-овом серваке, а не открытие своих?

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

Спасибо большое, прекрасная статья. Особенно благодарю andr128. Нужно бы этот комментарий к статье добавить.

Читайте также: