X11 клиент для windows

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:

Читайте также:  Linux mint тест производительности

В конце вводим 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, запущенной без параметров.

Читайте также:  Универсальный драйвер для камеры ноутбука windows 10

Выбираем режим работы 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 (в случае калькулятора на винде)

Как подключиться к X-сессии из Windows

Допустим есть у нас где-то комп с линуксом и каким-то desktop environment-ом, например, KDE. Вот пришли мы утром, поработали за этим компом, понаоткрывали кучу окошек с разными интересными сайтами и ушли в конце дня домой. А придя домой, вспомнили, что надо срочно дочитать один из интересных сайтов, да, вот незадача, адреса его не помним. И, вполне логично, начинаем задумываться как бы это подключиться из своей домашней винды к X-серверу по аналогии, как это можно сделать rdesktop-ом или Radmin-ом для хождения на виндовый рабочий стол. Решение есть. Причём, очень простое. Называется x11vnc. Подразумевается, что доступ по SSH к линуксовому компу у нас имеется. Пошаговое решение задачи доступа из windows к рабочему столу linux.

Читайте также:  Ctypes python 3 linux

    Устанавливаем пакет x11vnc:

Тут она на консоль вывалит кучу текста, из которого самой полезной является информация о порте. По умолчанию используется TCP-порт 5900.

  • На винде устанавливаем программу TigerVNC
  • Запускаем putty, подключаемся к линуксу, предварительно сделав локальный проброс порта 5900, логинимся:

    Локальный проброс порта в putty для работы с x11vnc

    Подключаемся из виндовс к linux через SSH-туннель с помощью vncviewer.exe

    И далее в окошке tigervnc видим наш вожделенный линуксячий рабочий стол 🙂 В принципе можно обойтись и без putty, но с ним надёжнее, так как трафик по Интернету будет бегать шифрованным.

    Есть и другой подход. Стандартная оконная система для Linux – это X Window System (в простонародье – «иксы»). Она занимается отрисовкой графических элементов и взаимодействием с устройствами ввода-вывода. X Window System имеет прозрачную клиент-серверную архитектуру: оконная система выполняет роль сервера, а графические приложения – соответственно, роль клиентов. Клиенты подключаются к серверу и взаимодействуют с ним для отрисовки и для получения событий от мыши и клавиатуры. Оконная система может находиться на одном компьютере, а графическое приложение – на другом. И приложение может связываться с X Window System по сети. То есть можно запустить приложение на удалённом компьютере, настроив его отображение (отрисовку) на том компьютере, за которым Вы в данный момент находитесь. А также запустить программу на одном удаленном компьютере с отрисовкой элементов интерфейса на другом удаленном компьютере 🙂 Существуют также X-серверы и для Windows, например XMing. Так вот с помощью этого XMing-а и включённого «X11 forwarding» в putty можно запросто заставить линуксячие приложения отрисовываться на рабочем столе Windows 🙂 В подробностях опишу это, может быть, в какой-нибудь из последующих статей.

    One Response

    Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

    Если на сервере 2 монитора, то по умолчанию vncviewer на клиентской стороне отображает сразу оба в одном окошке, что редко бывает удобно. Чтобы такой беды не было, надо сервер запускать с параметром -clip, как-то так:

    x11vnc -display :0 -clip xinerama0

    «xinerama0» означает что хотим подключаться к primary display. Если же хотим к secondary, то нужно указывать «xinerama1».

    Это нормально работает если второй монитор как бы расширяет рабочее пространство (то есть окна можно тягать с одного на второй и обратно). Если же второй монитор дублирует первый, то, скорей всего, нужно будет играться с параметром -display, а не -clip.

  • Оцените статью