X11vnc как подключиться из windows

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

  1. Устанавливаем пакет x11vnc:
    $ sudo yum install x11vnc
  2. Читаем описание:

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

    Тут она на консоль вывалит кучу текста, из которого самой полезной является информация о порте. По умолчанию используется 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 :) В подробностях опишу это, может быть, в какой-нибудь из последующих статей.

Posted in *nix, Howto, Windows.

Tagged with linux, putty, Windows, проброс портов.

18.07.2012

Недавно я опубликовал статью «Подключение к удаленному рабочему столу Windows 7 из Linux» и вскоре после этого меня попросили рассказать, как сделать то же самое, но наоборот — из Windows к Linux. На первый взгляд может показаться, что задача непростая, но на самом деле, это очень легко.

У читателей может возникнуть вопрос — а зачем это вообще нужно? Ответ прост — для того, чтобы иметь единую точку администрирования. Ведь сколько времени обычно тратится на беготню между компьютерами в попытке разрешить какую-либо проблему! Вы уже знаете, как подключаться к компьютерам под управлением Windows из Linux, а прочитав эту статью, сможете подключаться наоборот — из Windows к Linux, и это значительно облегчит вам задачу администрирования в локальной сети. Итак, приступим.

Допущения

В своей статье я исхожу из того, что в вашей локальной сети уже имеются корректно функционирующие компьютеры под управлением Windows и Linux. Чтобы упростить задачу, я буду использовать IP-адресацию по схеме 192.168.1.x. При этом намного удобнее использовать статические IP-адреса, иначе вам придется тратить лишнее время на выяснение адреса нужного компьютера.

Программное обеспечение

Вам понадобятся всего два приложения:

x11vnc на компьютере под управлением Linux для использования в качестве VNC-сервера;
• TightVNC на компьютере под управлением Windows для использования в качестве VNC-клиента.

Установить TightVNC очень легко — просто загрузите инсталлятор и запустите его двойным щелчком. А вот процесс установки приложений в Linux для многих пользователей Windows не так очевиден.

Разумеется, все зависит от того, какой у вас дистрибутив Linux. Но в общих чертах последовательность действий такова:

1. Запустите средство установки и удаления программ — Synaptic, Центр приложений Ubuntu (Ubuntu Software Center), gnome-packagekit и т. п.
2. Введите «x11vnc» (без кавычек) в строке поиска.
3. Отметьте пакеты для установки.
4. Нажмите кнопку «Применить» (Apply), чтобы начать установку.

Те, кто привык работать из командной строки, могут установить приложение следующим образом:

1. Откройте терминал.
2. Выполните команду вида sudo apt-get install x11vnc — в зависимости от того, какой у вас дистрибутив.

После завершения установки можно приступать к подключению.

На компьютере под управлением Linux

Здесь все довольно просто — нужно лишь запустить сервер x11vnc. В справке к данной утилите, которую можно вызвать командой man x11vnc, приводится список доступных опций. Я бы порекомендовал использовать опцию -forever — без нее сервер будет отключаться сразу же после завершения клиентского сеанса. Так что команда, которую следует выполнить в терминале, должна выглядеть так:

x11vnc -forever

Приглашение на ввод следующей команды после этого не появится, даже если использовать символ &. Поэтому стоит добавить строку x11vnc -forever в конце файла «/etc/rc.local», чтобы сервер запускался всякий раз при старте системы.

На компьютере под управлением Windows

Теперь давайте наладим подключение. Запустите установленную в Windows утилиту TightVNC из меню «Пуск» (Start). Появится показанное на рис. A окно, в котором нужно указать адрес для подключения. Отсюда же можно вызвать диалоговое окно настроек (Options).

Подключение к удаленному рабочему столу Linux из Windows

Рисунок A. Выберите профиль соединения (Connection Profile), наиболее соответствующий вашему типу соединения.

В окне настроек (рис. B) доступен целый ряд параметров, но если вы не нуждаетесь в какой-то особой конфигурации, можно оставить значения по умолчанию.

Подключение к удаленному рабочему столу Linux из Windows

Рисунок B. TightVNC можно подключить в режиме просмотра (View) — тогда сеанс будет не интерактивным. Это неплохой вариант для тестового подключения.

Настроив все параметры, нажмите кнопку «Соединиться» (Connect), чтобы подключиться к удаленному рабочему столу (рис. C). Скорость соединения зависит от пропускной способности сети, но в целом TightVNC представляет собой вполне работоспособное решение.

Подключение к удаленному рабочему столу Linux из Windows

Рисунок C. Задайте настройки и установите соединение.

В заключение

Как видите, наладить соединение между компьютерами под управлением Windows и Linux очень просто. Надеюсь, это хоть немного облегчит вам задачу администрирования.

Автор: Jack Wallen
Перевод

SVET

Оцените статью: Голосов

Время на прочтение
4 мин

Количество просмотров 34K

С линуксом жизнь становится интересней, я бы даже сказал экспериментальней!
Меня потянуло на эксперименты с ssh, и то, что я получил в итоге — доступ с работы к домашнему компу — мне очень понравилось! Еще бы — классно управлять домашним компом, обновлять его и т.п. С девушкой даже с помощью festival разговаривал)))
Однако, захотелось пойти дальше, интересно, можно ли настроить удаленный доступ к рабочему столу, как позволяет это RAdmin в Windows? Можно конечно! Надо только настроить))

Покопался в интернете, нашел несколько статей про VNC — Virtual Network Computing, решил такое счастье сделать и у себя!
Для этого сначала необходимо было поставить несколько утилит:

sudo aptitude install vnc4-common vnc4server xvnc4viewer

Эти утилиты необходимы непосредственно для того, чтобы запускать удаленный сервер (vnc4server) и подключаться к нему с удаленного клиента (xvnc4viewer).
Установили! Теперь дело остается за малым: сначала нужно запустить vnc-сервер, а потом подключиться к нему.
Для запуска удаленного сервера, нужно в консоли набрать

vncserver

Если это первый запуск vncserver в системе с этой учётной записью пользователя, тогда вы должны ввести пароль, который клиенты будут использовать при подключении, после чего запустится сервер, который будет доступен на порту 5901. Кстати, при запуске сервера в консоль выведется номер дисплея (виртуального), на котором он будет доступен, отсчет ведется с 1 (так как 0 — текущий дисплей). Пример запуска:

igor@Voyageur:~$ vncserver
New 'Voyageur:1 (igor)' desktop is Voyageur:1
Starting applications specified in /home/igor/.vnc/xstartup
Log file is /home/igor/.vnc/Voyageur:1.log

Здесь строчка New ‘Voyageur:1 (igor)’ desktop is Voyageur:1 как раз говорит о том, что у меня компе запустился сервер на дисплее 1, доступен он на порту 5901.
Если vncserver запустить еще раз, то загрузится новый терминальный сервер :2 на порту 5902 и т.д.
Теперь попробуем зайти на этот сервер с удаленной машины. Для этого необходимо в консоли удаленного клиента ввести команду:

vncviewer __hostname__:1

В этой команде __hostname__ — это доменное имя или ip машины, на которой запущен удаленный сервер. Далее необходимо будет ввести пароль и в результате появится приблизительно вот такое окно:

Немного не то я ожидал увидеть если честно)) Начал разбираться, и оказалось, что vncserver запускает лишь новую сессию, а не подключается к текущей, именно для этого и нужны виртуальные дисплеи. А в этой сессии запущены twm (Tab Window Manager for the X Window System) и xterm.
Между прочим это все добро запускается из скрипта ~/.vnc/xtartup, который можно редактировать, удаляя ненужные и добавляя свои строчки запуска необходимых приложений. В самом верху скрипта есть небольшой комментарий:

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

То есть, чтобы получить нормальный рабочий стол, нужно раскомментировать 2 строчки. Я их раскомментировал, но ничего хорошего из этого у меня не вышло.
Посмотрел я на этот twm, и решил, что с этим убожеством работать нельзя. Я установил fluxbox (занимает всего 6 Мб) и в скрипте xstartup заменил строчку

twm &

на

fluxbox &

В итоге у меня получилось вот так:

Нормально для работы. Но не айс! Оперу можно запустить, еще некоторые приложения, но далеко не все (приложения kde выламываются)! Пробовал я вместо fluxbox’a запустить kde, но не пошло… Играет приветствие входа в систему, но вылетает окно с крахом плазмы и все, черный экран, занавес…

В итоге я получил удаленный доступ, но не такой как хотел! Мне-то хотелось иметь доступ к текущему рабочему столу, а не к мифическому дисплею 1, на котором загружается fluxbox, но не kde.

Что делать? Надо копать еще!!!
Я поискал в репозиториях пакеты, в названии которых присутствует «vnc», список оказался не очень большой, я начал читать комментарии к утилитам и библиотекам… В самом конце списка я увидел такую строчку:

p xvnc4viewer - Virtual network computing client software for X

Очень похоже на то, что мне нужно!
Я установил x11vnc…man у этой утилиты знатный, несколько тысяч строк)) После небольшого его изучения я более менее разобрался с процедурой запуска и назначением утилиты.
Итак, x11vnc является фактически удаленным сервером (как и vncserver), но позволяет получать доступ к уже существующей X-сессии!
На машине, к которой необходимо подключиться:

x11vnc -storepasswd

Эта команда позволит позаимствовать пароль для подключения к серверу из файла ~/.vnc/passwd (тут лежит пароль, который был задан при первом запуске vncserver). Далее непосредственно запустим x11vnc:

x11vnc -usepw -display :0

Опция -usepw задействует использования пароля при подключении к серверу, -display :0 — запускает сервер на нулевом дисплее (так, где открыта текущая X-сессия).
Теперь мы с удаленной машины можем подключиться к текущей X-сессии, выполнив

vncviewer __hostaname__:0

и введя пароль.

При закрытии окна удаленного рабочего стола, завершается и работа x11vnc (на сервере)
Таким образом, я получил то, что хотел))))
Напоследок приведу несколько опций для утилит vncserver, x11vnc и vncviewer, облегчающих траффик и жизнь))

vncserver:

  • -kill :n — завершает работу терминального сервера на дисплее n (порту 590n), если он раньше был запущен
  • -geometry 800×600 — устанавливает размер создаваемого рабочего стола (по умолчанию 1024×768)
  • -depth depth — устанавливает глубину цвета в битах, по умолчанию 16 бит, можно изменить на 8, 15, 24
  • Для запуска VNC-сервера с определенным номером (дисплеем) используется команда vncserver :n

x11vnc:

  • -q — уменьшает вывод отладочной информации в stderr
  • -forever — данная опция не завершает работу x11vnc-сервера, когда первый клиент отключается, а ждет следующих подключений

vncviewer:

  • -geometry 800×600 — устанавливает размер окна, в котором будет отображаться удаленный рабочий стол. Если указанный размер меньше размера удаленного стола, то появятся полосы прокрутки
  • -compressionlevel n — устанавливает уровень сжатия данных. Значение n варьируется от 0 до 9, 9 — наилучшее сжатие (качество, соответственно, хуже)
  • -quality m — влияет на качество картинки. m варьируется от 0 до 9, 0 — наихудшее качество изображения (меньше траффик)
  • -depth depth — если X-сервер поддерживает различные значения глубины цвета, то можно попытаться подобратьоптимальное значение (в битах)
  • -viewonly — опция, позволяющая подключившемуся пользователю только наблюдать за тем, что происходит на удаленной машине, средства управления (мышь, клавиатура) недоступны

P.S. Кстати, если нужно, чтобы x11vnc запускался автоматически, то для этого его нужно добавить в автозагрузку: в Настройках системы выбрать пункт Автозагрузка (на второй вкладке), там добавить скрипт

x11vnc -usepw -display :0 -q -forever &

и указать, что он должен запускаться до старта KDE!

Содержание

Установка

Параметры

autoport

Автоматический выбор номера порта для запуска сервера, можно задать начальный номер.

Номер порта можно сохранить в файл, заданный в flag

Если значение не заданно, первый номер будет 5900

x11vnc -autoport 5901

flag

Файл в который будет записан номер порта на котором работает сервер, удобно использовать совместно с autoport

x11vnc -flag .x11vnc-flag

Пример :

.x11vnc-flag
PORT=5901

passwdfile

x11vnc -passwdfile .x11vncpasswd

Формат файла:

.x11vncpasswd
<пароль_для_управления>
__BEGIN_VIEWONLY__
<пароль_для_просмотра>

В этом файле пароль указывается в явном виде.

quiet

«Тихий» режим, ограничение вывода информации о запуске на стандартный вывод.

x11vnc -q

forever

Этот параметр заставляет сервер работать постоянно, даже после завершения клиентского соединения.

x11vnc -forever

Возможность подключения более чем одного клиента.

x11vnc -shared

background

Запуск процесса сервера в фоновом режиме.

x11vnc -bg

tag

Этот параметр позволяет задать уникальный идентификатор для процесса, который может помочь в его поиске в общем списке процессов.

x11vnc -tag x11vnc-user01

Примеры

Для доступа к текущей сессии:

x11vnc -q -forever -shared -allow ХОСТ1,ХОСТ2

Подключение к консоли

FIXME

Подключение к консоли пользователя

Запуск сервера от имени пользователя при входе к систему:

x11vnc -q -forever -shared -bg -nomodtweak -capslock -display :0

Настойка для подключения:

/etc/xrdp/xrdp.ini
[console]
name=console
lib=libvnc.so
ip=127.0.0.1
port=5900
username=ask
password=ask

Подключение к консоли в разных режимах

Данный пример позволяет подключатся в разных режимах: управления и просмотра.

Файл с паролями passwdfile

/usr/local/etc/x11vnc.pwd
work
__BEGIN_VIEWONLY__
view

Запуск сервера от имени пользователя при входе к систему:

x11vnc -q -forever -shared -bg -passwdfile /usr/local/etc/x11vnc.pwd -nomodtweak -capslock -display :0

Настойка для подключений:

/etc/xrdp/xrdp.ini
[console]
name=console
lib=libvnc.so
ip=127.0.0.1
port=5900
password=work
 
[console-view]
name=console-view
lib=libvnc.so
ip=127.0.0.1
port=5900
password=view

Подключение к пользовательской сессии

Проблемы

FIXME

Переключение регистра символов xrdp-x11vnc

-nomodtweak -capslock

Ссылки

This tutorial shows how to remote access Ubuntu desktop from Windows 7 using x11vnc server.

In Ubuntu install and setup x11vnc server:

Open up a terminal from the dash or press Ctrl+Alt+T.

  • 1. Install x11vnc in ubuntu via command:
    sudo apt-get install x11vnc
  • 2. Set vnc password and it’ll be encrypted and saved in ~/.vnc/passwd:
    x11vnc -storepasswd
  • 3. Start vnc server:
    x11vnc -forever -shared -rfbauth ~/.vnc/passwd

NOTE: If you connect from outside local network, get the Ubuntu’s global ip, and on your router, setup your connection via DMZ. Once you are able to establish a connection, put on all the security like firewalls.

If you want this VNC Server auto-start at login, do following steps:

  • 1. Copy and paste password file to /etc/ directory:
    sudo cp ~/.vnc/passwd /etc/x11vnc.pass
  • 2. create and edit file /etc/init/x11vnc.conf via
    sudo gedit /etc/init/x11vnc.conf

    copy and paste following and save the file.

    start on login-session-start
    script
    x11vnc -display :0 -auth /var/run/lightdm/root/:0 -forever -bg -o /var/log/x11vnc.log -rfbauth /etc/x11vnc.pass -rfbport 5900 
    end script
  • 3. reboot.

In Windows 7 remote connect to Ubuntu Desktop:

Install Real VNC viewer, then start it:

Input remote Ubuntu’s IP address or hostname, click connect.

Enter the password you set in Ubuntu host and access remote desktop.

  • Wufuc windows 7 что такое
  • X windows system32 командная строка при установке windows
  • Wumgr update manager for windows 10
  • Wufuc патч для восстановления windows update
  • X men origins wolverine не запускается на windows 10