Работа с RDP-подключениями в Linux (FreeRDP)

Заходи, мил человек, посидим, выпьем, закусим, о делах наших скорбных покалякаем.

Честно говоря, в Linux с RDP все обстоит достаточно скверно и почему-то особо ситуация не меняется в лучшую сторону. Хотя какой ужас и кошмар творился раньше это даже и вспоминать не хочется.

Разбираемся с FreeRDP

Единственным адекватным RDP-клиентом на данный момент является FreeRDP и давайте познакомимся с ним, а знакомство по старой схеме начнем с его консольной реализации.

Первым делом установим необходимые пакеты:

# aptitude install freerdp3-x11 freerdp3-wayland

Работать мы будем с третьей версией клиента, она самая свежая и наиболее работоспособная. Самое простое, что мы можем сделать это просто подключиться к удаленному рабочему столу указав адрес, логин пользователя и домен (если у нас конечно Active Directory).

$ xfreerdp3 /v:192.168.5.100 /u:chernousov /d:biopro

Если вы получили ошибку.

[16:03:00:108] [6204:0000183d] [ERROR][com.winpr.sspi.Kerberos] - [kerberos_AcquireCredentialsHandleA]: krb5glue_get_init_creds (Cannot find KDC for realm "BIOPRO" [-1765328230])

Это значит у вас не сконфигурирован Kerberos и можете воспользоваться второй версией клиента или отмотать в середину статьи где я буду рассказывать как правильно все сконфигурировать для работы с Active Directory.

Для второй версии отличий не так уж и много и главное, что все точно будет работать.

# aptitude install freerdp2-x11 freerdp2-wayland

Подключимся и проверим.

$ xfreerdp /v:192.168.5.100 /u:chernousov /d:biopro

Собственно все работает и давайте пробежимся по возможным опциям которые нам жизнь облегчат.

Подключение к удаленному рабочему столу Windows из Linux

Пробрасываем локальный каталог с рабочей станции (/drive:tmp,/tmp/).

$ xfreerdp3 /v:192.168.5.100 /u:chernousov /d:biopro /drive:tmp,/tmp/

Пробрасываем принтер.

Получаем список принтеров:

$ lpstat -a
KyoceraM2040dn принимает запросы с момента Пт 04 апр 2025 15:28:37
KyoceraM2040dn_2 принимает запросы с момента Пт 04 апр 2025 15:28:31
OBuhKyoceraM2040dn принимает запросы с момента Пт 04 апр 2025 15:28:37
OKKyoceraM2040 принимает запросы с момента Пт 04 апр 2025 15:28:32

Проброс принтера (/a:printer,”KyoceraM2040dn”):

$ xfreerdp3 /v:192.168.5.100 /u:chernousov /d:biopro /drive:tmp,/tmp/ /a:printer,"KyoceraM2040dn"
Проброс Linux-принтера по RDP на удаленный рабочий стол

Аналогично можно перенаправить микрофон и кардридер и COM-устройство, но этим редко пользуются и там есть ряд небольших нюансов, что выливается в отдельную статью которая не всем интересна.

Так же из полезных опций можно отметить явное указание размеров окна (/w:800 /h:600) или запуск сразу в полноэкранном режиме (выход из полноэкранного режима ctrl+enter).

$ xfreerdp3 /v:192.168.5.100 /u:chernousov /d:biopro /drive:tmp,/tmp/ /a:printer,"KyoceraM2040dn" /f

Общий буфер обмена между локальной рабочей станцией и удаленным рабочим столом опцией +clipboard.

$ xfreerdp3 /v:192.168.5.100 /u:chernousov /d:biopro /w:1600 /h:1024 +clipboard

Опций очень много и все они есть в подсказке приложения.

$ xfreerdp --help

Так же обратите внимание, что мы можем использовать графическую утилиту для ввода пароля при помощи утилиты zenity.

# apt  install zenity

В общем виде у меня получается вот такая конструкция.

$ xfreerdp3 /v:192.168.5.100 /u:chernousov /d:biopro /p:$(zenity --password --title="Enter FreeRDP password") /w:1600 /h:1024 +clipboard

В KDE можно сделать ссылки на приложения и реализовать ярлыки быстрого доступа если у вас несколько серверов на обслуживании.

Но лучше конечно для этих целей использовать графические оболочки.

Графические обертки для freerdp

Remmina

Очень удобная графическая оболочка для freerdp и не только.

# apt-get install remmina*
GUI-клиент для FreeRDP Remmina

Запуск удаленных приложений RemoteAPP

При помощи FreeRDP мы можем не только подключаться к удаленным рабочим столам, но и запускать удаленные приложения в бесшовном режиме.

В третьей версии FreeRDP Remote APP приложения работают на удивление неплохо. И достаточно просто указать дополнительный ключ который скажет запустить удаленное приложение с сервера в бесшовном режиме (например для запуска 1С добавим ключ /app:program:”||1cestart”).

/usr/bin/xfreerdp3 /v:192.168.5.5 /u:chernousov /d:biopro /p:$(zenity --password --title="Enter FreeRDP password") /cert:ignore +clipboard /app:program:"||1cestart"
Запуск 1С в Linux в режиме Remote APP

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *