Введение
Еще в далеком 2002 или 2003 году когда я учился в универе, на одной из пар информатики преподователь показывал нам как подключаться к Linux серверу и запускать приложения Linux-а из ОС Windows. В те времена мне казалось, что это мне совершенно не понадобится в будущем. Но теперь работая системным администратором в организации в сети которой есть и Linux и Windows такая необходимость возникла и я углубился в изучение соответствующей литературы.
В итоге вот что у меня получилось (На скрине видны запущенные приложения Linux в графических окнах под ОС Windows server 2003):
Дело в том, что в отличии от Windows, в Linux графическая оболочка не является частью ядра системы. Стандартная оконная система для Linux – это X Window System, или, попросту говоря, иксы. Она берет на себя отрисовку графических элементов и взаимодействие с устройствами ввода-вывода. А самое главное, что эта система имеет прозрачную клиент-серверную архитектуру. Оконная система выполняет роль сервера, а графические приложения – роль клиентов. Как и положено клиентам, они подключаются к серверу и взаимодействуют с ним для отрисовки и для получения событий мыши и клавиатуры.
Но это еще не все! Дело в том, что оконная система может находиться на другом компьютере, а графическое приложение связываться с ней через сеть. Так вы можете запустить приложение на удаленном компьютере, заставив его рисоваться на том компьютере, за которым сейчас работаете. Или наоборот. Или запустить программу на одном удаленном компьютере с отрисовкой интерфейса на другом удаленном компьютере.
Итак мы научимся запускать на ОС Windows графические приложения с сетевого компьютера под управлением ОС Ubuntu.
Установка и настройка необходимых приложений.
1. Настриваем «сервер» Ubuntu (там где будут работать процессы):
Устанавливаем openssh-server. Для этого выполняем в терминале:
# sudo apt-get install openssh-server |
В файле конфигурации openssh-server разрешаем X11Forwarding:
# sudo gedit /etc/ssh/sshd_config |
Находим и ставим yes:
X11Forwarding yes
Проверяем запущен ли демон sshd:
# /etc/init.d/ssh start |
На этом настройку Ubuntu можно считать завершенной!
2. Настройка клиента Windows XP (там где будут отображаться работающие на сервере процессы):
- Устанавливаем стандартный SSH-клиент Putty или Portable putty;
- Устанавливаем X Server для Windows Xming, при установке указываем, какой Putty установили.
Переходим к настройке PuTTY.
Для начала установим и проверим соединение по SSH с удаленным компьютером. Для этого запускаем PuTTY. Вводим IP-адрес компьютера Linux к которому хотим подключиться.
На всякий случай я поставил стандартную кодировку UTF-8.
Теперь переходим в раздел Connection / SSH / X11
включаем X11forwarding;
X display location ставим :0;
Остальное оставил без изменений.
Сохраните сессию. Иначе придется вводить все настройки заново.
Нажимаем Open и регистрируемся в консоли Linux как на этом скрине.
На этом настройку PuTTY я завершил!
Настройка 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. Попробуйте, например, набрать следующие команды:
- $ gedit &
- $ gnome-system-monitor &
- $ firefox &
- $ thunderbird &
- $ xterm &
- и т.д.
Амперсанд в конце команды указывает, что программу нужно запустить в фоновом режиме, чтобы во время ее работы консоль была доступна для других действий.
Ну, надеюсь, у вас все получилось, и на вашем рабочем столе Windows красуются оконные приложения Linux.
Удачи в администрировании Ubuntu!
P.S. «В написании этой статьи руководствовался этими 2-мя статьями 1 и 2«.{jcomments on}{odnaknopka}