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

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

  1. Устанавливаем пакет x11vnc:
    1. $ sudo yum install x11vnc
  2. Читаем описание:
    1. $ rpm -qi x11vnc | sed -r '/Summary/,$ !d'
    2. Summary     : VNC server for the current X11 session
    3. Description : What WinVNC is to Windows x11vnc is to X Window System,
    4. i.e. a server which serves the current X Window System desktop via RFB
    5. (VNC) protocol to the user. Based on the ideas of x0rfbserver and on
    6. LibVNCServer it has evolved into a versatile and productive while
    7. still easy to use program.
  3. Запускаем программу:
    1. $ x11vnc

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

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

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

  6. Запускаем vncviewer.exe, в качестве сервера указываем 127.0.0.1:
    подключение из windows к linux через vncviewer.exe

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

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

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

________________________________________
Источник: http://avz.org.ua/wp/2012/07/18/x-session-connecting-from-windows-via-x11vnc/