Xming. Подключение к X-Window Linux из Microsoft Windows
Ключевые слова: Xming, X-Window, Putty, Ssh
Предисловие
Случилось так, что вместо FreeBSD я поставил CentOS 5.2. Когда я ставлю FreeBSD, то не предполагаю использование оконных интерфейсов, вроде KDE или GNOME. Имхо, во FreeBSD их реализация сделана чуть хуже, чем в Linux, но не важно, я не хочу разводить политических войн. А тут поставил CentOS с KDE. Все сервера стоят у меня в серверной, соответственно, если бы я захотел использовать графические приложения, мне пришлось бы сидеть на табурете в тесной и жаркой комнатухе и… Короче, я решил, что попытаюсь сделать так, чтобы можно было использовать преимущества графического интерфейса Linux, не сидя при этом непосредственно за компьютером.
Из Википедии:
X Window System обеспечивает базовые функции графической среды: отрисовку и перемещение окон на экране, взаимодействие с мышью и клавиатурой. X Window System не определяет деталей интерфейса пользователя — этим занимаются менеджеры окон, которых разработано множество. По этой причине внешний вид программ в среде X Window System может очень сильно различаться в зависимости от возможностей и настроек конкретнного оконного менеджера.
В X Window System предусмотрена сетевая прозрачность: графические приложения могут выполняться на другой машине в сети, а их интерфейс при этом будет передаваться по сети и отображаться на локальной машине пользователя. В контексте X Window System термины «клиент» и «сервер» имеют непривычное для многих пользователей значение: «сервер» означает локальный дисплей пользователя (дисплейный сервер), а «клиент» — программу, которая этот дисплей использует (она может выполняться на удалённом компьютере).
Поэтому для меня был необходим X-Server для Windows. С его помощью я подключился бы к программе-клиенту на компьютере с Linux в графическом режиме.
Наиболее удобным оказался бесплатный Xming X Server.
Xming X Server
Для создания защищенного соединения между Linux и Windows-компьютерами нам потребуется ssh, благо в нем есть все нам необходимое и он бесплатен. По этому соединению будут «общаться» X-сервер на Windows и графическая программа-клиент на Linux.
На любом компьютере с Linux есть запущенный ssh-сервер. Если у вас это не так – вы – исключение и вам надо установить openssh-сервер на вашем Linux-компьютере.
На компьютере с Windows нам потребуется клиент ssh, например, putty.
Настройка putty
Меню Connection -> SSH -> X11:
Здесь 192.168.0.10 – адрес компьютера, с которого мы подключаемся к Linux.
При соединении по ssh к Linux часто бывает, что кодировки отличаются, например, это может сказываться на отображении русских букв или псевдографики, например, при запуске в консоли файлового менеджера mc. Или, в нашем случае, это может повлиять на отображение программ Linux на нашем Windows-компьютере. Для уменьшения вероятности таких проблем изменим кодировку в putty на UTF-8:
В конце вводим ip-адрес Linux компьютера, сохраняем настройки putty и соединяемся:
Вот, теперь установим и настроим Xming
Установка и настройка Xming
Скачиваем файл Xming-6-9-0-31-setup.exe (на 26.02.09 я скачал эту версию). Запускаем.
Указываем, в каком виде желаем работать с программами-клиентами:
Далее предлагается настроить запуск собственной версии ssh, либо использовать соединение, устанавливаемое вручную. Я предпочитаю все ручками, поэтому выбираю верхний вариант (устанавливать соединение самим):
Далее мы можем добавить корректирующие настройки:
В поле «Addtional parameters for Xming” можем вписать следующее (нашел в интернете):
«-dpi 96» — уточняем размер шрифтов.
«-xkblayout us,ru» — для работы с двумя раскладками клавиатуры.
«-xkbvariant basic,winkeys» — уточнение раскладок.
Полный список (но без нормальных комментариев) есть на странице http://www.straightrunning.com/XmingNotes/manual.php.
Жмем далее, «Save configuration», «Готово». Все, настройка закончена, значок Xming висит в трее и ждет подключений со стороны Linux. Не дадим ему долго ждать и в окне сессии ssh, открытой нами ранее, вводим, например, «system-config-network &». Знак «&» пишется через пробел для того, чтобы запускаемое приложение работало в фоновом режиме.
Если все прошло нормально, вы увидите окно:
Ну вот и все, все как всегда не очень сложно, бесплатно и безопасно!
OpenSource в заметках
Благодаря тому, что X Window System изначально реализовывала сетевую клиент-серверную архитектуру, мы имеем возможность запускать приложение на одном компьютере, а графический ввод/вывод осуществлять на другом. Действительно, очень удобно бывает запустить на своём домашнем компьютере графическое приложение, находясь при этом в другой стране, и работать с ним, как ни в чём не бывало. Хорошо, если в том месте, из которого вы подключаетесь к домашнему компьютеру, установлена UNIX-like ОС, имеющая на борту установленный X-Server. А если нет? Если кругом сплошной MS Windows, как это частенько встречается? Ответ прост: запустите X-Server под Windows.
Установка
Скачайте инсталляционный файл Xming со страницы проекта на SourceForge.Net и запустите процесс инсталляции:
Запуск X-клиентов
В принципе, после того, как вы установили и запустили X-Server на машине под управлением MS Windows, можно смело соединяться посредством SSH с нужным хостом, на котором собираетесь запускать X-клиента, и, собственно, наслаждаться жизнью. Ваш SSH-клиент должен уметь делать X11-форвардинг, чтобы клиент на удалённой машине смог «достучаться» до локально-запущенного X-сервера. PuTTY вполне подойдёт. Не забудьте указать PuTTY, что хотите использовать X-Forward:
После того, как попадёте в командную оболочку на удалённой машине, можно запускать приложения:
Создание ланчеров
Если вы испытываете явный дискомфорт, каждый раз открывая PuTTY для того, чтобы лишь запустить приложение на удалённом компьютере, то у разработчиков Xming есть для вас приятное решение. Программа XLaunch, входящая в состав Xming позволяет организовать запуск SSH-клиента, установку соединения с удалённой машиной и запуск приложения на ней в автоматическом режиме.
XLaunch выполняет действия на основе данных предварительно созданного конфигурационного файла, который легко создаётся при помощи той же XLaunch, запущенной без параметров.
Выбираем режим работы Xming:
Запустить не только X-сервер, но и клиент:
Какое приложение и на каком хосте запускать:
Настройка дополнительных параметров:
Сохраняем конфигурационный файл на рабочий стол:
Теперь, если щёлкнуть двойным кликом по ланчеру «gnome-terminal» на рабочем столе, XLaunch установит SSH-соединение (при помощи собственного SSH-клиента) с удалённым компьютером:
и запустит нужное приложение:
Xming: X-Server для Windows : 14 комментариев
а графические приложения запускать можно-то? или только терминал?
rom85, а gnome-terminal, извиняюсь, это не графическое приложение.
Приведите, пожалуйста, пример практического применения, а то я не могу додуматься
Александр, в первом абзаце, вроде бы, привёл пример.
все сделал, запускаю
просит пароль для putty
ввожу , а в ответ тишина
Vov, попробуйте залогиниться на удалённой системе через SSH, используя PuTTY с включённой опцией «X11/Enable X11 forwarding». Запустите Xming и в PuTTY на удалённой системе запустите какое-нибудь приложение, затем посмотрите что произойдёт.
а у меня при логине putty спрашивает пользователя и пароль, но выдает Access denied и никак не могу зайти. логинюсь с вин2003 в убунту10.04. что не так?
и еще вопрос: подойдет ли это метод для связи windows-windows?
Отличная штука, я не только отдельные приложения запускал, целиком гнома выводил. Кстати надо было бы дописать как настраивать переключение языка в клавиатуре. Новички сразу не смогут разобраться куда гуглить.
> а у меня при логине putty спрашивает пользователя и пароль, но выдает Access denied и никак не могу зайти. логинюсь с вин2003 в убунту10.04. что не так?
Неважно откуда логинитесь. Смотрите логи вашего сервера и конфигурацию sshd, быть может, пользователю, которым вы логинитесь, вообще удалённых вход по SSH запрещён.
> и еще вопрос: подойдет ли это метод для связи windows-windows?
А почему нет? Cygwin’овские приложения должны замечательно работать.
> Кстати надо было бы дописать как настраивать переключение языка в клавиатуре
Little_jon, у меня он так и не настроен. Как-то надобности не было. И я даже не знаю, как это делается 😉
а не Cygwin’овские? например калькулятор или тотал коммандер?
rom85, ну, разве что научить калькулятор с коммандером работать с X-Server вместо GDI. Другого способа не вижу.
Ну а как язык-то переключать, когда графическое приложение запущено. Например в запущеном в windows приложение kmail не переключает на русскую раскладку.
Объясните мне, чем этот вариант лучше, чем VNC, NX и RDP (в случае калькулятора на винде)
Xming x server for windows
author’s blog about my interests
Загрузка приложений с сервера X11 в Windows с помощью Putty+Xming
Введение
Еще в далеком 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:
Проверяем запущен ли демон 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
X display location ставим :0 ;
Остальное оставил без изменений.
Сохраните сессию. Иначе придется вводить все настройки заново.
Нажимаем Open и регистрируемся в консоли Linux как на этом скрине.
На этом настройку PuTTY я завершил!
Настройка Xming.
Для этого запускаем программу XLaunch – это мастер настроек. На первом шаге указываем способ интеграции в графическое окружение Windows. Мне более всего по душе первый, когда каждое приложение Linux находится в своем окне.
На втором шаге нам предлагается автоматически запускать какое-нибудь приложение вместе с иксами. Я предпочел сделать это позже по мере необходимости посредством уже запущенного нами PuTTY.
На третьем шаге указываем параметры запуска Xming. Опция Clipboard позволяет интегрировать буфер обмена. Также для полноценной работы я ввел следующие параметры:
И, наконец, на следующем шаге сохраняем настройки кнопкой «Save configuration» и запускаем X-сервер кнопкой «Готово».
В системном трее появится иконка Xming.
В дальнейшем запустить сервер с теми же настройками можно просто путем открытия сохраненного файла. Изменить настройки можно через контекстное меню файла.
Итак, X-сервер запущен. Возвращаемся в нашу консоль, предоставленную соединением SSH. Здесь мы можем удаленно запустить консольное приложение, и в этой же консоли увидим вывод этого приложения. А что теперь будет, если мы попытаемся запустить в этой консоли графическое приложение? Обычно, если вы подключились по SSH и пытаетесь запустить оконное приложение, вы получите ошибку, потому что вы подключились к удаленному компьютеру в консольном режиме, и рисовать окна просто нечем. Однако, в этот раз мы включили перенаправление графики на наш компьютер Windows, на котором уже запущен свой X-сервер. Поэтому, если вы попытаетесь запустить оконное приложение в удаленном консольном терминале, его окно нарисуется на компьютере Windows. Попробуйте, например, набрать следующие команды:
- $ gedit &
- $ gnome-system-monitor &
- $ firefox &
- $ thunderbird &
- $ xterm &
- и т.д.
Амперсанд в конце команды указывает, что программу нужно запустить в фоновом режиме, чтобы во время ее работы консоль была доступна для других действий.
Ну, надеюсь, у вас все получилось, и на вашем рабочем столе Windows красуются оконные приложения Linux.