Как установить и настроить VNC-сервер в CentOS и RHEL

В этом руководстве мы объясним, как установить и настроить Удаленный доступ VNC в CentOS 7/8 и RHEL 9/8/7 десктоп-издание через программу tigervnc-server для доступа к удаленным рабочим столам.

VNC (Виртуальное сетевое вычисление) – это протокол сервер-клиент, который позволяет пользовательским учетным записям удаленно подключаться и управлять удаленной системой, используя ресурсы, предоставляемые Графическим пользовательским интерфейсом.

В отличие от других доступных серверов VNC, которые подключаются непосредственно к рабочему столу времени выполнения, таких как VNC X или Вино, tigervnc-vncserver использует другой механизм, который настраивает автономный виртуальный рабочий стол для каждого пользователя.

Требования

Шаг 1: Установка и настройка VNC на CentOS

1. Tigervnc-server – это программа, которая запускает сервер Xvnc и запускает параллельные сессии Gnome или других сред рабочего стола на рабочем столе VNC.

A started VNC user session can be accessed by the same user from multiple VNC clients. In order to install the TigerVNC server in CentOS/RHEL, open a terminal session and issue the following yum command with root privileges.

$ sudo yum install tigervnc-server
Install TigerVNC in Linux

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

$ su - your_user
$ vncpasswd
Create VNC Password

3. Затем добавьте файл конфигурации VNC службы для вашего пользователя через файл конфигурации демона, размещенный в дереве каталогов systemd. Чтобы скопировать файл шаблона VNC, вам необходимо запустить следующую команду cp с привилегиями root.

Если ваш пользователь не имеет привилегии sudo, либо перейдите напрямую к учетной записи root, либо запустите команду от имени учетной записи с привилегиями root.

# cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service

4. На следующем шаге отредактируйте скопированный файл конфигурации шаблона VNC из /etc/systemd/system/ каталога и замените следующие значения, чтобы отразить вашего пользователя, как показано в приведенном ниже образце.

Значение 1 после знака @ представляет номер дисплея (порт 5900+display). Также для каждого запущенного сервера VNC порт 5900 будет увеличен на 1.

# vi /etc/systemd/system/vncserver@\:1.service

Добавьте следующие строки в файл vncserver@:1.service.

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
User=tecmint
Group=tecmint
WorkingDirectory=/home/tecmint
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver %i -geometry 1280x1024
PIDFile=/home/tecmint/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target
Configure VNC Systemd

5. После того, как вы внести соответствующие изменения в файл службы VNC, перезагрузите программу инициализации системы systemd для захвата нового файла конфигурации VNC и запустите сервер TigerVNC.

Также проверьте статус службы VNC и включите демон VNC системно путем выполнения следующих команд.

# systemctl daemon-reload
# systemctl start vncserver@:1
# systemctl status vncserver@:1
# systemctl enable vncserver@:1
Start VNC Service

6. Чтобы вывести список открытых портов в состоянии прослушивания, принадлежащих серверу VNC, запустите команду ss, которая используется для отображения сетевых сокетов. Поскольку вы запустили только одну инстанцию сервера VNC, первый открытый порт – 5901/TCP.

Опять же, команду ss необходимо выполнять с привилегиями root. В случае если вы запустите другие инстанции VNC параллельно для разных пользователей, значение порта будет 5902 для второй, 5903 для третьей и так далее. Порты 6000+ используются для разрешения подключения X-приложений к серверу VNC.

# ss -tulpn| grep vnc
Verify VNC Listening Ports

7. Чтобы позволить внешним клиентам VNC подключаться к серверу VNC, необходимо убедиться, что соответствующие открытые порты VNC пропускаются через ваш брандмауэр.

Если запущена только одна инстанция сервера VNC, вам нужно открыть только первый выделенный порт VNC: 5901/TCP, выполнив нижеприведенные команды для применения конфигурации брандмауэра в реальном времени.

# firewall-cmd --add-port=5901/tcp
# firewall-cmd --add-port=5901/tcp --permanent

Шаг 2: Подключение к рабочему столу CentOS через клиент VNC

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

A popular VNC client used in Microsoft-based operating systems, fully compatible with Linux TigerVNC server, is the RealVNC VNC Viewer.

Чтобы удаленно подключиться к ЦентOS Desktop с операционной системы Microsoft через протокол VNC, откройте программу VNC Viewer, добавьте IP-адрес и номер порта сервера VNC CentOS и нажмите клавишу [enter].

После установления соединения VNC на вашем экране должно появиться предупреждение о том, что соединение не зашифровано, как показано на скриншотах ниже.

VNC Viewer Client
VNC Viewer Client Connection

9. Чтобы обойти предупреждение, нажмите на кнопку Continue, введите пароль, установленный для сервера VNC на этапе 2, и вы должны быть удаленно подключены к CentOS Desktop с пользователем, настроенным для запуска экземпляра сервера VNC.

VNC Server User Password
VNC Remote CentOS Desktop

10. В случае появления на вашем экране сообщения Authentication и отсутствия у вашего пользователя прав root, просто нажмите кнопку Cancel для продолжения работы с CentOS Desktop, как показано на скриншоте ниже.

VNC Server Authentication Warning

Имейте в виду, что установленное VNC-соединение между сервером и клиентом и любые обмениваемые данные (за исключением пароля) проходят через незащищенный канал. Для шифрования и защиты передачи данных VPN сначала необходимо настроить безопасный SSH-туннель и запускать любые последующие VPN-трафик через SSH-туннель.

11. Чтобы удаленно подключиться к CentOS Desktop через протокол VNC с других CentOS Desktop, сначала убедитесь, что пакет vinagre установлен на вашей системе, выполнив следующую команду.

$ sudo yum install vinagre

12. Для запуска утилиты вингар, перейдите в Приложения -> Утилиты -> Просмотрщик удаленного рабочего стола как показано на скриншоте ниже.

Open Vinagre Tool

13. Для удаленного подключения к рабочему столу CentOS, нажмите на кнопку Подключиться, выберите протокол VNC из списка и добавьте IP-адрес и порт (5900 + номер дисплея) удаленного сервера VNC. Также укажите пароль, установленный для пользователя VNC, как показано на следующих скриншотах.

Select Remote Desktop Protocol
Enter Remote VNC Details
Remote VNC CentOS Desktop

14. Другой популярный клиент VNC для платформ на базе Linux – это Remmina, клиент удаленного рабочего стола, который особенно используется в распределениях на базе Debian, работающих в среде рабочего стола GNOME.

Чтобы установить клиент Remmina Remote Desktop в дистрибутивах на базе Debian, выполните следующую команду.

$ sudo apt-get install remmina

Шаг 3: Настройка нескольких сессий VNC на CentOS

15. Если вам нужно запустить новую параллельную сессию VNC под тем же пользователем, откройте консоль терминала, войдите под пользователем, который хочет начать новую сессию VNC, и выполните следующую команду.

Когда вы впервые запустите сервер, вам будет предложено указать новый пароль для этой сессии. Однако имейте в виду, что эта сессия работает с разрешениями вашего вошедшего пользователя и независимо от запущенной сессии systemd VNC сервера.

$ vncserver
Start New VNC Session

16. Новые сеансы VNC откроют следующие доступные порты на основе VNC (5900+3 отображение в этом примере). Чтобы отобразить открытые порты, выполните команду ss без привилегий root, как показано в приведенном ниже отрывке. Это покажет только запущенные сеансы VNC, принадлежащие вашему пользователю.

$ ss -tlpn| grep Xvnc
List VNC Open Ports

17. Теперь удаленно подключитесь к рабочему столу CentOS, используя этот новый сеанс VNC, и укажите комбинацию IP:порт (192.168.1.23:5903) в клиенте VNC, как показано на изображении ниже.

Connect to VNC Remote Desktop

Чтобы остановить экземпляры сервера VNC, запущенные с разрешениями вошедшего в систему пользователя, выполните следующую команду без каких-либо привилегий root. Эта команда уничтожит все запущенные экземпляры VNC, принадлежащие только пользователю, который их запустил.

$ su - your_user
$ killall Xvnc

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

Source:
https://www.tecmint.com/install-and-configure-vnc-server-in-centos-7/