Подключение к серверу Linux Ubuntu 20.04 с графическим интерфейсом через VNC
Установка графического интерфейса и VNC сервера
Для начала установим графический интерфейс на сервере. Для этого выполним команды:
sudo apt update
sudo apt install xfce4 xfce4-goodies tightvncserver
Здесь мы установим графическую оболочку xfce, пакет xfce4-goodies, который содержит несколько дополнительных возможностей для среды рабочего стола, а также VNC-сервер tightvncserver
Во время установки вас попросят выбрать display manager. Мы выбрали gdm3.
Установка занимает в среднем 5-10 минут, в зависимости от мощности вашего сервера.
После установки задаем пароль для доступа по удаленному рабочему столу. Для этого вводим команду:
vncserver
... на запрос пароля вводим его дважды.
* Если система не затребует второй раз пароль, проверьте внимательно сообщение. Сервер может выдать ошибку, если пароль будет короткий.
После будет предложено ввод пароля для гостевого доступа — можно согласиться (y) и ввести пароль или отказаться (n).
Настройка VNC сервера
Для начала, останавливаем экземпляр VNC сервера:
vncserver -kill :1
* экземпляр :1, по умолчанию, слушает на порту 5900+1 (5901).
Приступаем к настройке VNC сервера. Открываем файл ~/.vnc/xstartup и вводим:
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4
В этом файле могут присутствовать и другие параметры. Главное, чтобы была строчка xrdb $HOME/.Xresources и самая последняя строчка: startxfce4
Затем сделаем файл xstartup исполняемым
chmod +x ~/.vnc/xstartup
Снова запускаем vncserver:
vncserver
Подключаемся к удаленному рабочему столу
Запускаем клиент VNC. Например, в Linux — Remmina, в Windows — TightVNC Viewer или RealVNC. Вводим IP-адрес компьютера с VNC и номер порта.
На скриншоте показан интерфейс программы Remmina. После запуска программы выберите протокол - VNC, в строчке ввода введите ip-адрес-сервера:5901 , и нажмите "Enter".
Будет запрошен пароль — вводим тот, что устанавливали при настройке vncserver. При необходимости сохраняем его и жмем "ОК".
Готово. Подключение выполнено.
Автозапуск сервиса VNC
Чтобы VNC сервер запускался после перезагрузки, создаем новый юнит в systemd. Создаём файл:
sudo vi /etc/systemd/system/vncserver.service
В него вводим следующее:
[Unit]
Description=VNC server
After=syslog.target network.target
[Service]
Type=forking
User=john
Group=john
WorkingDirectory=/home/john
PIDFile=/home/john/.vnc/%H:1.pid
ExecStartPre=-/usr/bin/vncserver -kill :1 > /dev/null 2>&1
ExecStart=/usr/bin/vncserver
ExecStop=/usr/bin/vncserver -kill :1
[Install]
WantedBy=multi-user.target
где замените пользователя john на своего
Сохраните файл.
Затем перезапустим демон systemd
sudo systemctl daemon-reload
И добавим в автозагрузку наш сервис
sudo systemctl enable vncserver.service
Полезные команды
Проверка статуса сервиса VNC:
sudo systemctl status vncserver
Остановка текущего экземпляра сервера VNC, если он еще работает:
vncserver -kill :1
Смена пароля доступа к VNC:
vncpasswd