Как установить и настроить VNC на CentOS 7

В этом руководстве мы проведем вас через шаги по установке и настройке сервера VNC в системе CentOS 7. Мы также покажем вам, как безопасно подключиться к серверу VNC через туннель SSH.

Virtual Network Computing (VNC) — это графическая система совместного использования рабочего стола, которая позволяет использовать клавиатуру и мышь для удаленного управления другим компьютером.

Подготовка

Прежде чем продолжить обучение, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo . Предположим, вы вошли в систему как пользователь с именем linuxize .

Установка среды рабочего стола Xfce

Установки сервера CentOS часто не поставляются с установленной средой рабочего стола, поэтому мы начнем с установки облегченной среды рабочего стола.

Мы будем устанавливать Xfce . Он быстрый, стабильный и требует мало системных ресурсов, что делает его идеальным для использования на удаленных серверах.

Пакеты Xfce доступны в репозитории EPEL . Если репозиторий не включен на вашем сервере, вы можете включить его, набрав:

sudo yum install epel-release

После добавления репозитория установите Xfce на CentOS с помощью:

sudo yum groupinstall xfce

В зависимости от вашей системы загрузка и установка пакетов и зависимостей Xfce может занять некоторое время.

Установка VNC-сервера

Мы будем использовать TigerVNC в качестве предпочтительного VNC-сервера. TigerVNC — это активно поддерживаемый высокопроизводительный VNC-сервер с открытым исходным кодом.

Введите следующую команду, чтобы установить TigerVNC на ваш сервер CentOS:

sudo yum install tigervnc-server

Теперь, когда VNC-сервер установлен, следующим шагом будет запуск команды vncserver , которая создаст начальную конфигурацию и установит пароль. Не используйте sudo при выполнении следующей команды:

vncserver

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

You will require a password to access your desktops.

Password:
Verify:
Would you like to enter a view-only password (y/n)? n
/usr/bin/xauth:  file /home/linuxize/.Xauthority does not exist

New 'server2.linuxize.com:1 (linuxize)' desktop at :1 on machine server2.linuxize.com

Starting applications specified in /etc/X11/Xvnc-session
Log file is /home/linuxize/.vnc/server2.linuxize.com:1.log

При первом vncserver команды vncserver она создаст и сохранит файл паролей в каталоге ~/.vnc который будет создан, если он отсутствует.

Обратите внимание на :1 после имени хоста в выходных данных выше. Это указывает номер порта дисплея, на котором работает сервер vnc. В нашем случае сервер работает на TCP-порту 5901 (5900 + 1). Если вы создадите второй экземпляр с vncserver он будет работать на следующем свободном порту, например :2 , что означает, что сервер работает на порту 5902 (5900 + 2).

Важно помнить, что при работе с серверами VNC :X — это порт дисплея, который ссылается на 5900+X

Прежде чем перейти к следующему шагу, сначала остановите экземпляр VNC с помощью команды vncserver с параметром -kill и номером сервера в качестве аргумента. В этом случае сервер работает на порту 5901 ( :1 ), поэтому мы остановим его с помощью:

vncserver -kill :1
Killing Xvnc process ID 2432

Настройка VNC-сервера

Теперь, когда на сервере установлены и Xfce, и TigerVNC, следующим шагом будет настройка TigerVNC для использования Xfce. Для этого откройте следующий файл:

nano ~/.vnc/xstartup

И измените последнюю строку с exec /etc/X11/xinit/xinitrc на exec startxfce4 :

~/.vnc/xstartup
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4 

Сохраните и закройте файл. Приведенный выше сценарий будет автоматически выполняться при каждом запуске или перезапуске сервера TigerVNC.

Если вам нужно передать дополнительные параметры серверу VNC, откройте файл ~/.vnc/config и добавьте по одному параметру в каждой строке. Наиболее распространенные варианты перечислены в файле. Раскомментируйте и измените по своему усмотрению.

Вот пример:

~/.vnc/config
# securitytypes=vncauth,tlsvnc
# desktop=sandbox
geometry=1920x1080
# localhost
# alwaysshared
dpi=96

Создание файла модуля Systemd

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

Скопируйте файл модуля vncserver с помощью команды cp :

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

Откройте файл в текстовом редакторе, отредактируйте строки, выделенные желтым цветом, и замените «linuxize» своим фактическим именем пользователя:

sudo nano /etc/systemd/system/vncserver@:1.service
/etc/systemd/system/vncserver@:1.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
User=linuxize
Group=linuxize

# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver %I
PIDFile=/home/linuxize/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

Сохраните и закройте файл. Сообщите systemd, что мы создали новый файл модуля с:

sudo systemctl daemon-reload

Следующим шагом является включение файла модуля с помощью следующей команды:

sudo systemctl enable vncserver@:1.service

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

Запустите службу VNC, выполнив:

sudo systemctl start vncserver@:1.service

Убедитесь, что служба успешно запущена:

sudo systemctl status vncserver@:1.service
● vncserver@:1.service - Remote desktop service (VNC)
   Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2020-04-06 19:27:47 UTC; 16s ago
  Process: 909 ExecStart=/usr/bin/vncserver %I (code=exited, status=0/SUCCESS)
  Process: 891 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
 Main PID: 923 (Xvnc)
 ...

Подключение к VNC-серверу

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

Настроить SSH-туннелирование в Linux и macOS

Если вы используете Linux, macOS или любую другую операционную систему на основе Unix на своем компьютере, вы можете легко создать туннель с помощью следующей команды ssh :

ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address

Вам будет предложено ввести пароль пользователя.

Не забудьте заменить username и server_ip_address своим именем пользователя и IP-адресом вашего сервера.

Настроить SSH-туннелирование в Windows

Если вы используете Windows, вы можете настроить SSH-туннелирование с помощью 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

Теперь, когда вы настроили SSH-туннелирование, пора открыть Vncviewer и подключиться к VNC-серверу по адресу localhost:5901 .

Вы можете использовать любую программу просмотра VNC, такую как TigerVNC, TightVNC, RealVNC, UltraVNC, Vinagre и VNC Viewer для Google Chrome .

В этом примере мы будем использовать TigerVNC. Откройте программу просмотра VNC, введите localhost:5901 и нажмите кнопку « Connect .

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

Теперь вы можете начать взаимодействие с удаленным рабочим столом XFCE со своего локального компьютера, используя клавиатуру и мышь.

Выводы

К настоящему времени у вас должен быть установлен и запущен VNC-сервер, и вы можете легко управлять своим сервером CentOS 7 с помощью графического интерфейса.

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

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.

Оставьте комментарий