Что такое VNC

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

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

Распространенным 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

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

  • -notruecolor -отключение полной цветопередачи, полезно для слабого канала интернета. Получим восьмибитный цвет.
  • -forever -после запуска x11vnc ждёт подключения клиента, а по завершении подключения - завершает свою работу. Если необходимо чтобы x11vnc был запущен постоянно и не завершал работу после отключения клиента - нужно добавить опцию -forever к строке запуска.
  • -display :0 -явно указываем используемый дисплей. Если опция не указана то используется дисплей, указанный в переменной окружения DISPLAY. Если же переменная окружения DISPLAY не указана - создаётся новый дисплей.
  • -usepw - вынуждает x11vnc использовать авторизацию

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

  • -scale 2/3 - масштабирование передаваемого изображения. Размер 2/3 от оригинала. Полезно для слабого канала интернета.

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

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

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

, где

  • shared – позволяет производить подключения к серверной части нескольким клиентам одновременно;
  • loop – после отключения клиента перезапускает x11vnc;
  • o – позволяет указать файл, который используется для записи информационных сообщений x11vnc;
  • rfbauth – указывает на шифрованный файл с паролями;
  • desktop – позволяет задать название окна для клиента при подключении.

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

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

vncviewer <Ваш_IP>

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

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

PQ VPS сервера в 28+ странах.