Обновить настройки cookies

Графическоий рабочий стол на 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 - имя пользователя
Водим пароль и подтверждаем его, дополнительные вопросы можно пропустить нажатием Enter, нажимая на клавишу Y подтверждаем корректность данных:
20250814_prGBZgs2
Добавляем пользователя в группу sudo, для возможности использования одноимённой команды:
usermod -aG sudo user01
  • -a - добавить в группу, не заменяя текущие группы;
  • -G sudo - указать группу sudo;
  • user01 - имя пользователя.
20250814_HfXNiZpK
Включаем 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-* - набор шрифтов для нормального отображения в приложениях;
  • Другие приложения, которые могут нам понадобиться и множество зависимостей.
Если вы предпочитаете использовать RDP для подключения к рабочему столу, можете сразу перейти к абзацу "Установка RDP (xRDP)".

Установка TigerVNC

Устанавливаем сам VNC-сервер:
apt install -y tigervnc-standalone-server

Конфигурация VNC для запуска Xfce

Выходим из пользователя root и подключаемся к серверу по SSH под нашим новым пользователем (в примере user01). Далее все команды будут выполняться от его имени.
Создаём директорию с конфигурацией VNC и задаём права:
mkdir ~/.vnc
chmod 700 ~/.vnc
Создаём VNC-пароль:
vncpasswdВводим пароль, подтверждаем его и отказываемся от создания дополнительного пароля для view-only режима:
20250815_TESAZL1m
Создаём файл запуска 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.
20250814_TDShPBAK
Важный шаг - сделать этот файл исполняемым:
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]
20250815_fCgPt0GB
Проверяем, что VNC-сервер слушает локальный адрес и стандартный для первого дисплея порт 5901:
ss -tnlp | grep 5901Получаем:
20250815_Qj98qK3x

Безопасное подключение к VNC-серверу через SSH-тунель

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

Полезные команды для управления VNC

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

Установка RDP (xRDP)

Наиболее простой вариант подключения к удалённому рабочему столу - использование RDP (Remote Desktop Protocol).
Команда установки RDP-сервера:
apt install xrdp -yВключение автоматического запуска RDP-сервера при старте системы:
systemctl enable xrdpЗапуск RDP-сервера:
systemctl start xrdp20250815_Rjh09Yhs
Далее необходимо перейти в ранее созданного пользователя (в примере user01):
su - user01Привязать запуск Xfce к запуску сессий xRDP:
echo "startxfce4" > ~/.xsession
После чего перезагрузить xRDP:
sudo systemctl restart xrdp20250815_HjN3JKik
Спустя пару простых команд мы можем успешно подключиться к серверу по протоколу RDP, который из коробки поддерживает шифрование данных.
В ОС Windows мы можем использовать встроенную утилиту "Подключение к удалённому рабочему столу".
В ОС на базе ядра Linux: Remmina.
В MacOS: Microsoft Remote Desktop
Пример подключения в Microsoft Remote Desktop:
20250815_P2BcgPjZ
Пароль пользователя был задан на этапе создания пользователя:
20250815_sK2qe3DI
Успешно подключаемся к удалённому рабочему столу по RDP:
20250815_18ROIYPH

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

Премиум выделенные серверы

Смотреть конфигурации