Подключение к Ubuntu‑VPS через RDP
Протокол удалённого рабочего стола или RDP (Remote Desktop Protocol) широко используется для создания удалённых подключений пользователей к графической среде Windows. Однако не все знают, что это же средство также подходит для создания подключений к графическим средам Linux-систем, позволяя получать те же возможности управления, как и в Windows. Для реализации этой возможности, на Linux-сервере должно быть развёрнуто соответствующее программное обеспечение (ПО) и выполнена настройка брандмауэра. Продемонстрируем здесь, как это можно сделать с использованием VPS-сервера на базе Ubuntu / Debian.
Что нужно для создания RDP-подключения к Linux
Для того, чтобы можно было подключаться к удалённому рабочему столу Linux-сервера, необходимо выполнение нескольких условий:
- VPS-сервер Ubuntu / Debian с не root пользователем с правами sudo;
- Установленная и настроенная среда рабочего стола Linux;
- Наличие развёрнутого RDP-сервера на VPS;
- Открытый TCP-порт 3389 на брандмауэре VPS-сервера;
- Локальный компьютер с установленным RDP-клиентом.
Удалённый Linux-сервер и локальная машина с ОС Windows уже имеются в нашем распоряжении, а выполнение остальных условий будет рассмотрено нами ниже.
Предварительная подготовка VPS-сервера
Все операции на сервере должны производиться не root пользователем с правами sudo. Подключимся к VPS-серверу по SSH как root пользователь, после чего создадим на нём нового пользователя:
$ adduser test_rdp
Пользователь с именем test_rdp был успешно создан. По умолчанию он попал в группу users. Поместим его в группу Администраторов с правами sudo:
$ usermod -aG sudo test_rdp
Сменим аккаунт:
$ su -l test_rdp
Как видим, приглашение командной строки изменилось на test_rdp@dedicated:~$, значит, всё в порядке, можно идти дальше.
Обновим список доступных пакетов с помощью следующей команды:
sudo apt update
Выход команды: Reading package lists ... Done. Список успешно обновлён.
Выбор и установка окружения рабочего стола
Выбор окружения рабочего стола Linux напрямую влияет на скорость ответа в пределах сеанса, поскольку мощные графические среды потребляют много серверных ресурсов – CPU, RAM и некоторых других. В условиях ограничений сети производительность такого RDP-канала может быть очень низкой, что препятствует полноценной работе пользователей.
Среди полновесных графических сред Linux можно выделить GNOME и KDE Plasma, они являются рекордсменами по потреблению ресурсов. Однако удобство их использования также велико. К среднему уровню можно отнести, например, среду Xfce, сочетающую в себе небольшое потребление ресурсов с достаточным комфортом в использовании. К очень лёгким средам относятся, например, LXDE, LXQt и MATE.
Выберем для наших целей среду Xfce и произведём её установку.
Введём в терминале:
$ sudo apt install xfce4 xfce4-goodies -y
Процесс установки растянулся на несколько экранов, последний из которых показан ниже. Выход команды:
Setting up xfce4-notifyd (0.7.3-1) ...
Setting up mousepad (0.5.10-2) ...
Setting up xfce4-settings (4.18.2-1) ...
Setting up xfce4-screenshooter (1.10.3-1) ...
Setting up xfce4-terminal (1.0.4-1) ...
update-alternatives: using /usr/bin/xfce4-terminal.wrapper to provide /usr/bin/x-terminal-emulator (x-terminal-emulator) in auto mode
Setting up xfburn (0.6.2-1+b1) ...
Setting up xfce4-cpufreq-plugin:amd64 (1.2.8-1) ...
Setting up xfce4-fsguard-plugin:amd64 (1.1.2-1) ...
Setting up xfce4-smartbookmark-plugin:amd64 (0.5.2-1) ...
Setting up xfce4-netload-plugin:amd64 (1.4.0-1) ...
Setting up gvfs:amd64 (1.50.3-1) ...
Setting up xfce4-systemload-plugin:amd64 (1.3.2-2) ...
Setting up libthunarx-3-0:amd64 (4.18.4-1) ...
Setting up pavucontrol (5.0-2) ...
Setting up xfdesktop4 (4.18.1-1) ...
Setting up xfce4-verve-plugin:amd64 (2.0.1-1) ...
Setting up thunar (4.18.4-1) ...
Setting up xfce4-places-plugin:amd64 (1.8.3-1) ...
Setting up xfce4-session (4.18.1-1) ...
update-alternatives: using /usr/bin/startxfce4 to provide /usr/bin/x-session-manager (x-session-manager) in auto mode
Setting up thunar-media-tags-plugin (0.3.0-2+b1) ...
Setting up xfce4 (4.18) ...
Setting up thunar-volman (4.18.0-1) ...
Setting up thunar-archive-plugin:amd64 (0.5.0-1) ...
Setting up xfce4-goodies:amd64 (4.18.0) ...
Как можно убедиться, xfce4, xfce4-goodies и другие компоненты сервиса успешно установлены на нашем сервере.
Выбор и установка RDP-сервера
RDP-сервер для Linux имеет множество реализаций, каждая из которых имеет свои характеристики, определяющие качество работы вашего RDP-канала. В Таблицу 1 сведены характеристики некоторых из наиболее известных реализаций.
Таблица 1. Характеристики известных реализаций RDP-сервера для Linux-систем.
Параметр |
VNC |
TeamViewer |
Xrdp |
Открытый исходный код |
Да |
Нет |
Да |
Протокол |
RFB (Remote Framebuffer Protocol) |
Проприетарный |
RDP (Microsoft) |
Сложность конфигурирования |
Выше среднего. Требуется ручная настройка каждой реализации продукта |
Легко настраивается (автоматическая настройка) |
Средняя. Необходимо конфигурирование и настройка окружения рабочего стола |
Поддержка платформ |
Кроссплатформность |
Linux, Android, iOS Windows, macOS |
Сервер Linux. RDP-клиенты доступны для Linux, Windows, macOS |
Производительность (локальная сеть) |
Посредственная из-за наличия задержек |
Высокая для всех окружений рабочего стола |
Высокая, при использовании «лёгких» сред рабочего стола |
Производительность WAN |
Ниже среднего уровня |
Высокая за счёт использования NAT traversal, сжатия |
Средняя с оптимизацией |
Поддержка нескольких пользователей |
Да. Все работают в общем сеансе, но иногда могут встречаться другие варианты в зависимости от реализации |
Один сеанс на одно соединение |
Да. Для каждого пользователя создаётся изолированный сеанс |
Безопасность |
Требуется SSH-туннелирование |
Используются зашифрованные соединения, 2FA и доступ на основе учетной записи |
Определяют настройки SSH и брандмауэра |
Применение |
Просмотр действующего сеанса удалённого рабочего стола |
Автоматический доступ к удалённому окружению рабочего стола |
Пользовательский RDP-доступ к Linux из Windows или macOS |
Из рассмотрения характеристик RDP-серверов становится ясным, что наиболее оптимальные характеристики из представленных реализаций имеет Xrdp. Поэтому именно его мы установим на своём сервере.
Установка Xrdp
Введём в терминале:
$ sudo apt install xrdp -y
Выход команды:
Setting up ssl-cert (1.1.2) ...
Setting up xorgxrdp (1:0.9.19-1) ...
Setting up xrdp (0.9.21.1-1) ...
Сервер успешно установлен. Проверим его статус с помощью следующей команды:
$ sudo systemctl status xrdp
Выход команды:
. xrdp.service - xrdp daemon
Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; preset: enabled)
Active: active (running) since Fri 2025-08-29 17:51:13 EEST; 9min ago
Docs: man:xrdp(8)
man:xrdp.ini(5)
Process: 517676 ExecStartPre=/bin/sh /usr/share/xrdp/socksetup (code=exited, status=0/SUCCESS)
Process: 517684 ExecStart=/usr/sbin/xrdp $XRDP_OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 517685 (xrdp)
Tasks: 1 (limit: 5700)
Memory: 884.0K
CPU: 20ms
CGroup: /system.slice/xrdp.service
└─517685 /usr/sbin/xrdp
Можно убедиться, что сервер запущен и готов к использованию. Теперь нам остаётся только проверить его конфигурацию и в случае необходимости подкорректировать параметры, используемые по умолчанию.
Настройка Xrdp
Конфигурация xrdp-сервера хранится в файле xrdp.ini. Для возможности изменения параметров с учётом требований RDP-подключения, воспользуемся следующей командой:
sudo nano /etc/xrdp/xrdp.ini
В окне редактора мы, прежде всего, должны найти разделы, связанные с настройкой сервера отображения и установить нужные значения параметров:
[Xorg]
name=Xorg
lib=libxup.so
username=ask // Вводится по запросу
password=ask // Вводится по запросу
ip=127.0.0.1
port=-1
code=20
[Xvnc]
name=Xvnc
lib=libvnc.so
username=ask // Вводится по запросу
password=ask // Вводится по запросу
ip=127.0.0.1
port=-1
Для возможности установки первого RDP-подключения, установленных по умолчанию значений параметров достаточно. Поэтому выйдем из редактора.
После этого необходимо в домашней директории пользователя /home/test_rdp создать файл с именем .xsession и добавить в него строчку xfce4-session, которая подключает менеджера управления пользовательскими сеансами при запросе графического входа.
Это можно сделать с помощью следующей команды:
$ echo "xfce4-session" | tee ~/.xsession
Выход команды: xfce4-session . Это означает, что нужный менеджер сеансов установлен.
Перезагрузим xrdp-сервер:
sudo systemctl restart xrdp
Настройка брандмауэра
Правильная настройка брандмауэра играет ключевую роль в обеспечении безопасности использования xrdp-сервера. Перед выполнением настройки мы должны знать публичный IP-адрес нашей локальной машины. Узнать его можно, например, при помощи следующей команды:
curl ifconfig.me
IP-адрес нашей машины: 46.149.92.2**
Перед добавлением правил необходимо включить брандмауэр и проверить его настойки. Включить его можно так:
$ sudo ufw enable
Выход команды: Firewall is active and enabled on system startup
Откроем доступ к RDP-порту № 3389 на удалённом VPS-сервере:
$ sudo ufw allow from 46.149.92.2**/32 to any port 3389
Выход: Rules updated
Тестирование RDP-подключения
Для возможности тестирования работы RDP-канала необходимо наличие установленного RDP-клиента на локальном компьютере. Для Linux в качестве такого клиента можно использовать инструменты Remmina или FreeRDP. Для macOS подойдёт приложение Microsoft Remote Desktop.
На нашей локальной машине установлена ОС Windows, в которой в качестве RDP-клиента можно использовать стандартное средство для подключения к удалённому рабочему столу. Воспользуемся им для установки соединения.
Последовательность действий будет следующей:
Запустить в среде Windows приложение «Подключение к удалённому рабочему столу»;
В окне клиента перейти на вкладку Общие, где в поля Компьютер и Имя пользователя ввести IP-адрес удалённого сервера и имя его пользователя соответственно, после чего нажать кнопку Сохранить и затем Подключить в нижней части окна;
В случае появления всплывающего окна с запросом подтверждения вашей личности, нажать Да;
В появившемся окне авторизации выбрать сессию Xorg, ввести имя пользователя и пароль, после чего нажать ОК;
После выполнения указанных действий станет доступной среда рабочего стола Linux, как показано
ниже.