xrdp — это свободное программное обеспечение с открытым исходным кодом, реализующее серверную часть протокола Microsoft Remote Desktop Protocol (RDP), которое позволяет системам, отличным от Windows (например, Linux, BSD), предоставлять графический удалённый доступ через стандартные клиенты RDP. Проект стартовал примерно в 2004 году, его первоначальная версия опиралась на использование VNC-сервера в качестве промежуточного звена для отображения графического интерфейса и передачи управления. Со временем была добавлена собственная реализация, общающаяся напрямую с X-сервером, и затем введён модуль xorgxrdp, ставший основным в новых выпусках.
xrdp позволяет подключаться удалённо к рабочим столам Unix-подобных систем, пересылая ввод с клавиатуры и мыши, а также отображение графики. По умолчанию он слушает на стандартном RDP-порту (3389/TCP), поддерживает шифрование соединения (например, через TLS), и может взаимодействовать с разными RDP-клиентами, включая FreeRDP, rdesktop и клиентами Microsoft. В зависимости от настройки используется один из бэкендов для отображения — через VNC, через X11-вариант или через модуль Xorg напрямую.
- Поддержка различных режимов отображения — режим VNC-форвардинга, режим X11rdp и современный xorgxrdp, который позволяет работать напрямую с X-сервером, улучшая производительность и снижая задержки.
- Шифрование по умолчанию — соединения RDP шифруются (например, TLS), что повышает безопасность передачи данных.
- Поддержка разнообразных клиентов — совместимость с FreeRDP, rdesktop, Microsoft Remote Desktop Client и другими RDP-клиентами на разных платформах.
- Перенаправление ресурсов — двунаправленный буфер обмена (clipboard), аудио-/микрофонная переадресация, возможность монтировать диски клиента на сервере.
- Изменение разрешения и поддержка мультимониторов — автоматическая подгонка разрешения при подключении, возможность горячей смены количества мониторов, масштабирование при высоком DPI.
- Возможность переподключения к существующей сессии — при разрыве связи клиент может восстановить сеанс без потери состояния.
- Работа на различных аппаратных архитектурах и Unix-подобных ОС — Linux и BSD-системы, архитектуры x86, x86-64 и ARM.