RDP на Linux (GNOME Remote Desktop)
Этот метод подойдет для GUI Gnome с менеджером Wayland: встает "болт-он", работает быстрее и стабильнее аналогов.
Однако, с другими GUI и менеджерами сессий могут возникнуть проблемы - там лучше не экспериментировать с GRDP, а рассмотреть аналоги
Шаг 1. Установка GRDP
apt update
apt install -y gnome-remote-desktop
Все дальнейшие шаги будут выполняться от пользователя user1 (не от root!) и в GUI (не в терминале!)
Шаг 2. Включаем RDP
gsettings set org.gnome.desktop.remote-desktop.rdp enable true
Шаг 3. Создание учетных данных для пользователя
Для создания пользователя, выполняем команду от имени того, кто будет заходить на сервер (не root!). Например, для user1:
su - user1
# Чтобы пароль не светился и не попадал в history:
read -rp "RDP user: " RDP_USER
read -srp "RDP pass: " RDP_PASS; echo
grdctl rdp set-credentials "$RDP_USER" "$RDP_PASS"
unset RDP_USER RDP_PASS
Шаг 4. Разрешаем подключение
grdctl rdp enable
# Автозагрузка
sudo systemctl --user enable --now gnome-remote-desktop
Ожидаем вывод:
RDP enabled: yesШаг 5. ОткрываемЗаранее открываем порт 3389 (пример с UFW)
Если порт 3389 будет закрыть, подключения не произойдет. Чтобы открыть его через UFW, выполняем:
sudo ufw allow 3389/tcp
sudo ufw reload
# Посмотреть список правил можно так:
sudo ufw status
Шаг 6. Скорее всего, в логах gnome-remote-desktop при первом запуске вы увидите что-то такое:
● gnome-remote-desktop.service - GNOME Remote Desktop
Loaded: loaded (/usr/lib/systemd/user/gnome-remote-desktop.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2026-01-14 20:30:15 MSK; 3min 8s ago
Main PID: 31760 (gnome-remote-de)
Tasks: 4 (limit: 9379)
Memory: 15.4M
CPU: 319ms
CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/gnome-remote-desktop.service
└─31760 /usr/libexec/gnome-remote-desktop-daemon
янв 14 20:30:15 home-srv-android systemd[1683]: Starting GNOME Remote Desktop...
янв 14 20:30:15 home-srv-android systemd[1683]: Started GNOME Remote Desktop.
янв 14 20:30:15 home-srv-android gnome-remote-de[31760]: RDP TLS certificate and key not configured properly
янв 14 20:32:50 home-srv-android systemd[1683]: Started GNOME Remote Desktop.
янв 14 20:33:23 home-srv-android systemd[1683]: Started GNOME Remote Desktop.
И порт 3389 слушаться не будет, сколько бы вы не перезагружали службу.
Проблема тут вот в этой ошибке:
RDP TLS certificate and key not configured properly
И тут есть 2 варианта решения проблемы: использовать самоподписанный или нормальный TLS-сертификат.
Решение через self-signed TLS
1. Генерируем самоподписанный сертификат в ~/.local/share/grd:
mkdir -p ~/.local/share/grd
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \
-keyout ~/.local/share/grd/rdp.key \
-out ~/.local/share/grd/rdp.crt \
-subj "/CN=home-srv-android"
chmod 600 ~/.local/share/grd/rdp.key
Важно:
1. Ключ должен быть без пароля (unencrypted PEM);
2. Файлы должны быть читаемы пользователем, который будет подключаться (иначе демон их не прочтет).
Если у вас есть свой TLS-сертификат, просто подложите его в директорию:
1. Сертификат: ~/.local/share/grd/rdp.crt
2. Приватный ключ: ~/.local/share/grd/rdp.key
2. Привязываем его к GRDP:
grdctl rdp set-tls-cert ~/.local/share/grd/rdp.crt
grdctl rdp set-tls-key ~/.local/share/grd/rdp.key
grdctl rdp enable
3. Перезапускаем сервис и проверяем, что он запущен
# Перезапуск
sudo systemctl --user restart gnome-remote-desktop
# Проверяем статус
grdctl status
# Проверяем, что порт слушается
sudo ss -ltnp | grep -E ':3389'