FreeRDP: как пользоваться и подключаться к удалённому рабочему столу

Команда xfreerdp /v:192.168.1.10 /u:admin выдаёт ошибку сертификата или чёрный экран вместо рабочего стола — типичная точка входа для тех, кто впервые настраивает FreeRDP. Причина чаще всего не в самой программе, а в отсутствии обязательных параметров: не указан пароль, не отключена проверка сертификата или сервер Windows требует аутентификацию на уровне сети (NLA). Разобраться в этом проще, чем кажется.

FreeRDP — это свободная реализация протокола RDP (Remote Desktop Protocol) для Linux, macOS и других систем. С её помощью можно подключаться к удалённым рабочим столам Windows без установки платных клиентов. В статье разберём установку, базовые команды, проброс локальных ресурсов и типичные ошибки.

Что такое FreeRDP и когда он нужен

FreeRDP — открытый проект, который реализует клиентскую часть протокола Microsoft RDP. Основная утилита называется xfreerdp и работает из командной строки, хотя существуют и графические обёртки вроде Remmina, которые используют FreeRDP «под капотом».

Инструмент полезен в нескольких сценариях:

  • 🖥️ подключение с Linux-машины к серверу или ПК на Windows;
  • 🔧 администрирование удалённых систем из терминала и скриптов;
  • 📁 проброс локальных папок, буфера обмена и звука в удалённую сессию;
  • ⚙️ тонкая настройка параметров RDP, недоступных в простых GUI-клиентах.

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

Установка FreeRDP

В большинстве дистрибутивов Linux пакет доступен в штатных репозиториях. Название пакета может отличаться: где-то это freerdp, где-то freerdp2-x11 или freerdp3-x11. Проверить актуальное имя можно поиском по пакетному менеджеру вашей системы.

# Debian / Ubuntu

sudo apt install freerdp2-x11

Fedora

sudo dnf install freerdp

Arch Linux

sudo pacman -S freerdp

После установки проверьте версию командой xfreerdp --version. Обратите внимание: синтаксис параметров во второй и третьей версиях FreeRDP заметно отличается — об этом подробнее ниже. Если команда не находится, уточните имя бинарного файла: в некоторых сборках он называется xfreerdp3.

Базовое подключение: синтаксис и параметры

Минимальная команда подключения выглядит так: нужно указать адрес сервера, имя пользователя и пароль. В версии FreeRDP 2.x параметры пишутся через слэш, в 3.x — также через слэш, но часть имён параметров изменилась, поэтому всегда сверяйтесь с выводом xfreerdp --help вашей версии.

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

Ключевые параметры, которые понадобятся чаще всего:

  • 🌐 /v:адрес — IP или имя сервера, к которому подключаемся;
  • 👤 /u:имя и /p:пароль — учётные данные (пароль лучше не хранить в истории команд, можно опустить и ввести интерактивно);
  • 📐 /size:1920x1080 или /f — разрешение окна либо полноэкранный режим;
  • 🔐 /cert:ignore — игнорировать ошибки самоподписанного сертификата;
  • 📋 +clipboard — общий буфер обмена между системами.
⚠️ Внимание: указывать пароль прямо в команде небезопасно — он остаётся в истории shell и виден в списке процессов. Опустите /p:, и клиент запросит пароль интерактивно.

☑️ Первое подключение через FreeRDP

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

Проброс папок, звука и буфера обмена

Одно из главных преимуществ FreeRDP — гибкий проброс локальных ресурсов в удалённую сессию. Чтобы передать локальную папку, используется параметр /drive: внутри Windows она появится как сетевой диск.

xfreerdp /v:192.168.1.10 /u:admin \

/drive:shared,/home/user/Documents \

+clipboard /sound /microphone

Здесь /drive:shared,путь монтирует каталог под именем «shared», +clipboard включает общий буфер обмена, а /sound и /microphone перенаправляют аудио. В FreeRDP 3.x синтаксис звука может отличаться (например, /sound:sys:alsa или через PulseAudio) — уточняйте в справке вашей версии.

Если буфер обмена не работает, проверьте, что на стороне Windows не запрещено перенаправление групповыми политиками, и что вы не забыли плюс перед параметром: +clipboard включает, а -clipboard отключает функцию.

📊 Для чего вы используете FreeRDP?
Подключение с Linux к рабочему Windows-ПК
Администрирование серверов
Автоматизация и скрипты
Только изучаю инструмент

Различия синтаксиса FreeRDP 2.x и 3.x

При переходе с версии 2 на версию 3 разработчики изменили часть параметров, поэтому старые команды из интернет-инструкций могут не работать. Вот основные отличия, о которых стоит знать:

ЗадачаFreeRDP 2.xFreeRDP 3.x
Игнор сертификата/cert-ignore/cert:ignore
Размер окна/size:1920x1080/size:1920x1080
Проброс диска/drive:имя,путь/drive:имя,путь
Буфер обмена+clipboard+clipboard
Звук/sound/sound:sys:имя (зависит от сборки)

Точный список поддерживаемых опций зависит от сборки и версии, поэтому надёжный способ — выполнить xfreerdp --help и найти нужный параметр там. Это займёт минуту, но избавит от гаданий.

Как узнать версию и список параметров

Выполните xfreerdp --version для проверки версии. Полный список опций выводится командой xfreerdp --help. В некоторых дистрибутивах бинарный файл называется xfreerdp3 или wlfreerdp (для Wayland) — проверьте, какой именно установлен у вас.

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

Самая частая проблема — ошибка проверки сертификата с сообщением вроде certificate verification failed. Она возникает потому, что Windows использует самоподписанный сертификат. Для домашней сети это решается параметром /cert:ignore; в рабочей среде лучше добавить сертификат в доверенные, а не отключать проверку.

Вторая распространённая ситуация — отказ в подключении из-за NLA (Network Level Authentication). Если сервер требует NLA, а аутентификация не проходит, проверьте правильность домена в имени пользователя: иногда нужен формат /u:DOMAIN\user или /u:user@domain.

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

Чёрный экран после подключения часто связан с графическими настройками. Попробуйте добавить /gfx или, наоборот, отключить аппаратное ускорение, а также сменить глубину цвета параметром /bpp:16. Если ничего не помогает — запустите клиент с подробным логом: xfreerdp ... /log-level:DEBUG и изучите вывод.

Полезные советы для ежедневной работы

Чтобы не вводить длинную команду каждый раз, сохраните её в shell-алиас или скрипт. Например, добавьте в ~/.bashrc строку alias workrdp='xfreerdp /v:192.168.1.10 /u:admin /size:1920x1080 +clipboard' — и подключение будет запускаться одной короткой командой.

Для выхода из полноэкранного режима используется сочетание клавиш, которое можно переопределить; по умолчанию во многих сборках это Ctrl+Alt+Enter. Если сочетание не срабатывает, проверьте справку вашей версии — поведение может отличаться.

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

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

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

Укажите порт через двоеточие вместе с адресом: xfreerdp /v:192.168.1.10:3390 /u:user. Убедитесь, что порт открыт в брандмауэре сервера.

Почему не работает буфер обмена?

Проверьте, что в команде есть +clipboard, а на стороне Windows перенаправление буфера не запрещено групповыми политиками. Также перезапустите процесс rdpclip.exe на удалённой машине — иногда он «зависает».

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

Используйте параметр /drive:имя,/путь/к/папке. Внутри Windows папка появится в разделе «Этот компьютер» как сетевой диск с указанным именем.

Чем xfreerdp отличается от wlfreerdp?

xfreerdp работает в графическом окружении X11, а wlfreerdp — в Wayland. Выбор зависит от того, какая графическая сессия используется в вашей системе; синтаксис параметров у них общий.

Безопасно ли хранить пароль в команде подключения?

Нет: пароль в параметре /p: остаётся в истории shell и виден другим процессам. Безопаснее опустить пароль и вводить его интерактивно либо использовать менеджер паролей и внешние скрипты с ограниченными правами доступа.