Содержание

Что такое VNC

VNC (Virtual Network Computing) — система удалённого доступа к рабочему столу компьютера, использующая протокол RFB (Remote FrameBuffer, удалённый кадровый буфер). По умолчанию RFB использует диапазон TCP-портов с 5900 до 5906. Для Windows-систем экран по умолчанию — :0, что соответствует порту 5900.

VNC — это широко распространенный метод удаленного доступа к рабочему столу компьютера по сети. Данные о нажатии клавиш и движении мыши, выполняемых пользователем на собственном компьютере передаются по сети на удаленный компьютер и воспринимаются им действия с его собственными клавиатурой и мышью. Информация с экрана удаленного компьютера выводится на экране компьютера пользователя. Работа по VNC через интернет с удаленным компьютером, находящимся в противоположной точке мира, для пользователя выглядит так, как будто этот компьютер находится непосредственно перед ним. Особенно VNC удобен при работе с графическим интерфейсом — с рабочим столом и программами для рабочего стола операционных систем Windows, Linux и других.

Настройка VNC (x11vnc) сервера

Распространенным VNC-сервером, является TigerVNC, который позволяет пользователям создавать независимые сессии. Однако он не может делать общие экраны или позволять запрашивать помощь в отличии от x11vnc. x11vnc имеет встроенную передачу файлов TightVNC и UltraVNC, а также встроенное шифрование SSL и аутентификацию.

Протокол VNC позволяет получить удаленный доступ к графическому интерфейсу Linux, FreeBSD. Настройка x11vnc (порт 5900) на Ubuntu 9.10 GNOME (настройка на любом дистрибутиве аналогична этой).

# apt show x11vnc
...
Версия: 0.9.3.dfsg.1-1ubuntu2
...
Описание: VNC server to allow remote access to an existing X session
 
# apt install x11vnc
...
Следующие НОВЫЕ пакеты будут установлены:
  libvncserver0{a} x11vnc 
0 пакетов обновлено, 2 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено.
Необходимо получить 933kБ архивов. После распаковки 2.015kБ будет занято.
Хотите продолжить? [Y/n/?] Y
# man x11vnc
...
x11vnc - allow VNC connections to real X11 displays

       Typical usage is:

              Run this command in a shell on the remote machine "far-host" with X session you wish to view:

              x11vnc -display :0

...

Настроим авторизацию. Пароль будет сохранён как и в случае с другими реализациями Virtual Network Computing (VNC) в файле ~/.vnc/passwd.

$ x11vnc -storepasswd
Enter VNC password: 
Verify password:    
Write password to .vnc/passwd?  [y]/n y

Создадим скрипт запуска для x11vnc и поместим его в домашнюю директорию пользователя, к X-сессии которого мы будем соединяться.

$ mkdir Autostart
$ touch Autostart/xvnc0.sh
$ chmod +x Autostart/xvnc0.sh
$ nano Autostart/xvnc0.sh
#!/bin/sh
/usr/bin/x11vnc -notruecolor -forever -display :0 -usepw

, где параметры

Другие возможные параметры:

Далее в GNOME идем в меню Система→Параметры→Запускаемые приложения и добавляем скрипт xvnc0.sh для автоматической загрузки. Для KDE переносим файл в директорию .kde/Autostart

x11vnc опции

Запускаем серверную часть x11vnc:

$ x11vnc -find -shared -loop -o /home/USER/vnclog -rfbauth /home/USER/pass -desktop test

, где

Клиенты для протокола VNC

x11vnc клиент vncviewer

После перезагрузки системы, к этому компьютеры можно будет подключиться используя любой VNC клиент.

vncviewer <Ваш_IP>

TightVNC

TightVNC — усовершенствованная версия VNC, оптимизированная для работы по медленным сетевым подключениям. Программа позволяет обращаться дистанционно к рабочему столу другого компьютера через клиентскую программу или Web браузер, используя встроенный HTTP-сервер. Помимо оптимизации пропускной способности, TightVNC также включает множество других усовершенствований. TightVNC совместим со стандартом VNC.

UltraVNC

UltraVNC (иногда пишется как Ultr@VNC) это свободное программное обеспечение для операционной системы Microsoft Windows, использующее протокол VNC для управления удалёнными рабочими столами на других компьютерах. Он очень похож на RealVNC Free Edition, но здесь, помимо удалённого управления, поддерживаются дополнительные возможности, такие как модуль шифрования для безопасного клиент-серверного соединения. Содержит модуль Java Viewer, который позволяет получить доступ к компьютеру, используя простой Web-браузер, поддерживающий Java. Также возможна отправка файлов, чат и различные методы аутентификации. Программное обеспечение свободно и распространяется под GNU General Public License. UltraVNC написан на языках C, C++, и Java.