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

12 set 2022 7 min di lettura
Как установить и настроить VNC в Ubuntu 20.04 LTS
Indice dei contenuti

Введение

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

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

Предпосылки

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

Если вы хотите установить VNC на удаленный сервер, продолжайте читать, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.

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

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:

ssh [email protected]_DEL_SERVER

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

Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:

ssh [email protected]_DEL_SERVER

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

Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:

ssh [email protected]_DEL_SERVER -p PORTA

Установите среду рабочего стола

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

В репозиториях 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 с помощью мыши и клавиатуры.

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

После подтверждения пароля у вас будет возможность создать пароль только для просмотра. Пользователи, которые входят в систему с паролем только для просмотра, не смогут управлять экземпляром VNC с помощью мыши или клавиатуры. Это полезная опция, если вы хотите что-то продемонстрировать другим людям, использующим ваш 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/noviello/.Xauthority does not exist

 New 'server2.noviello.it:1 (noviello)' desktop at:1 on machine server2.noviello.it

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

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

Обратите внимание, что если вы хотите изменить свой пароль или добавить пароль только для просмотра, вы можете сделать это с помощью команды vncpasswd:

vncpasswd

На данный момент VNC-сервер установлен и работает. Теперь давайте настроим его для запуска Xfce и предоставления нам доступа к серверу через графический интерфейс.

При первом запуске команды 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 6458... success!

Настроить VNC-сервер

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

nano ~/.vnc/xstartup

Вставьте следующие строки кода

#!/bin/bash
 xrdb $HOME/.Xresources
 startxfce4 &

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

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

chmod u+x ~/.vnc/xstartup

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

geometry=1920x1084
 dpi=96

Затем перезапустите VNC-сервер:

vncserver -localhost

Создайте файл диска Systemd

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

Сначала создайте новый файл диска с именем /etc/systemd/system/[email protected]:

sudo nano /etc/systemd/system/[email protected]

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

Добавьте в файл следующие строки. Убедитесь, что вы изменили значение User, Group, WorkingDirectory и имя пользователя в значении PIDFILE, чтобы оно соответствовало вашему имени пользователя:

[Unit]
 Description=Start TightVNC server at startup
 After=syslog.target network.target

 [Service]
 Type=forking
 User=noviello
 Group=noviello
 WorkingDirectory=/home/noviello

 PIDFile=/home/noviello/.vnc/%H:%i.pid
 ExecStartPre=-/usr/bin/vncserver -kill:%i > /dev/null 2>&1
 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost:%i
 ExecStop=/usr/bin/vncserver -kill:%i

 [Install]
 WantedBy=multi-user.target
/etc/systemd/система/[email protected]

Команда ExecStartPre останавливает VNC, если он уже запущен. Команда ExecStart запускает VNC и устанавливает глубину цвета на 24-битный цвет с разрешением 1280x800. Вы также можете изменить эти параметры запуска в соответствии с вашими потребностями. Также обратите внимание, что команда ExecStart снова включает параметр -localhost.

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

Затем сообщите системе о новом файле диска:

sudo systemctl daemon-reload

Включить файл диска:

sudo systemctl enable [email protected]

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

Остановите текущий экземпляр сервера VNC, если он все еще работает:

vncserver -kill:1

Затем запустите его, как и любой другой сервис systemd:

sudo systemctl start [email protected]

Вы можете убедиться, что он запустился с помощью этой команды:

sudo systemctl status [email protected]

Если он запустился успешно, вывод должен выглядеть так:

[email protected] - Remote desktop service (VNC)
 Loaded: loaded (/etc/systemd/system/[email protected]; indirect; vendor preset: enabled)
 Active: active (running) since Tue 2020-02-11 21:57:43 CET; 4s ago
 Process: 6629 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill:1 > /dev/null 2>&1 ||: (code=exited, status=0/SUCCESS)
 Main PID: 6657 (vncserver)
 Tasks: 0 (limit: 2298)
 CGroup: /system.slice/system-vncserver.slice/[email protected]
 ‣ 6657 /usr/bin/perl /usr/bin/vncserver:1 -geometry 1440x900 -alwaysshared -fg

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

Подключиться к VNC-серверу

Сам VNC не использует безопасные протоколы при подключении. Чтобы безопасно подключиться к вашему серверу, вы создадите туннель SSH, а затем скажете своему VNC-клиенту подключаться с использованием этого туннеля, а не устанавливать прямое соединение.

Создайте SSH-соединение на локальном компьютере, которое безопасно перенаправляется на соединение для VNC localhost. Вы можете сделать это через терминал в Linux или macOS с помощью следующей команды ssh:

ssh -L 59000:localhost:5901 -C -N -l noviello your_server_ip

Вот что означают параметры этой команды ssh:

  • -L 59000:localhost:5901: Переключатель -L указывает, что порт, указанный на локальном компьютере ( 59000 ), должен быть переадресован на хост, а порт указан на целевом сервере ( localhost:5901 указывает порт 5901 на целевом сервере, определенный как your_server_ip ). Обратите внимание, что указанный локальный порт несколько произволен; если порт еще не связан с другой службой, его можно использовать в качестве порта пересылки для туннеля.
  • -C: этот флаг разрешает сжатие, что может помочь минимизировать потребление ресурсов.
  • -N: эта опция сообщает ssh, что вы не хотите запускать какие-либо удаленные команды. Этот параметр полезен, когда вы просто хотите перенаправить порты.
  • -l noviello your_server_ip: Переключатель -l позволяет вам указать пользователя, под которым вы хотите войти после подключения к серверу. Обязательно замените noviello и your_server_ip на имя пользователя без полномочий root и IP-адрес вашего сервера.
Примечание59015900022первоначальной настройке сервера для Ubuntu 20.04Как настроить брандмауэр UFW в Ubuntu 20.04 LTS
5901

Если вы используете PuTTY для подключения к своему серверу, вы можете создать туннель SSH, щелкнув правой кнопкой мыши верхнюю панель окна терминала, а затем выбрав опцию «Изменить настройки… ».

Найдите пункт Connection в древовидном меню в левой части окна перенастройки PuTTY. Разверните ветку SSH и нажмите Tunnel. На экране «Параметры управления переадресацией портов SSH » введите 59000 в качестве исходного порта и localhost:5901 в качестве пункта назначения, например:

Затем нажмите кнопку « Добавить », затем кнопку « Применить », чтобы реализовать туннель.

После запуска туннеля используйте клиент VNC для подключения к localhost:59000. Вам будет предложено пройти аутентификацию, используя пароль, который вы установили на шаге 1.

После подключения вы увидите рабочий стол Xfce по умолчанию.

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

Нажмите CTRL+C на локальном терминале, чтобы остановить туннель SSH и вернуться к подсказке. Это также отключит сеанс VNC.

Теперь вы можете настроить свой VNC-сервер для работы в качестве службы systemd.

Вывод

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

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

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.