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

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

3 Января 2020 | CentOS

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

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

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

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


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

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

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

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


sudo yum install epel-release


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


sudo yum groupinstall xfce


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


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

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

Введите следующую команду для установки TigerVNC на вашем сервере CentOS:


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/baksdev/.Xauthority does not exist

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

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


При первом 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 установлены на нашем сервере CentOS, следующим шагом является настройка 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/vncserver@.service /etc/systemd/system/vncserver@:1.service


Откройте файл в текстовом редакторе и замените его <USER> своим настоящим именем пользователя.


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

# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l baksdev -c "/usr/bin/vncserver %i"
PIDFile=/home/baksdev/.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


Число после @знака определяет порт дисплея, на котором будет работать служба 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 Sun 2018-09-16 09:59:53 UTC; 4s ago
  Process: 6391 ExecStart=/usr/sbin/runuser -l baksdev -c /usr/bin/vncserver %i (code=exited, status=0/SUCCESS)
  Process: 6389 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
 Main PID: 6413 (Xvnc)
   CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service
           ‣ 6413 /usr/bin/Xvnc :1 -auth /home/baksdev/.Xauthority -desktop server2.baksdev.com:1 (baksdev) -fp catalogue:/etc/X11/fontpath.d -geometry 1024x768 -pn -rfbauth /home/baksdev/.vnc/passwd -rfbport ...


Подключение к 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-туннелирование, используя PuTTY SSH-клиент .

Откройте 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 команды и создайте новый файл службы, используя другой порт.


    Комментарии

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

Загрузка комментариев...