Как установить и настроить VNC в Ubuntu 18.04

How to Install and Configure VNC on Ubuntu 18.04

23 Ноября 2020 | Ubuntu

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

Как установить и настроить VNC в Ubuntu 18.04

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


Введение

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

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

На большинстве серверов не установлена ​​среда рабочего стола, поэтому мы начнем с установки облегченной среды рабочего стола.

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

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

sudo apt update sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils 


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

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

Также в репозиториях Ubuntu доступно несколько различных серверов VNC, таких как TightVNC , TigerVNC и x11vnc . Каждый сервер VNC имеет свои сильные и слабые стороны с точки зрения скорости и безопасности.

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

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

sudo apt install tigervnc-standalone-server tigervnc-common 


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

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.baks.dev:1 (baksev)' desktop at :1 on machine server2.baks.dev

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

Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/baksdev/.vnc/passwd :1 to connect to the VNC server.
 


   При первом 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 Xtigervnc process ID 7264... success!

 

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

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

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

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

У ~/.vnc/xstartup файла также должны быть разрешения на выполнение. Выполните следующую chmod команду, чтобы убедиться, что разрешения верны:

chmod u+x ~/.vnc/xstartup 


   Если вам нужно передать дополнительные параметры на сервер VNC, создайте файл с именем config и добавьте по одному параметру в каждой строке. Вот пример:

~ / .vnc / config
geometry=1920x1080
dpi=96
 

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

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

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

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

[Service]
Type=simple
User=baksdev
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver :%i -geometry 1440x900 -alwaysshared -fg
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target 

Сохраните и закройте файл.

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

sudo systemctl daemon-reload 


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

sudo systemctl enable vncserver@1.service 


   Число 1 после @ знака определяет порт дисплея, на котором будет работать служба VNC. Это означает, что сервер 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@.service; indirect; vendor preset: enabled)
   Active: active (running) since Thu 2018-08-16 19:05:54 UTC; 4s ago
  Process: 9893 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
 Main PID: 9900 (vncserver)
    Tasks: 0 (limit: 507)
   CGroup: /system.slice/system-vncserver.slice/vncserver@1.service
           ‣ 9900 /usr/bin/perl /usr/bin/vncserver :1 -geometry 1440x900 -alwaysshared -fg
 

Подключение к 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 Server по адресу localhost:5901 .

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

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





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






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

Вывод 

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

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

    Комментарии

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

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