17
11月
2023
16:25

Различные VNC серверы и клиенты для Linux (обзор)

17 11月 2023 16:25

В статье я привел обзор различных клиентов и серверов VNC, и ссылки на проекты для дальнейшего рассмотрения.

Введение

Кроме SSH для администрирования ПК часто используется графический интерфейс для управления ПК (подобно Radmin или Anydesk). На домашнем ПК у меня настроен сервер XRDP, но захотелось проверить также VNC вместо XRDP. Поскольку на конфигурирование XRDP затрачено много времени и сил, может быть я выбрал более сложный путь и VNC более прост в настройке?

Бесплатные VNC серверы из репозиториев Ubuntu

1) linuxvnc - пакет Ubuntu VNC сервер, только для доступа к консоли TTY
Установка:
sudo apt install linuxvnc

Запуск сервера:
sudo linuxvnc 1

где 1 - номер консоли TTY, перенаправляемый на сервер linuxvnc
Руководство пользователя на https://manpages.org/linuxvnc - есть другие ключи запуска.

2) tightvncserver - версия TightVNC 1.3.10 opensource и бесплатна
Инструкция по установке от www.digitalocean.com
Можно установить следующие пакеты:

  • tightvncserver
  • tigervnc-xorg-extension
  • tigervnc-standalone-server
  • tigervnc-scraping-server
    Вы должны явно указать, какой именно вы хотите установить.

3) x11vnc сервер https://github.com/LibVNC/x11vnc/
К сожалению, разработка прекращена с 2019 года назад, т.к. у автора нет времени заниматься проектом. Но это наиболее простой для установки сервер и удобный для неподготовленного пользователя.

sudo apt install x11vnc

Программу для управления Сервером X11VNC можно запускать с рабочего стола.

Desktop файл привожу ниже:

[Desktop Entry]
Name=X11VNC Server
Comment=Share this desktop by VNC
Exec=x11vnc -gui tray=setpass -rfbport PROMPT -bg -o %%HOME/.x11vnc.log.%%VNCDISPLAY
Icon=computer
Terminal=false
Type=Application
StartupNotify=false
#StartupWMClass=x11vnc_port_prompt
Categories=Network;RemoteAccess;
Keywords=VNC;Server;Screencast

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

Затем программа показывает инструкции по настройке и галочки "Accept connections" - "Ask for confirmation" - "All clients view only" - Shared - Advertise Service (Zeroconf)
и предлагает задать сложный пароль для входа в VNC.
На закладке Advanced показаны события "под капотом" - запус сервера и подключения клиентов. В расширенном режиме есть закладки для отладки, клавитуры, дисплеи, экраны и т.п..

Устаревший сервер VNC4SERVER для Ubuntu 12.04-16.04

Пакет отсутствует в современных Linux, но из руководства ниже можно почерпнуть принцип написания скрипта для запуска VNC:
руководство по установке

VNC серверы с открытым исходным кодом для Linux (Ubuntu / Debian / Fedora / CentOS)

1) TurboVNC - https://www.turbovnc.org/ DEB-файлы лежат на https://sourceforge.net/projects/turbovnc/files/ , исходные тексты на git https://github.com/TurboVNC/turbovnc.git, скрипт на https://forums.developer.nvidia.com/t/tutorial-how-to-install-virtualgl-and-turbovnc-on-jetson-nano/175767

2) TigerVNC есть бесплатная версия для Linux
https://github.com/igewebs/server-tigervnc
Читать: установка TigerVNC и описание установки TigerVNC

3) pyvncs VNC сервер на языке Python для X11 (Wayland пока не поддерживается) https://github.com/radixcl/pyvncs

VNC сервер для Windows

Руководства и скрипты - помощники (хелперы)

  • ubuntu-sesktop-vnc Гид по установке vnc4server в Ubuntu 16.04 https://github.com/UnivaHost/ubuntu-desktop-vnc
  • tigervnc_remote_desktop скрипты для установки TigerVNC и рабочих столов i3 или Gnome: https://github.com/earizon/tigervnc_remote_desktop
    (скрипт можно передалать с i3 или Gnome под любимый рабочий стол), проекту 5 лет.
  • softasap скрипт для установки VNC сервера через ansible galaxy workflow: https://github.com/softasap/sa-vnc-remote-desktop
  • скрипт для установки VNC сервера через ansible: https://galaxy.ansible.com/ui/standalone/roles/sdarwin/vnc/

Платные VNC серверы

  • RealVNC® Connect - сервер VNC платный https://www.realvnc.com/
  • TightVNC - 2.0 платный, переписан на C++ https://www.tightvnc.com/licensing-server-x11.php (по запросу)

Бесплатные приложения для конкретных рабочих столов:

  • vino - самый известный компонент Ubuntu Gnome

Vino - это VNC-сервер по умолчанию в Ubuntu (рабочий стол Gnome), чтобы поделиться существующим рабочим столом с другими пользователями в режиме "Только просмотр" или "Управление". Чтобы настроить Vino из Gnome, перейдите в Система -> Настройки -> Удаленный рабочий стол

1) Чтобы Vino запршивал доступ каждый раз, установите настройку "Позволять другим пользователям просматривать ваш рабочий стол" в окне конфигурации удаленного рабочего стола.

2) Нет никакого способа установить Vino, чтобы прослушать только одно следующее соединение.

3) Чтобы установить пароль, установите настройку "Требовать, чтобы пользователь вводил этот пароль:", и введите сложный пароль.

4) Чтобы настроить Vino в режиме только для просмотра, уберите галочку "Позволять другим пользователям управлять вашим рабочим столом".

5) Чтобы разрешить только соединения в рамках данного ПК (localhost), откройте терминал и запустите команду:

 gsettings set org.gnome.vino interface lo

6) Чтобы разрешить соединения из любого места, откройте терминал и запустите команду:

 gsettings reset org.gnome.Vino network-interface 
  • krfb - VNC -сервер по умолчанию в Кубунту. Поскольку KRFB сильно интегрирован с KDE, запуск его в других средах сложен. Инструкция по установке krfb приведена в этой статье.

Клиенты VNC / RDP

  • vinagre - просмотр удаленного рабочего стола для Gnome

    sudo apt update && sudo apt install vinagre

  • krdc - приложение KDE для подключения к удаленному рабочему столу из Kubuntu и других ОС с рабочим столом KDE.

  • remmina - самый мощный и удобный клиент RDP / VNC / SSH

Установка remmina с плагинами для RDP и VNC:

sudo apt update && sudo apt install remmina remmina-plugin-rdp remmina-plugin-vnc

Вывод

Графический просмотр и управление рабочим столом VNC, в отличие от RDP, является стандартной частью Linux и использует протокол передачи изображений Remote Frame Buffer (RFB), утвержденный стандратом RFC6143. Можно выбирать любой из указанных выше вариантов VNC сервера и клиента или написать свой.


Ссылки:



相关出版物