Удаленный рабочий стол Ubuntu (графический интерфейс)
Ubuntu Remote Desktop (GUI)
Ubuntu Server по умолчанию не включает графический интерфейс. Однако вы можете установить его и подключаться к нему удалённо по VNC или RDP. В этом руководстве рассмотрены оба способа.
(Warning) Не открывайте порты 5901 (VNC) и 3389 (RDP) напрямую в интернет. Используйте SSH-туннель, WireGuard или другое VPN-решение для защиты подключения. Если эти порты всё же нужно разрешить в файрволе, ограничьте доступ только доверенными диапазонами IP.
(Info) Для большинства производственных серверов Ubuntu рекомендуется следующая связка: окружение рабочего стола Xfce, xrdp для удалённого доступа и WireGuard или SSH-туннель для безопасного соединения.
Что вам понадобится
- Сервер Ubuntu (20.04 / 22.04 / 24.04)
- Доступ root или sudo
- Клиентский компьютер (Windows или macOS), с которого вы будете подключаться
Установка окружения рабочего стола
Обновите список пакетов:
apt update && apt upgrade -y
Установите окружение рабочего стола Xfce. Оно нетребовательно к ресурсам и стабильно работает как по VNC, так и по xrdp:
apt install xfce4 xfce4-goodies -y
(Info) Если вы предпочитаете GNOME, установите его командой apt install ubuntu-desktop-minimal -y. Учтите, что в Ubuntu 24.04 GNOME по умолчанию работает поверх Wayland, который несовместим с VNC и xrdp; сначала пришлось бы отключить Wayland, задав WaylandEnable=false в /etc/gdm3/custom.conf. Xfce этого не требует и является более простым выбором для удалённого рабочего стола.
На сервере также понадобится dbus-launch, чтобы сессия рабочего стола запускалась. Если его нет, установите:
apt install dbus-x11 -y
Вариант 1. Подключение по VNC
VNC (Virtual Network Computing) позволяет просматривать рабочий стол и управлять им удалённо. В этом разделе используется TigerVNC.
Установка сервера TigerVNC
apt install tigervnc-standalone-server tigervnc-common -y
Создание пользователя VNC
Запускайте VNC от имени пользователя без прав root. Создайте такого, если его ещё нет:
adduser vncuser
(Warning) Не добавляйте пользователя VNC в группу sudo. Если злоумышленник получит доступ к VNC-сессии, права sudo дадут ему полный контроль над сервером.
Переключитесь на этого пользователя:
su - vncuser
Установка пароля VNC
vncpasswd
Введите и подтвердите пароль. На вопрос «Would you like to enter a view-only password?» введите n. Пароль VNC ограничен 8 символами.
Настройка VNC-сессии
Создайте каталог конфигурации и файл запуска:
mkdir -p ~/.vnc nano ~/.vnc/xstartup
Вставьте следующее:
#!/bin/bash unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS exec startxfce4
(Info) Если VNC-сервер запускается, но сессия сразу завершается (или вы видите чёрный экран), на Ubuntu Server чаще всего причина в отсутствии dbus-launch. Установите его и запустите сервер снова: apt install dbus-x11 -y
Сделайте файл исполняемым:
chmod +x ~/.vnc/xstartup
Запуск сервера VNC
vncserver :1 -geometry 1280x800 -localhost no
Эта команда запускает VNC-сессию на дисплее :1 (порт 5901). Дисплей :2 использовал бы порт 5902 и так далее. Параметр -localhost no разрешает подключения с других машин.
Чтобы остановить сервер:
vncserver -kill :1
Открытие порта в файрволе
ufw allow 5901/tcp
(Info) По возможности ограничьте доступ конкретным диапазоном IP вместо разрешения всех источников: ufw allow from 192.168.1.0/24 to any port 5901 proto tcp
Подключение из Windows
Скачайте и установите TightVNC или RealVNC Viewer. Откройте клиент и введите адрес сервера с номером порта дисплея:
ваш-ip-сервера:5901

Может появиться предупреждение о незашифрованном соединении; для обычного VNC это нормально. Продолжите и при запросе введите пароль VNC. После установки соединения вы увидите удалённый рабочий стол:

Подключение из macOS
В macOS есть встроенный VNC-клиент. Откройте Finder, нажмите Cmd+K и введите:
vnc://ваш-ip-сервера:5901
При запросе введите пароль.
(Warning) Трафик VNC по умолчанию не шифруется. Пропустите соединение через SSH: ssh -L 5901:localhost:5901 пользователь@ваш-ip-сервера, затем подключайтесь к localhost:5901 из своего VNC-клиента.
Вариант 2. Подключение по RDP
RDP (Remote Desktop Protocol) — стандартный протокол, используемый Windows Remote Desktop. В Ubuntu его предоставляет пакет xrdp.
(Info) Xfce обеспечивает более стабильный удалённый рабочий стол по xrdp, чем GNOME, особенно в версиях Ubuntu, где GNOME работает поверх Wayland.
Установка xrdp
apt install xrdp -y
Включите и запустите службу:
systemctl enable --now xrdp
Настройка xrdp на использование Xfce
Создайте файл сессии, чтобы xrdp запускал рабочий стол Xfce при входе. Без него после входа вы получите чёрный экран. Выполните это от имени пользователя, под которым будете подключаться:
echo "xfce4-session" > ~/.xsession
Открытие порта в файрволе
ufw allow 3389/tcp
(Info) По возможности ограничьте доступ конкретным диапазоном IP: ufw allow from 192.168.1.0/24 to any port 3389 proto tcp
Перезапуск xrdp
systemctl restart xrdp
Подключение из Windows
Нажмите Win+R, введите mstsc и нажмите Enter. Введите IP-адрес сервера и нажмите Connect.

На экране входа xrdp оставьте сессию в значении Xorg и введите имя пользователя и пароль Ubuntu:

После входа появляется удалённый рабочий стол:

Подключение из macOS
Установите Microsoft Remote Desktop из App Store. Нажмите Add PC, введите IP-адрес сервера и войдите под своим именем пользователя и паролем Ubuntu.
Сравнение: VNC и RDP
| VNC | RDP | |
|---|---|---|
| Протокол | Открытый стандарт | Microsoft (открытая реализация через xrdp) |
| Клиент Windows | Нужен сторонний | Встроенный (mstsc) |
| Клиент macOS | Встроенный (Finder) | Microsoft Remote Desktop (App Store) |
| Шифрование | По умолчанию нет (используйте SSH-туннель) | TLS (обеспечивает xrdp) |
| Производительность | Средняя | Как правило, плавнее |
| Многопользовательский режим | Ограниченный | Лучше |
Устранение неполадок
Чёрный экран после входа по RDP: убедитесь, что в ~/.xsession указано xfce4-session и что установлен dbus-x11, затем перезапустите xrdp: systemctl restart xrdp
VNC-сессия сразу завершается или показывает чёрный экран: установите недостающий запускатель dbus и запустите сервер снова: apt install dbus-x11 -y
Подключение по VNC отклонено: проверьте командой vncserver -list, запущен ли VNC-сервер, и убедитесь, что порт 5901 открыт в файрволе.
VNC-сессия не запускается: завершите сессию, удалите файлы блокировки и перезапустите:
vncserver -kill :1 rm -f ~/.vnc/*.log ~/.vnc/*.pid vncserver :1
Ошибка аутентификации в xrdp: убедитесь, что входите под действующим системным пользователем и паролем Ubuntu, а не под паролем VNC.
xrdp подключается, но сразу отключается: проверьте статус обеих служб:
systemctl status xrdp systemctl status xrdp-sesman