Что такое FreeRDP и как им пользоваться

Ошибка xfreerdp: command not found при попытке подключиться к Windows-серверу из Linux означает, что пакет FreeRDP просто не установлен в системе — и это самая частая причина, с которой начинается знакомство с этой утилитой. FreeRDP — это свободная реализация протокола удалённого рабочего стола RDP (Remote Desktop Protocol), позволяющая подключаться к Windows-машинам из Linux, macOS и других Unix-подобных систем без установки платных клиентов.

Проект распространяется с открытым исходным кодом и поддерживается сообществом. По сути, это альтернатива штатному клиенту mstsc.exe из Windows, но для тех, кто работает в другой операционной системе. Утилита запускается из терминала командой xfreerdp и принимает параметры подключения в виде аргументов командной строки.

Как работает FreeRDP и для чего он нужен

Протокол RDP разработан Microsoft и используется для передачи изображения экрана удалённого компьютера, а также событий клавиатуры и мыши обратно на сервер. FreeRDP реализует клиентскую часть этого протокола: он устанавливает соединение с удалённым хостом, как правило, по порту 3389, проходит аутентификацию и открывает окно с рабочим столом удалённой системы.

Типичные сценарии использования выглядят так:

  • 🖥️ Подключение с домашнего Linux-ПК к рабочему Windows-компьютеру в офисе.
  • 🛠️ Администрирование Windows Server из терминала без графических оболочек.
  • ☁️ Доступ к виртуальным машинам Windows, развёрнутым в облаке или на гипервизоре.
  • 📁 Проброс локальных папок, буфера обмена и звука в удалённую сессию.

Установка FreeRDP в разных системах

В большинстве дистрибутивов Linux пакет доступен в штатных репозиториях. В Debian и Ubuntu установка выполняется командой:

sudo apt install freerdp2-x11

В Fedora используется пакетный менеджер dnf, а в Arch Linux — pacman. Название пакета может отличаться (freerdp, freerdp2), поэтому при необходимости проверьте точное имя через поиск пакетов вашего дистрибутива. На macOS установку обычно выполняют через пакетный менеджер Homebrew.

После установки проверьте, что утилита доступна и узнайте её версию:

xfreerdp --version
⚠️ Внимание: синтаксис аргументов отличается между версиями FreeRDP 2.x и 3.x. Команда, скопированная из старой инструкции, может не сработать в новой версии — сверяйтесь со справкой xfreerdp --help именно вашей сборки.
📊 Для чего вы используете (или планируете использовать) FreeRDP?
Подключение к рабочему Windows-ПК
Администрирование серверов
Доступ к виртуальным машинам
Только изучаю возможности

Базовое подключение: команда xfreerdp

Минимальная команда подключения требует адрес сервера, имя пользователя и пароль. Классический вариант для версии 2.x выглядит так:

xfreerdp /v:192.168.1.10 /u:username /p:password

Здесь /v: задаёт адрес удалённого хоста, /u: — имя пользователя, /p: — пароль. Если пароль не указывать, клиент запросит его интерактивно, что безопаснее: пароль не останется в истории команд терминала. Для подключения к нестандартному порту адрес записывают в формате /v:192.168.1.10:3390.

Полезные дополнительные параметры:

  • 📐 /size:1920x1080 — разрешение окна удалённого рабочего стола.
  • 🔊 /sound — перенаправление звука с удалённой машины на локальную.
  • 📂 /drive:share,/home/user/docs — проброс локальной папки в удалённую сессию.
  • 📋 +clipboard — общий буфер обмена между системами.

☑️ Проверка перед первым подключением

Выполнено: 0 / 5

Сравнение FreeRDP с альтернативами

FreeRDP — не единственный способ получить удалённый доступ к Windows из Linux. Выбор инструмента зависит от задачи: где-то удобнее графический интерфейс, где-то важна тонкая настройка параметров сессии.

ИнструментИнтерфейсПротоколОсобенность
FreeRDP (xfreerdp)Командная строкаRDPГибкая настройка, скрипты, автоматизация
RemminaГрафическийRDP, VNC, SSHИспользует FreeRDP как движок, удобна для новичков
rdesktopКомандная строкаRDPСтарый проект, поддержка ограничена
Microsoft Remote DesktopГрафическийRDPОфициальный клиент для macOS и мобильных ОС

Если вам нужен просто удобный оконный клиент с сохранением профилей подключений, попробуйте Remmina — она построена поверх FreeRDP и наследует его возможности. Если же требуется автоматизация, запуск из скриптов или тонкий контроль параметров сессии, прямая работа с xfreerdp удобнее.

Типичные ошибки и их решения

Одна из распространённых проблем — ошибка проверки сертификата при первом подключении. FreeRDP по умолчанию требует подтверждения подлинности сервера. Для тестовых подключений в доверенной сети часто добавляют параметр /cert:ignore (в версии 2.x) — он отключает проверку сертификата.

⚠️ Внимание: отключение проверки сертификата делает соединение уязвимым для атаки «человек посередине». Используйте /cert:ignore только в изолированной или доверенной сети, а для постоянных подключений настройте корректную проверку сертификатов.

Другие частые ситуации:

  • 🔌 Connection refused — удалённый хост недоступен: проверьте, включён ли RDP на Windows-машине, открыт ли порт 3389 в брандмауэре и доступен ли хост по сети командой ping.
  • 🔑 Ошибка аутентификации — проверьте раскладку клавиатуры при вводе пароля, а также то, входит ли учётная запись в группу пользователей удалённого рабочего стола на Windows.
  • 🖼️ Чёрный экран после подключения — возможная причина в проблемах с графическими параметрами; попробуйте изменить разрешение или отключить аппаратное ускорение соответствующими флагами вашей версии.
Почему не работает вход по NLA

Network Level Authentication (NLA) требует, чтобы клиент аутентифицировался до создания сессии. Если на стороне сервера включена NLA, а учётные данные неверны или доменная аутентификация недоступна, подключение обрывается на раннем этапе. Проверьте формат имени пользователя: иногда требуется запись вида ДОМЕН\пользователь или пользователь@домен.

Безопасность при использовании FreeRDP

Протокол RDP шифрует трафик, однако безопасность всего подключения зависит от конфигурации обеих сторон. Не храните пароль в открытом виде в скриптах — лучше использовать интерактивный ввод. Если подключение идёт через интернет, рассмотрите туннелирование через VPN или SSH-туннель вместо прямого открытия порта 3389 наружу.

⚠️ Внимание: открытый в интернет порт RDP — один из самых популярных векторов атак на Windows-системы. Ограничьте доступ к порту по IP-адресам на межсетевом экране либо публикуйте его только внутри частной сети.

Также имеет смысл регулярно обновлять пакет FreeRDP через штатный менеджер пакетов: в реализациях сетевых протоколов периодически находят уязвимости, и свежая версия снижает риски.

Часто задаваемые вопросы

FreeRDP — это клиент или сервер?

FreeRDP — это клиентская реализация протокола RDP. Он подключается к Windows-машинам, где уже включён удалённый рабочий стол. Для организации RDP-сервера на Linux существуют отдельные решения, например xrdp.

Чем FreeRDP отличается от Remmina?

Remmina — графическое приложение для удалённого доступа, которое использует FreeRDP в качестве движка для RDP-подключений. FreeRDP работает из командной строки и даёт более тонкий контроль над параметрами сессии.

Как подключиться, если порт RDP изменён?

Укажите порт прямо в адресе сервера через двоеточие, например: xfreerdp /v:192.168.1.10:3390 /u:username. Предварительно убедитесь, что этот порт открыт на удалённой машине и в промежуточных межсетевых экранах.

Можно ли пробросить локальную папку в удалённую сессию?

Да, для этого служит параметр /drive:имя,/путь/к/папке. Папка появится в удалённой системе как сетевой диск, и вы сможете обмениваться файлами между машинами.

Почему команда из инструкции не работает в моей версии?

Синтаксис параметров различается между версиями FreeRDP 2.x и 3.x. Проверьте установленную версию командой xfreerdp --version и сверьте доступные параметры со справкой xfreerdp --help вашей сборки.