
Виртуальные сетевые вычисления (VNC) — это графическая система общего доступа к рабочему столу, которая позволяет использовать клавиатуру и мышь для удаленного управления другим компьютером.
В этой статье описываются шаги по установке и настройке VNC-сервера на CentOS 8. Мы также покажем вам, как безопасно подключиться к VNC-серверу через SSH-туннель.
Предпосылки
Чтобы следовать этому руководству, вам необходимо войти в систему как пользователь с привилегиями sudo на удаленном компьютере CentOS.
Установка среды рабочего стола
Как правило, на серверах не установлено окружение рабочего стола. Если на машине, к которой вы хотите подключиться, нет графического интерфейса, первым шагом будет его установка. В противном случае пропустите этот шаг.
Выполните следующую команду, чтобы установить Gnome, среду рабочего стола по умолчанию в CentOS 8, на удаленном компьютере:
sudo dnf groupinstall "Server with GUI"
В зависимости от вашей системы загрузка и установка пакетов и зависимостей Gnome может занять некоторое время.
Установка VNC-сервера
TigerVNC — это активно поддерживаемый высокопроизводительный VNC-сервер с открытым исходным кодом. Он доступен в стандартных репозиториях CentOS. Чтобы установить его, введите:
sudo dnf install tigervnc-server
Настройка VNC-сервера
В CentOS 8 TigerVNC настраивается с помощью демона systemd.
В этом примере мы покажем вам, как настроить TigerVNC для одного или нескольких пользователей VNC.
-
Используйте команду
vncpasswdдля установки пароля. Выполните команду от имени пользователя, который будет получать доступ к VNC-серверу. Не используйтеsudo:vncpasswdВам будет предложено ввести и подтвердить пароль, а также указать, следует ли установить его как пароль только для просмотра. Если вы решите установить пароль только для просмотра, пользователь не сможет взаимодействовать с экземпляром VNC с помощью мыши и клавиатуры.
При первом запуске команды
vncpasswdона создаст и сохранит файл паролей в каталоге пользователя~/.vnc.Password: Verify: Would you like to enter a view-only password (y/n)? n A view-only password is not usedЕсли вы добавляете второго пользователя, переключитесь на него и установите пароль с помощью
vncpasswd. -
Следующий шаг — настроить TigerVNC для использования Gnome. VNC считывает пользовательские настройки из файла
~/.vnc/config. Откройте файл и добавьте следующее:vim ~/.vnc/configsession = gnome geometry = 1920x1200 localhost alwayssharedПараметр
sessionопределяет сеанс, который вы хотите запустить, а параметрgeometryопределяет размер рабочего стола VNC.Сохраните и закройте файл . Если вы добавляете нескольких пользователей, повторите тот же шаг.
-
TigerVNC поставляется с файлом, позволяющим сопоставить пользователя с определённым портом. Сопоставление настраивается в файле
/etc/tigervnc/vncserver.users:sudo vim /etc/tigervnc/vncserver.usersВ файле используется синтаксис
. В примере ниже мы сопоставляем порт дисплея= :1с пользователем linuxize. Используйте тот же формат для добавления других пользователей.# TigerVNC User assignment # # This file assigns users to specific VNC display numbers. # The syntax is= # # :2=andrew # :3=lisa :1 = linuxize. Eg: :1— это номер порта дисплея, на котором будет работать VNC-сервер. В нашем случае сервер работает на TCP-порте5901(5900+1). Если назначить другого пользователя, например, на порт дисплея:2, сервер также будет прослушивать порт5902(5900+2).Важно понимать, что при работе с VNC-серверами
:X— это порт дисплея, который относится к5900+X.
Запуск сервера Tigervnc
После завершения настройки последним шагом будет запуск VNC-сервера.
Чтобы запустить и включить службу VNC для пользователя, сопоставленного с портом дисплея :1 , введите:
sudo systemctl enable vncserver@:1 --now
Сервер VNC будет прослушивать порт 5901 , как мы обсуждали в предыдущем разделе.
Проверить, успешно ли запущена служба, можно с помощью:
sudo systemctl status vncserver@:1
● vncserver@:1.service - Remote desktop service (VNC) Loaded: loaded (/usr/lib/systemd/system/vncserver@.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2020-12-17 21:49:41 UTC; 8s ago ...
Чтобы включить VNC для других пользователей, просто замените 1 на порт дисплея, сопоставленный пользователю.
Подключение к VNC-серверу
VNC не использует шифрование и может быть подвержен перехвату пакетов. Рекомендуемый подход — создать SSH-туннель для безопасной пересылки трафика с локального компьютера через порт 5901 на удалённый сервер через тот же порт.
Настройка SSH-туннелирования в Linux и macOS
Если на вашем компьютере установлена операционная система Linux, macOS или любая другая операционная система на базе Unix, вы можете легко создать туннель с помощью следующей команды ssh :
ssh -L 5901:127.0.0.1:5901 -N -f -l username remote_server_ip
Вам будет предложено ввести пароль пользователя.
Не забудьте заменить username и server_ip_address на свое имя пользователя и IP-адрес вашего сервера.
Настройка SSH-туннелирования в Windows
Пользователи Windows могут настроить SSH-туннелирование с помощью PuTTY .
Откройте Putty и введите IP-адрес вашего сервера в поле Host name or IP address .

В меню Connection разверните SSH и выберите Tunnels . Введите порт VNC-сервера ( 5901 ) в поле Source Port , введите server_ip_address:5901 в поле Destination и нажмите кнопку « Add , как показано на рисунке ниже:

Вернитесь на страницу Session , чтобы сохранить настройки и не вводить их каждый раз. Чтобы войти на удалённый сервер, выберите сохранённую сессию и нажмите кнопку « Open .
Подключение с помощью Vncviewer
Чтобы подключиться к удаленному серверу, откройте средство просмотра VNC и введите localhost:5901 .
Вы можете использовать любой просмотрщик VNC, такой как TigerVNC, TightVNC, RealVNC, UltraVNC, Vinagre и VNC Viewer для Google Chrome .
Мы используем TigerVNC:

Введите пароль при появлении запроса, и вы увидите рабочий стол Gnome по умолчанию. Он должен выглядеть примерно так:

Вот и всё! Теперь вы можете работать на удалённом рабочем столе с локального компьютера, используя клавиатуру и мышь.
Заключение
Мы показали вам, как настроить VNC-сервер и подключиться к удаленному компьютеру CentOS 8.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии.
centos vnc Не используете CentOS 8?
Выберите другую ОС: центос 7 дебиан 9 убунту 18.04 убунту 20.04
Связанные руководства