Підключення до 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
Вихід: Правила оновлено
Тестування RDP-підключення
Для можливості тестування роботи RDP-каналу необхідна наявність встановленого RDP-клієнта на локальному комп'ютері. Для Linux в якості такого клієнта можна використовувати інструменти Remmina або FreeRDP. Для macOS підійде додаток Microsoft Remote Desktop.
На нашій локальній машині встановлена ОС Windows, в якій в якості RDP-клієнта можна використовувати стандартний засіб для підключення до віддаленого робочого столу. Скористаємося ним для встановлення з'єднання.
Послідовність дій буде наступною:
Запустити в середовищі Windows додаток «Підключення до віддаленого робочого столу»;
У вікні клієнта перейти на вкладку Загальні, де в поля Комп'ютер та Ім'я користувача ввести IP-адресу віддаленого сервера та ім'я його користувача відповідно, після чого натиснути кнопку Зберегти, а потім Підключити в нижній частині вікна;
У разі появи спливаючого вікна із запитом підтвердження вашої особи, натиснути Так;
У вікні авторизації, що з'явилося, вибрати сесію Xorg, ввести ім'я користувача і пароль, після чого натиснути ОК;
Після виконання зазначених дій стане доступним середовище робочого столу Linux, як показано нижче.