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

VNC — Virtual Network Computing — графическая система совместного доступа к рабочему столу, с помощью которой можно удаленно управлять другим компьютером используя клавиатуру и мышь. VNC имеет открытый исходный код и часто используется в работе в различных организациях. Сегодня мы установим и настроем сервер VNC на ОС Убунту и попробуем к нему подключиться по сети.

В данной инструкции я использовал Ubuntu Server 20.04

Установка графического окружения

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

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

Установка XFCE

Выполним команду в терминале, которая установит графическое окружение:

sudo apt install xfce4 xfce4-goodies -y

Если во время установки возникнет окно с вопросом о том, какой DM использовать, то традиционно для xfce выбираем lightdm, хотя это ни на что не повлияет в дальнейшем:

Дожидаемся завершения установки — этот процесс может занять длительное время, все зависит от характеристик железа и скорости соединения с интернет:

 

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

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

Используем команду:

sudo apt install tigervnc-standalone-server

 

Настройка VNC

 

Установка пароля

Для начала необходимо установить пароль для доступа с помощью команды:

vncpasswd

Данную команду нужно выполнять от имени своего пользователя. Будет предложено ввести и подтвердить новый пароль, а затем будет вопрос о входе «только для просмотра», если указать «y», то подключенный пользователь не сможет управлять удаленной машиной, поэтому тут мы указываем «n»:

 

Настройка xstartup

Далее нужно создать файл ~/.vnc/xstartup (/home/USER/.vnc/xstartup) и установить ему разрешение на исполнение:

touch ~/.vnc/xstartup
chmod +x ~/.vnc/xstartup

Затем открываем данный файл в текстовом редакторе:

nano ~/.vnc/xstartup

Я использую редактор nano, установить его можно командой sudo apt install nano . После окончания редактирования файла нужно нажать CTRL+O и Enter для сохранения и CTRL+X для закрытия файла.

Вписываем в него следующие параметры:

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4

 

Настройка разрешения

Далее создаем файл ~/.vnc/config:

touch ~/.vnc/config

И указываем в нем желаемое разрешения экрана, у меня в примере это 1024х768. Открываем файл в текстовом редакторе:

nano ~/.vnc/config

И вписываем следующее:

geometry=1024x768
dpi=96

 

Запуск VNC срвера

На данном этапе необходимые установки произведены и мы можем запустить сервер. Делается это командой:

vncserver

В выводе команды указано то, что сервер стартовал на порту 5901, определяется это с помощью строки: New 'proto-vb-server:1 (mike)' desktop at :1 on machine proto-vb-server  в которой «:1» и есть указатель на номер порта. Vnc стартует на 5900 + цифра, указанная после двоеточия порту.

 

Для того, чтобы посмотреть список запущенных сеансов используется команда:

vncserver -list

 

Для остановки сеанса нужно использовать:

vncserver -kill :НОМЕР

В нашем примере команда будет выглядеть так:

vncserver -kill :1

 

Добавление юнита Systemd

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

Создаем файл /etc/systemd/system/vncserver@.service:

sudo touch /etc/systemd/system/vncserver@.service

Открываем файл в текстовом редакторе:

sudo nano /etc/systemd/system/vncserver@.service

И вписываем в него следующее:

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=simple
User=ИМЯ_ПОЛЬЗОВАТЕЛЯ
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 -localhost no -alwaysshared -fg
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

Тут нужно обратить внимание на необходимость заменить ИМЯ_ПОЛЬЗОВАТЕЛЯ на имя своей учетной записи.

После этого выполняем команду:

sudo systemctl daemon-reload

 

Как пользоваться

Запуск сервиса:

sudo systemctl start vncserver@1.service

Остановка сервиса:

sudo systemctl stop vncserver@1.service

Добавить в автозапуск:

sudo systemctl enable vncserver@1.service

Проверить статус сервиса:

sudo systemctl status vncserver@1.service

Перезапуск сервиса:

sudo systemctl restart vncserver@1.service

В командах выше мы можем изменить номер порта при необходимости. Можно указать, например не @1, а @2 и т.д.

 

Подключение к VNC из Windows

Теперь попробуем подключиться к только что установленному, настроенному и запущенному серверу. Из Windows это можно сделать с помощью программы Vncviewer. Скачать ее можно с официальной страницы загрузки: https://www.realvnc.com/en/connect/download/viewer/ .

Запускаем Viewer:

В адресною строку, в которой написано «Enter a VNC Server address or search» вводим ip адрес сервера и порт через двоеточие, например у меня это 192.168.0.104:5901:

Ждем подключения:

Подтверждаем соединение:

Вводим пароль:

Попадаем в удаленный сеанс:

 

Подключение к VNC с использованием SSH туннеля из Ubuntu

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

Перепишем файл vncserver@.service

Нам необходимо немного изменить юнит Systemd из предыдущих шагов по настройке сервера. Открываем в текстовом редакторе файл /etc/systemd/system/vncserver@.service:

sudo nano /etc/systemd/system/vncserver@.service

И из строки

ExecStart=/usr/bin/vncserver :%i -localhost no -alwaysshared -fg

Удаляем «-localhost no»:

ExecStart=/usr/bin/vncserver :%i -alwaysshared -fg

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

sudo systemctl daemon-reload

 

Подключаемся к VNC из Ubuntu

Для подключения через SSH туннель нам необходимо будет настроить проброс порта на локальном ПК, сделать это можно командой:

ssh -L 5901:127.0.0.1:5901 -N -f -l УДАЛЕННЫЙ_ПОЛЬЗОВАТЕЛЬ IP_АДРЕС

В примере данной инструкции для меня эта команда будет выглядеть так:

ssh -L 5901:127.0.0.1:5901 -N -f -l mike 192.168.0.104

Теперь устанавливаем vncviewer командой:

sudo apt install xtightvncviewer

И пробуем подключиться:

vncviewer localhost:1

 

Из Windows такое подключение можно осуществить с помощью специального программного обеспечения такого, как PuTTY.

 

Добавить комментарий

Есть, что добавить? Нет проблем! Напечатай комментарий и он будет опубликован после проверки.