Virtual Network Computing (VNC) — система удалённого доступа к рабочему столу компьютера. Помогает управлять сервером дистанционно. Пользователь использует клавиатуру и мышь, подключенные к своему компьютеру, для ввода информации, а все содержимое рабочего стола с сервера ретранслируется по сети на его компьютер.
Для работы VNC внутри сервера необходима графическая оболочка, поэтому перед установкой VNC сначала установим её.
Вариантов установки будет три, для каждого своя ОС и разные графические оболочки:
- ОС Debian 9/10 — оболочка KDE
- ОС Ubuntu 18/20 — оболочка GNOME
- ОС Centos 7 — оболочка xfce
На каждую из них установим VNC-сервер и расскажем об особенностях.
Если интересна установка графической оболочки xfce на ОС Debian/Ubuntu, то можете воспользоваться этой инструкцией.
Так как установка на Debian и Ubuntu будет схожа, то рассмотрим её одним пунктом с пометками, какие команды для какой ОС используем.
Еще можно пойти другим путём и установить на сервер операционную систему сразу с графической оболочкой. Такой дистрибутив можно скачать самостоятельно и загрузить через ISO-образ. Мы взяли образ ОС Mint c оболочкой Cinnamon.
В этом случае шаг «Установка графической оболочки» можно пропустить и перейти сразу к настройке VNC-сервера.
А еще у нас есть статья «Как подключиться к встроенному интерфейсу VNC», который мы предоставляем для наших виртуальных серверов.
Установка VNC на сервер Ubuntu/Debian
1. Установка графической оболочки KDE/GNOME
На серверах с ОС Ubuntu/Debian графическую оболочку будем разворачивать с помощью утилиты Tasksel, она установит несколько зависимых пакетов в качестве единой задачи.
Подробнее об утилите Tasksel можно узнать здесь.
После подключения к серверу по SSH необходимо обновить пакеты. Для этого вводим в консоль команду:
apt-get update

Затем ставим графическое окружение.
Для Debian 9/10 будем ставить Kde, командой:
tasksel install kde-desktop
Для Ubuntu 18/20 будем ставить Gnome, командой:
tasksel install ubuntu-desktop
Этап загрузки пошёл, ждём 100%.

Устанавливаем язык системы английский, чтобы не было проблем с открытием терминала в графическом окружении. Сделать это можно командой:
localectl set-locale LANG=en_US.UTF-8
2. Установка и настройка VNC-сервера
Устанавливаем VNC-server командой:
apt install tigervnc-standalone-server tigervnc-common -y
Необходимо определиться, под каким пользователем будете работать в VNC.
Если нужен новый пользователь, создаём его командой:
adduser ИМЯ_ПОЛЬЗОВАТЕЛЯ
Указываем пароль два раза и дополнительную информацию — можно поставить пробелы.
На вопрос Is the information correct? [Y/n]
, отвечаем “y” (yes) и переходим под пользователя командой:
su - ИМЯ_ПОЛЬЗОВАТЕЛЯ

Настраиваем пароль для подключения по VNC:
vncpasswd
Указываем не менее 6 символов, которые нужно будет повторить еще раз. Пароль при вводе виден не будет — так и должно быть, это система защиты.
На вопрос после Would you like to enter a view-only password (y/n)?
, отвечаем “n” (нет).

После чего создаём конфигурационный файл, командой:
vim ~/.vnc/xstartup
В него нужно записать код, который мы указали ниже, перейдя в режим вставки (клавиша i на клавиатуре), об этом будет сигнализировать надпись снизу слева -- INSERT --
:
Для Kde содержание будет следующее:
#!/bin/sh unset SESSION_MANAGER exec /etc/X11/xinit/xinitrc [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic & /usr/bin/startkde &

Для Gnome содержимое другое:
#!/bin/sh [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources vncconfig -iconic & dbus-launch --exit-with-session gnome-session &

Для варианта с загрузкой из образа ISO мы взяли ОС Mint с графической оболочкой Cinnamon.
Для него содержимое файла будет:
#!/bin/bash PATH=/usr/bin:/usr/sbin unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS exec cinnamon-session-cinnamon &

Чтобы выйти из редактора vim, нажмите Esc и напишите :wq
Затем копируем файл:
cp /etc/X11/Xresources/x11-common ~/.Xresources
Выходим из-под пользователя (Ctrl+D) и перезапускаем сервер командой:
reboot
Готово, осталось запустить VNC:
vncserver -localhost no
Подключиться на сервер можно по IP_СЕРВЕРА:1
, после чего ввести пароль, который указывали командой vncpasswd
несколько шагов назад.
Вот так будет выглядеть подключение по VNC c установленной оболочкой:
Debian KDE

Ubuntu Gnome

Mint Cinnamon (установку этой OC сделали через загрузку образа ISO)

Установка VNC на сервер CentOS
На ОС Centos установка и настройка будет отличаться:
1. Установка графической оболочки xfce
Графическая оболочка доступна в репозиториях EPEL, поэтому устанавливаем его, командой:
yum install epel-release -y

Далее ставим саму оболочку:
yum groupinstall xfce -y

На скриншоте показан процесс установки.
2. Установка и настройка VNC-сервера
Ставим VNC-server командой:
yum install tigervnc-server -y
Открываем порт:
firewall-cmd --zone=public --add-port=5901/tcp --permanent firewall-cmd --zone=public --add-port=5901/udp --permanent firewall-cmd --reload
Добавляем пользователя, если нужен другой, а не root:
useradd ИМЯ_ПОЛЬЗОВАТЕЛЯ
Указываем пароль для него:
passwd ИМЯ_ПОЛЬЗОВАТЕЛЯ
Переходим под него:
su - ИМЯ_ПОЛЬЗОВАТЕЛЯ
И настраиваем пароль для VNC:
vncpasswd
Далее редактируем файл vim ~/.vnc/xstartup
, мы используем редактор vim, но вы можете использовать тот, что удобен вам. После входа в редактор переходим в режим редактирования, нажав клавишу i на клавиатуре, если активен режим вставки, то появится надпись снизу слева -- INSERT --
.
Содержимое файла изменяем на:
#!/bin/bash xrdb $HOME/.Xresources startxfce4 &

Выходим из редактора vim, нажав Esc и :wq
Даём права на файл:
chmod +x ~/.vnc/xstartup
Копируем файл:
cp /etc/X11/Xresources ~/.Xresources
Выходим из-под пользователя (Ctrl+D).
Перезапускаем сервер:
reboot
После перезагрузки снова входим под пользователя, которого создавали выше и запускаем VNC:
vncserver
Подключиться на сервер можно по IP_СЕРВЕРА:1
После чего ввести пароль, который указывали командой vncpasswd
пару шагов назад.
