В корпоративной среде стандартом де-факто для удаленного рабочего стола является протокол Microsoft RDP. Админу, управляющему Linux-серверами с графическим интерфейсом (или рабочими станциями), часто нужно получить к ним доступ с основной Windows-машины, не меняя клиент. Хотя в мире Linux есть VNC, SSH с X11 Forwarding и другие решения, RDP выигрывает у них в производительности на слабых каналах, интеграции с буфером обмена и локальными ресурсами (дисками, принтерами), а также в привычном интерфейсе клиента (mstsc.exe).
В этом руководстве разберем xrdp — самый популярный и стабильный сервер RDP с открытым исходным кодом для Linux. Мы настроим его на Ubuntu 22.04/Debian 11 и выше, разберем типичные проблемы и вопросы безопасности.
Часть 1: Установка и базовая настройка xrdp
1.1. Обновление системы и установка
Первым делом обновляем списки пакетов и устанавливаем сам
xrdp и сервер графической сессии. Xrdp не рисует окна сам, он лишь выступает "переводчиком" между протоколом RDP и вашим рабочим столом (Xorg или Wayland).- Code: Select all
sudo apt update && sudo apt upgrade -y
sudo apt install xrdp -y
1.2. Выбор и настройка окружения рабочего стола
Xrdp лучше всего работает с классическими окружениями: XFCE, MATE, GNOME Flashback (с оговорками). Настоятельно рекомендую XFCE для серверов — оно легкое и стабильное.
Установка XFCE:
- Code: Select all
sudo apt install xfce4 xfce4-goodies -y
Указание xrdp использовать XFCE:
Нужно отредактировать файл сессии, который запускается при подключении.
- Code: Select all
echo "xfce4-session" > ~/.xsession
# Или, если вы настраиваете для всех пользователей:
sudo echo "xfce4-session" > /etc/xrdp/startwm.sh
Более правильный способ — отредактировать системный файл
/etc/xrdp/startwm.sh. Найдите блок в конце файла (после строк fi) и закомментируйте старые вызовы, добавив свой:- Code: Select all
# test -x /etc/X11/Xsession && exec /etc/X11/Xsession
# exec /bin/sh /etc/X11/Xsession
exec startxfce4
1.3. Запуск и добавление в автозагрузку
- Code: Select all
sudo systemctl enable xrdp --now
sudo systemctl status xrdp # Проверяем, что служба работает
1.4. Настройка брандмауэра (если используется UFW)
Xrdp по умолчанию слушает порт 3389/tcp, как и Windows RDP.
- Code: Select all
sudo ufw allow from any to any port 3389 proto tcp
# ВНИМАНИЕ: Эта команда открывает порт для всех. В Части 3 мы это исправим.
1.5. Первое подключение
На вашей Windows-машине откройте Подключение к удаленному рабочему столу (mstsc.exe), введите IP-адрес вашего Linux-сервера. В появившемся окне xrdp используйте логин и пароль вашего пользователя Linux (не root!).
Уже на этом этапе вы можете столкнуться с первой проблемой: черный экран после ввода пароля. Решение — ниже.

