Иногда приходится пользоваться тем, что дали. Мой компьютер, на
котором стоит 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.
На
третьем шаге указываем параметры запуска 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.
Кстати
говоря, благодаря этой клиент-серверной архитектуре злоумышленник может
отправить на ваш экран окно с просьбой ввести ваш пароль или еще с
какой-нибудь гадостью. Чтобы такого не происходило, не подключайтесь к
общественным сетям без фаирвола. И помните: большие возможности - это
большая ответственность.
Источник: http://debback.blogspot.com/2008/03/linux-windows-xming-ssh.html
Комментарии
Статья помогла, спасибо.
Ростов. Сергей
хардкорненько :) ... добавил в закладки, авось пригодиться ("от сумы, тюрьмы и юзания вантуза не зарекайся", как гласитъ русская народная поговорка).
----
ubuntu7.10@Dell_Inspiron1300, fedora8@msiM670, ALTLinuxDesktop4.1@work
С настройками Putty X11 forwarding пришлось помучиться. Те, что указаны в статье не работали. Подошли Connection / SSH / X11: Enable X11 forwarding = "yes", X display location = ":0", protocol = "MIT-Magic-Cookie-1" (см. особенности настройки Xming и Putty)
чтото очень глючно и тормознуто на мегабитном интернете =( неужели мало?
Отправить комментарий