В этом руководстве мы объясним, как установить и настроить Удаленный доступ VNC в CentOS 7/8 и RHEL 9/8/7 десктоп-издание через программу tigervnc-server для доступа к удаленным рабочим столам.
VNC (Виртуальное сетевое вычисление) – это протокол сервер-клиент, который позволяет пользовательским учетным записям удаленно подключаться и управлять удаленной системой, используя ресурсы, предоставляемые Графическим пользовательским интерфейсом.
В отличие от других доступных серверов VNC, которые подключаются непосредственно к рабочему столу времени выполнения, таких как VNC X или Вино, tigervnc-vncserver использует другой механизм, который настраивает автономный виртуальный рабочий стол для каждого пользователя.
Требования
- Установка CentOS 8 с скриншотами
- Процедура установки CentOS 7
- Как бесплатно установить RHEL 9
- Как установить RHEL 8 бесплатно
- Процедура установки RHEL 7
Шаг 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

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

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

5. После того, как вы внести соответствующие изменения в файл службы VNC, перезагрузите программу инициализации системы systemd для захвата нового файла конфигурации VNC и запустите сервер TigerVNC.
Также проверьте статус службы VNC и включите демон VNC системно путем выполнения следующих команд.
# systemctl daemon-reload # systemctl start vncserver@:1 # systemctl status vncserver@:1 # systemctl enable vncserver@:1

6. Чтобы вывести список открытых портов в состоянии прослушивания, принадлежащих серверу VNC, запустите команду ss, которая используется для отображения сетевых сокетов. Поскольку вы запустили только одну инстанцию сервера VNC, первый открытый порт – 5901/TCP.
Опять же, команду ss необходимо выполнять с привилегиями root. В случае если вы запустите другие инстанции VNC параллельно для разных пользователей, значение порта будет 5902 для второй, 5903 для третьей и так далее. Порты 6000+ используются для разрешения подключения X-приложений к серверу VNC.
# ss -tulpn| grep vnc

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 на вашем экране должно появиться предупреждение о том, что соединение не зашифровано, как показано на скриншотах ниже.


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


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

Имейте в виду, что установленное VNC-соединение между сервером и клиентом и любые обмениваемые данные (за исключением пароля) проходят через незащищенный канал. Для шифрования и защиты передачи данных VPN сначала необходимо настроить безопасный SSH-туннель и запускать любые последующие VPN-трафик через SSH-туннель.
11. Чтобы удаленно подключиться к CentOS Desktop через протокол VNC с других CentOS Desktop, сначала убедитесь, что пакет vinagre установлен на вашей системе, выполнив следующую команду.
$ sudo yum install vinagre
12. Для запуска утилиты вингар, перейдите в Приложения -> Утилиты -> Просмотрщик удаленного рабочего стола как показано на скриншоте ниже.

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



14. Другой популярный клиент VNC для платформ на базе Linux – это Remmina, клиент удаленного рабочего стола, который особенно используется в распределениях на базе Debian, работающих в среде рабочего стола GNOME.
Чтобы установить клиент Remmina Remote Desktop в дистрибутивах на базе Debian, выполните следующую команду.
$ sudo apt-get install remmina
Шаг 3: Настройка нескольких сессий VNC на CentOS
15. Если вам нужно запустить новую параллельную сессию VNC под тем же пользователем, откройте консоль терминала, войдите под пользователем, который хочет начать новую сессию VNC, и выполните следующую команду.
Когда вы впервые запустите сервер, вам будет предложено указать новый пароль для этой сессии. Однако имейте в виду, что эта сессия работает с разрешениями вашего вошедшего пользователя и независимо от запущенной сессии systemd VNC сервера.
$ vncserver

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

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

Чтобы остановить экземпляры сервера VNC, запущенные с разрешениями вошедшего в систему пользователя, выполните следующую команду без каких-либо привилегий root. Эта команда уничтожит все запущенные экземпляры VNC, принадлежащие только пользователю, который их запустил.
$ su - your_user $ killall Xvnc
Это все! Теперь вы можете получить доступ к вашей системе CentOS и выполнять административные задачи с помощью графического интерфейса пользователя, предоставленного операционной системой.
Source:
https://www.tecmint.com/install-and-configure-vnc-server-in-centos-7/