Статьи » Теория компьютерной грамотности

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


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

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



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

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

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

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

Подготовим удаленный компьютер с операционной системой Debian Linux (хотя это не столь важно, не стоит сносить свою Ubuntu, работать будет и на ней). Все, что нам необходимо на этой машине - 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.



На третьем шаге указываем параметры запуска Xming. Опция Clipboard позволяет интегрировать буфер обмена. Также для полноценной работы я ввел следующие параметры:

"-dpi 96" - чтобы поправить размер шрифтов. Значение можно подбирать по вкусу.
"-xkblayout us,ru" - для работы с двумя раскладками клавиатуры.
"-xkbvariant basic,winkeys" - уточнение раскладок.
"-xkboptions grp:caps_toggle" - переключение раскладки клавишей CAPS LOCK.



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



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



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



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

$ kwrite &

или

$ gedit &

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

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

Кстати говоря, благодаря этой клиент-серверной архитектуре злоумышленник может отправить на ваш экран окно с просьбой ввести ваш пароль или еще с какой-нибудь гадостью. Чтобы такого не происходило, не подключайтесь к общественным сетям без фаирвола. И помните: большие возможности - это большая ответственность.

Оригинал статьи - здесь

Рейтинг

В этом разделе

Добавить комментарий

Какую ОС придумал Билл Гейтс ?