Графическоий рабочий стол на Ubuntu Server 24.04 с VNC и RDP
14 Aug 2025, 21:42:25
Ubuntu Server 24.04 не имеет графического интерфейса по умолчанию. Однако популярность ОС Ubuntu среди рядовых пользователей делает эту систему отличной альтернативой удалённому рабочему столу Windows Server. В этой статье мы установим окружение рабочего стола на серверную версию ОС Ubuntu 24.04, которую можно выбрать на наших VPS, и настроим подключение к удалённому рабочему столу двумя самыми популярными методами - VNC и RDP.Мы установим:
- Xfce - легковесная среда рабочего стола, разработанная с целью экономии ресурсов. Отлично подходит для VPS;
- TigerVNC - open-source VNC-сервер, форк популярного в прошлом TightVNC;
- xRDP - open-source RDP-сервер. Позволит подключаться к серверу по протоколу RDP, в том числе через встроенный в Windows "Подключение к удаленному рабочему столу".
Подготовка к установке
Подключаемся к серверу по SSH под пользователем root.Обновляем список пакетов и устанавливаем обновления:
apt update && apt upgrade -y
Подключаться к удалённому рабочему столу через пользователя root - плохое решение. Создаём нового пользователя (пропустите этот шаг если пользователь уже есть):adduser user01
- user01 - имя пользователя

Добавляем пользователя в группу sudo, для возможности использования одноимённой команды:
usermod -aG sudo user01
- -a - добавить в группу, не заменяя текущие группы;
- -G sudo - указать группу sudo;
- user01 - имя пользователя.

Включаем lingering, чтобы сервисы пользователя запускались после перезагрузки без входа в систему:
loginctl enable-linger user01
Запускаем user‑менеджер пользователя:systemctl start user@$(id -u user01)
- user01 - имя пользователя
Установка Xfce
Устанавливаем необходимые пакеты: среду рабочего стола Xfce и множество других пакетов. Не пугайтесь их количеству, это нормально:apt install -y xfce4 xfce4-goodies dbus-x11 x11-xserver-utils fonts-dejavu-core fonts-liberation2 curl git htop unzip xarchiver
- xfce4-goodies - дополнительное ПО Xfce;
- dbus-x11 - ПО для обмена сообщениями между различными приложениями;
- x11-xserver-utils - набор утилит для работы с графической подсистемой Linux;
- fonts-* - набор шрифтов для нормального отображения в приложениях;
- Другие приложения, которые могут нам понадобиться и множество зависимостей.
Установка TigerVNC
Устанавливаем сам VNC-сервер:apt install -y tigervnc-standalone-server
Конфигурация VNC для запуска Xfce
Выходим из пользователя root и подключаемся к серверу по SSH под нашим новым пользователем (в примере user01). Далее все команды будут выполняться от его имени.Создаём директорию с конфигурацией VNC и задаём права:
mkdir ~/.vnc
chmod 700 ~/.vnc
Создаём VNC-пароль:vncpasswd
Вводим пароль, подтверждаем его и отказываемся от создания дополнительного пароля для view-only режима:
Создаём файл запуска xstartup:
nano ~/.vnc/xstartup
С содержимым:#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
export XDG_SESSION_TYPE=x11
export DESKTOP_SESSION=xfce
export XDG_CURRENT_DESKTOP=XFCE
exec startxfce4
Сохраняем файл сочетанием клавиш Ctrl+O и закрываем Ctrl+X.
Важный шаг - сделать этот файл исполняемым:
chmod +x ~/.vnc/xstartup
Создаём общую конфигурацию VNC:nano ~/.vnc/config
Содержимое:geometry=1920x1080
localhost
alwaysshared
dpi=96
- geometry - разрешение виртуального рабочего стола;
- localhost - слушать только локальный адрес. Так как VNC не использует шифрования трафика, для безопасного доступа мы будем использовать SSH-тунель, который создадим далее;
- alwaysshared - позволяет одновременное подключение нескольких пользователей к одному рабочему столу;
- dpi - количество пикселей на один дюйм экрана. 96 - стандартное значение для большинства систем.
Автозапуск VNC‑сервера от имени пользователя
Создаём юнит systemd в окружении пользователя. Создаём директорию:mkdir -p ~/.config/systemd/user
Создаём файл юнита:nano ~/.config/systemd/user/[email protected]
С содержимым:[Unit]
Description=TigerVNC server for display :%i (user)
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/vncserver -fg :%i
ExecStop=/usr/bin/vncserver -kill :%i
Restart=on-failure
[Install]
WantedBy=default.target
- :%i - номер виртуального дисплея. Например для подключения к дисплею номер :1 используется порт 5901.
systemctl --user daemon-reload
systemctl --user enable --now [email protected]

Проверяем, что VNC-сервер слушает локальный адрес и стандартный для первого дисплея порт 5901:
ss -tnlp | grep 5901
Получаем:
Безопасное подключение к VNC-серверу через SSH-тунель
Протокол SSH использует шифрование для защиты передаваемых данных. Именно по этому принято использовать SSH-тунель для организации подключения по VNC. Также данный метод позволяет держать закрытыми для внешнего мира порты VNC-сервера. По умолчанию должен быть открыт только 22 порт (SSH).Для создания SSH-тунеля на вашем компьютере необходимо запустить терминал (cmd или PowerShell в случае Windows) и выполнить команду:
ssh -L 5901:localhost:5901 user01@IP_address
- user01 - имя пользователя, созданного ранее;
- IP_address - IP адрес вашего сервера.
Теперь вы можете подключиться к VNC-серверу используя адрес localhost:5901 и указанный ранее в vncpasswd пароль с помощью любого VNC клиента (TigerVNC Viewer, RealVNC Viewer, Remmina, Screen Sharing MacOS):

Наш рабочий стол:

Полезные команды для управления VNC
Мы успешно установили Xfce, настроили безопасное подключение по VNC к удалённому рабочему столу. Осталось лишь рассмотреть вопрос управления нашим VNC-сервером.Благодаря нашей настройке, юнит VNC-сервера будет автоматически запускаться после старта системы. Чтобы его остановить, войдите под пользователем VNC и воспользуйтесь командой:
systemctl --user stop [email protected]
Команда для запуска:systemctl --user start [email protected]
Команда перезагрузки VNC-сервера:systemctl --user restart [email protected]
Для просмотра активных сессий VNC:vncserver -list

Видим что в примере запущен один виртуальный дисплей на порту 5901.
Установка RDP (xRDP)
Наиболее простой вариант подключения к удалённому рабочему столу - использование RDP (Remote Desktop Protocol).Команда установки RDP-сервера:
apt install xrdp -y
Включение автоматического запуска RDP-сервера при старте системы:systemctl enable xrdp
Запуск RDP-сервера:systemctl start xrdp

Далее необходимо перейти в ранее созданного пользователя (в примере user01):
su - user01
Привязать запуск Xfce к запуску сессий xRDP:echo "startxfce4" > ~/.xsession
После чего перезагрузить xRDP:
sudo systemctl restart xrdp

Спустя пару простых команд мы можем успешно подключиться к серверу по протоколу RDP, который из коробки поддерживает шифрование данных.
В ОС Windows мы можем использовать встроенную утилиту "Подключение к удалённому рабочему столу".
В ОС на базе ядра Linux: Remmina.
В MacOS: Microsoft Remote Desktop
Пример подключения в Microsoft Remote Desktop:

Пароль пользователя был задан на этапе создания пользователя:

Успешно подключаемся к удалённому рабочему столу по RDP:

Мы успешно установили среду рабочего стола Xfce и настроили безопасное подключение к нему посредством VNC и RDP. Конечно же вы можете выбрать что-то одно, но установить оба вариант на один сервер вполне возможно. После выполнения рассмотренных инструкций ваш сервер готов к полноценному использованию графического интерфейса.