RDP для Linux через xfreerdp

Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 806
Стаж: 5 лет 1 месяц
Откуда: Вологодская область
Поблагодарили: 34 раза
Контактная информация:

RDP для Linux через xfreerdp

Сообщение Артём Мамзиков »

Установка
apt-get install freerdp2-x11 freerdp2-shadow-x11 или freerdp

xfreerdp /f /u:ИМЯ-ПОЛЬЗОВАТЕЛЯ /p:ПАРОЛЬ /v:ХОСТ[:ПОРТ]



xfreerdp -h
FreeRDP - Бесплатная реализация протокола удаленного рабочего стола
См. www.freerdp.com для получения дополнительной информации.

Использование: xfreerdp [file] [options] [/v:<server>[:port]]

Синтаксис:
/flag (включает флаг)
/option:<value> (указывает опцию со значением)
+toggle -toggle (включает или отключает переключатель, где '/' является синонимом '+)

/a:<addin>[,<options>] Добавить в
/action-script:<file-name> Сценарий действия
/admin Сеанс администратора (или консоли)
+aero Включить композицию рабочего стола
/app:<path> or ||<alias> Удаленная прикладная программа
/app-cmd:<parameters> Параметры командной строки удаленного приложения
/app-file:<file-name> Файл для открытия удаленным приложением
/app-guid:<app-guid> GUID удаленного приложения
/app-icon:<icon-path> Значок удаленного приложения для пользовательского интерфейса
/app-name:<app-name> Имя удаленного приложения для пользовательского интерфейса
/app-workdir:<workspace path> Путь к рабочей области удаленного приложения
/assistance:<password> Пароль удаленной помощи
/auto-request-control Автоматически запрашивать удаленную помощь входной контроль
+async-channels Включить асинхронные каналы (экспериментальный)
+async-input Включить асинхронный ввод
+async-update Включить асинхронное обновление
/audio-mode:<mode> Режим аудиовыхода
+auth-only Включить только аутентификацию
-authentication Отключить аутентификацию (экспериментально)
+auto-reconnect Включить автоматическое переподключение
/auto-reconnect-max-retries:<retries> Максимальное количество попыток автоматического повторного подключения, 0 для неограниченного [0,1000]
+bitmap-cache Включить кэш растровых изображений
/bpp:<depth> Сессия bpp (глубина цвета)
/buildconfig Распечатать конфигурацию сборки
/cert:[deny,ignore,name:<name>,tofu,fingerprint:<hash>:<hash as hex>
[,fingerprint:<hash>:<another hash>]]
Варианты принятия сертификата. Используйте с осторожностью!
* отрицать ... Автоматически прерывать соединение, если сертификат не совпадение, без взаимодействия с пользователем. *
игнорировать ... Игнорировать сертификат проверяет полностью (отменяет все остальные варианты) * имя
... Используйте альтернативное <имя> вместо сертификата, подлежащего сопоставить локально хранящиеся сертификаты * tofu
... Принять сертификат безоговорочно при первом подключении и отказе при последующих подключениях, если
сертификат не соответствует * отпечатки пальцев
... Список хэшей сертификатов, которые безоговорочно принимается за соединение
/cert-deny [устарело, используйте /cert:deny] Автоматически прервать соединение для любого сертификата, который не может быть подтверждено.

/cert-ignore [устарело, используйте /cert:ignore] Игнорировать сертификат
/cert-name:<name> [устарело, используйте /cert:name:<name>] Имя сертификата
/cert-tofu [устарело, используйте /cert:tofu] Автоматически принимать сертификат при первом подключении
/client-build-number:<number> Номер сборки клиента, отправленный на сервер (влияет на поведение смарт-карты, см. [MS-RDPESC])
/client-hostname:<name> Имя хоста клиента для отправки на сервер
-clipboard Отключить перенаправление буфера обмена
/codec-cache:[rfx|nsc|jpeg] Кэш растрового кодека
-compression Отключить сжатие
/compression-level:<level> Уровень сжатия (0,1,2)
+credentials-delegation Включить делегирование учетных данных
/d:<domain> Домен
-decorations Отключить украшения Windiws
/disp Управление дисплеем
/drive:<name>,<path> Перенаправить каталог <путь> как именованный общий ресурс <имя>. Поддержка горячего подключения включается с помощью /drive:hotplug,*. Этот аргумент обеспечивает ту же функцию, что и параметр «Диски, которые я подключаю позже» в MSTSC.
+drives Включить перенаправление всех точек монтирования как общих ресурсов
/dvc:<channel>[,<options>] Динамический виртуальный канал
/dynamic-resolution Отправлять обновления разрешения при изменении размера окна
/echo Вывод
-encryption Отключить шифрование (экспериментально)
/encryption-methods:[40,][56,][128,][FIPS] Стандартные методы шифрования безопасности RDP
/f Полноэкранный режим (<Ctrl>+<Alt>+<Enter> переключает полноэкранный режим)
-fast-path Отключить быстрый ввод/вывод
+fipsmode Включить режим FIPS
/floatbar[:sticky:[on|off],default:[visible|hidden],show:[always|fullscreen||window]]
По умолчанию панель с плавающей запятой отключена (если она включена, по умолчанию она остается липкой в ​​полноэкранном режиме)
-fonts Отключить гладкие шрифты (ClearType)
/frame-ack:<number> Количество подтверждений кадра
/from-stdin[:force] Чтение учетных данных из стандартного ввода. С <force> подсказка выполняется перед подключением, в противном случае по запросу сервера.
/g:<gateway>[:<port>] Имя хоста шлюза
/gateway-usage-method:[direct|detect] Метод использования шлюза
/gd:<domain> Домен шлюза
/gdi:sw|hw Рендеринг GDI
/geometry Канал отслеживания геометрии
+gestures Включить локальное использование мультисенсорного ввода
/gfx[:[[RFX|AVC420|AVC444],mask:<value>]] Графический конвейер RDP8
/gfx-h264[:[[AVC420|AVC444],mask:<value>]
[DEPRECATED] use /gfx:avc420 instead] Графический конвейер RDP8.1 с использованием кодека H264
+gfx-progressive Включить графический конвейер RDP8 с использованием прогрессивного кодека
+gfx-small-cache Включить графический конвейер RDP8 с использованием режима небольшого кэша
+gfx-thin-client Включить графический конвейер RDP8 с использованием режима тонкого клиента
+glyph-cache Включить кэш глифов (экспериментальный)
/gp:<password> Пароль шлюза
-grab-keyboard Отключить захват клавиатуры
/gt:[rpc|http|auto] Тип транспорта шлюза
/gu:[[<domain>\]<user>|<user>[@<domain>]] Имя пользователя шлюза
/gat:<access token> Токен доступа к шлюзу
/h:<height> Высота
-heartbeat Отключить поддержку пульсирующих PDU
/help Распечатать справку
+home-drive Включить перенаправление пользователя домой как общий ресурс
/ipv6 Предпочитать запись IPv6 AAA записи IPv4 A
/jpeg JPEG поддержка кодеков
/jpeg-quality:<percentage> JPEG качественный
/kbd:0x<id> or <name> Раскладка клавиатуры
/kbd-lang:0x<id> Идентификатор активного языка клавиатуры
/kbd-fn-key:<value> Значение функционального ключа
/kbd-list Список раскладок клавиатуры
/kbd-lang-list Список языков клавиатуры
/kbd-subtype:<id> Подтип клавиатуры
/kbd-type:<id> Тип клавиатуры
/load-balance-info:<info-string> Информация о балансе нагрузки
/log-filters:<tag>:<level>[,<tag>:<level>[,...]] Установите фильтры регистратора, подробности смотрите в wLog(7)
/log-level:[OFF|FATAL|ERROR|WARN|INFO|DEBUG|TRACE] Установите уровень журнала по умолчанию, подробности см. в wLog(7)
/max-fast-path-size:<size> Укажите максимальный размер обновления быстрого пути
/max-loop-time:<time> Укажите максимальное время в миллисекундах обработка пакетов
+menu-anims Включить анимацию меню
/microphone[:[sys:<sys>,][dev:<dev>,][format:<format>,][rate:<rate>,] [channel:<channel>]] Аудиовход (микрофон)
/monitor-list Список обнаруженных мониторов
/monitors:<id>[,<id>[,...]] Выберите мониторы для использования
-mouse-motion Отключить отправку движения мыши
/multimon[:force] Используйте несколько мониторов
+multitouch Включить перенаправление мультисенсорного ввода
+multitransport Включить поддержку мультитранспортного протокола
-nego Отключить согласование безопасности протокола
/network:[modem|broadband|broadband-low|broadband-high|wan|lan|auto] Тип сетевого подключения
/nsc Поддержка NS-кодеков
+offscreen-cache Включить внеэкранный кеш растрового изображения
/orientation:[0|90|180|270] Ориентация дисплея в градусах
+old-license Включите Использовать старый рабочий процесс лицензии (без CAL и hwId, установленного на 0)
/p:<password> Пароль
/parallel[:<name>[,<path>]] Перенаправить параллельное устройство
/parent-window:<window-id> Идентификатор родительского окна
+password-is-pin Включите Использовать аутентификацию с помощью смарт-карты с паролем в качестве PIN-кода смарт-карты.
/pcb:<blob> Большой двоичный объект предварительного подключения
/pcid:<id> Идентификатор предварительного подключения
/pheight:<height> Физическая высота дисплея (в миллиметрах)
/play-rfx:<pcap-file> Воспроизвести pcap-файл rfx
/port:<number> Порт сервера
-suppress-output Отключить подавление вывода при сворачивании
+print-reconnect-cookie Включить печать файлов cookie повторного подключения base64 после подключения
/printer[:<name>[,<driver>]] Перенаправить принтерное устройство
/proxy:[<proto>://][<user>:<password>@]<host>:<port> Настройки прокси: переопределить env. var (см. также переменную среды ниже). Протокол "socks5" должен быть указан явно, где "http" по умолчанию.
/pth:<password-hash> Передайте хэш (ограниченный режим администратора)
/pwidth:<width> Физическая ширина дисплея (в миллиметрах)
/rdp2tcp:<executable path[:arg...]> TCP-перенаправление
/reconnect-cookie:<base64-cookie> Передать файл base64 для повторного подключения файла cookie к соединению
/redirect-prefer:<FQDN|IP|NETBIOS>,[...] Переопределить предпочтительный порядок перенаправления
/relax-order-checks Не проверять, был ли объявлен приказ RDP во время обмена возможностями, использовать только при подключении к глючному серверу
/restricted-admin Ограниченный режим администратора
/rfx Удаленный FX
/rfx-mode:[image|video] Удаленный FX Режим
/scale:[100|140|180] Коэффициент масштабирования дисплея
/scale-desktop:<percentage> Коэффициент масштабирования для настольных приложений (значение от 100 до 500)
/scale-device:100|140|180 Коэффициент масштабирования для приложений магазина приложений
/sec:[rdp|tls|nla|ext] Принудительная защита протокола
+sec-ext Включить расширенную безопасность протокола NLA
-sec-nla Отключить безопасность протокола NLA
-sec-rdp Отключить безопасность протокола RDP
-sec-tls Отключить безопасность протокола TLS
/serial[:<name>[,<path>[,<driver>[,permissive]]]] Перенаправить последовательное устройство
/shell:<shell> Альтернативная оболочка
/shell-dir:<dir> Рабочий каталог оболочки
/size:<width>x<height> or <percent>%[wh] Размер экрана
/smart-sizing[:<width>x<height>] Масштабировать удаленный рабочий стол до размера окна
/smartcard[:<str>[,<str>...]] Перенаправьте устройства со смарт-картами, содержащие любой из <str> в своих именах.
/smartcard-logon Активирует аутентификацию входа с помощью смарт-карты. (ЭКСПЕРИМЕНТАЛЬНО: NLA не поддерживается)
/sound[:[sys:<sys>,][dev:<dev>,][format:<format>,][rate:<rate>,]
[channel:<channel>,][latency:<latency>,][quality:<quality>]] Аудиовыход (звук)
/span Развернуть экран на несколько мониторов
/spn-class:<service-class> Класс службы проверки подлинности SPN
/ssh-agent Канал переадресации агента SSH
/t:<title> Window название
-themes Отключить темы
/timeout:<time in ms> Расширенные настройки для ссылок с высокой задержкой: отрегулируйте время ожидания соединения, используйте, если вы столкнулись с ошибками времени ожидания при подключении.
/tls-ciphers:[netmon|ma|ciphers] Разрешенные шифры TLS
/tls-seclevel:<level> Уровень безопасности TLS — по умолчанию 1
-toggle-fullscreen Отключить Alt+Ctrl+Enter для переключения в полноэкранный режим
/tune:<setting:value>,<setting:value> [экспериментальный] прямое управление настройками freerdp, используйте с особой осторожностью!
/tune-list Параметры печати, разрешенные для /tune
/u:[[<domain>\]<user>|<user>[@<domain>]] Имя пользователя
+unmap-buttons Включить Разрешить серверу видеть кнопку реального физического указателя
/usb:[dbg,][id:<vid>:<pid>#...,][addr:<bus>:<addr>#...,][auto] Перенаправить USB-устройство
/v:<server>[:port] Имя хоста сервера
/vc:<channel>[,<options>] Статический виртуальный канал
/version Версия для печати
/video Канал удаленного взаимодействия, оптимизированный для видео
/vmconnect[:<vmid>] Консоль Hyper-V (используйте порт 2179, отключите согласование)
/w:<width> Ширина
-wallpaper Отключить обои
+window-drag Включить полное перетаскивание окна
/window-position:<xpos>x<ypos> положение окна
/wm-class:<class-name> Установите подсказку WM_CLASS для экземпляра окна
/workarea Используйте доступную рабочую область

Примеры:
xfreerdp connection.rdp /p:Pwd123! /f
xfreerdp /u:CONTOSO\JohnDoe /p:Pwd123! /v:rdp.contoso.com
xfreerdp /u:JohnDoe /p:Pwd123! /w:1366 /h:768 /v:192.168.1.100:4489
xfreerdp /u:JohnDoe /p:Pwd123! /vmconnect:C824F53E-95D2-46C6-9A18-23A5BB403532 /v:192.168.1.100

Перенаправление буфера обмена: +clipboard

Перенаправление диска: /drive:home,/home/user
Перенаправление смарт-карты: /smartcard:<device>
Перенаправление последовательного порта: /serial:<name>,<device>,[SerCx2|SerCx|Serial],[permissive]
Перенаправление последовательного порта: /serial:COM1,/dev/ttyS0
Параллельное перенаправление портов: /parallel:<name>,<device>
Перенаправление принтера: /printer:<device>,<driver>
TCP-перенаправление: /rdp2tcp:/usr/bin/rdp2tcp

Перенаправление аудиовыхода: /sound:sys:oss,dev:1,format:1
Перенаправление аудиовыхода: /sound:sys:alsa
Перенаправление аудиовхода: /microphone:sys:oss,dev:1,format:1
Перенаправление аудиовхода: /microphone:sys:alsa

Перенаправление мультимедиа: /video
Перенаправление USB-устройств: /usb:id:054c:0268#4669:6e6b,addr:04:0c

Для шлюзов учитывается переменная среды https_proxy.:
export https_proxy=http://proxy.contoso.com:3128/
xfreerdp /g:rdp.contoso.com ...

Готовится дополнительная документация, а пока обращайтесь к исходным файлам.
RDP.png
RDP.png
rdp.sh

Код: Выделить всё

#!/bin/bash

# Выбираем экран для вывода графического запроса пользователю
user=`whoami`
if [[ $user == root ]]; then export DISPLAY=:0.0; export XAUTHORITY='/var/run/lightdm/root/:0'; sudop=""; fi

param=$(zenity --forms --width=400 --height=300 --title="Подключение к удаленному рабочему столу" --text="Параметры входа" \
   --separator="|" \
   --add-entry="Компьютер:*" \
   --add-entry="Порт" \
   --add-entry="Домен" \
   --add-entry="Пользователь:*" \
   --add-password="Пароль:*" \
   --add-entry="Полноэкранный режим: 1-ВКЛ" \
   --add-entry="Высота" \
   --add-entry="Ширина" \
   --add-entry="Или % размер экрана" \
   --add-entry="Экран на несколько мониторов: 1-вкл" )

# Разбираем вывод на переменные
IPDNS=$(echo "${param}"| awk -F '|' '{print $1}')
PORTP=$(echo "${param}"| awk -F '|' '{print $2}')
DOM=$(echo "${param}"| awk -F '|' '{print $3}')
USER=$(echo "${param}"| awk -F '|' '{print $4}')
PASS=$(echo "${param}"| awk -F '|' '{print $5}')
FULLSCREENP=$(echo "${param}"| awk -F '|' '{print $6}') #Полноэкранный режим
HEIGHT=$(echo "${param}"| awk -F '|' '{print $7}') #Высота /h
WIDTH=$(echo "${param}"| awk -F '|' '{print $8}') #Ширина /w
PERCENT=$(echo "${param}"| awk -F '|' '{print $9}') # Размер экрана %
SPANP=$(echo "${param}"| awk -F '|' '{print $10}') # Экран на несколько мониторов

# Параметры по умолчанию если не введены другие
PORT=${PORTP:-3389}
DOMEN=${DOM:-test.local}

if [ -n "$FULLSCREENP" ]; then SCREEN="/f" ; else SCREEN="" ; fi #Полноэкранный режим
hostnamep=`hostname`
# Размер экрана: /size:ШиринаxВысота или 90%[wh]
if [ -z "$SCREEN" ]; then
if [ -n "${HEIGHT}" ]; then if [ -n "${WIDTH}" ]; then SCREEN="/size:"${WIDTH}"x"${HEIGHT}""; else SCREEN=""; fi ; else SCREEN=""; fi
# Если указан процент вместо размера
if [ -z "${sizescreen}" ]; then if [ -n "${PERCENT}" ]; then SCREEN="/size:"${PERCENT}"%"; fi ; fi
fi
# Экран на несколько мониторов
if [ -z "$SCREEN" ]; then if [ -n "$SPANP" ]; then SCREEN="/span"; else SCREEN="" ; fi ; fi

# Получение списка принтеров
prints=`lpstat -p|awk -F ' ' '{print $2}'`
# Проверим что принтеры есть
if [ -n "${prints}" ]; then
# Сформируем подстановку нескольких принетеров
for spprinter in $(echo $prints); do printer=$printer"/printer:"${spprinter}" "; done
else printer="" ; fi


# Тест вывода
echo "${param}"
echo xfreerdp /v:"${IPDNS}" /port:"${PORT}" /d:"${DOMEN}" /u:"${USER}" /p:"${PASS}" $SCREEN /client-hostname:$hostnamep /sec:tls +clipboard +home-drive /cert-ignore +auto-reconnect /network:auto +window-drag "${printer}"

# Подключение к RDP
xfreerdp /v:"${IPDNS}" /port:"${PORT}" /d:"${DOMEN}" /u:"${USER}" /p:"${PASS}" $SCREEN /client-hostname:$hostnamep /sec:tls +clipboard +home-drive /cert-ignore +auto-reconnect /network:auto +window-drag
#>~/.rdp.log 2>&1

#/smart-sizing[:<width>x<height>]  Масштабировать удаленный рабочий стол до размера окна
#/monitor-list                     Список обнаруженных мониторов откуда запускаем Пример 2х мониторов: [0] 1280x1024 +0+0 [1] 1280x1024	+1280+0
#/monitors:<id>[,<id>[,...]] /monitors:0,1    Выберите мониторы для использования
#/multimon[:force]                 Используйте несколько мониторов
#/scale:[100|140|180]              Коэффициент масштабирования дисплея
#/scale-desktop:<percentage>       Коэффициент масштабирования для настольных приложений (значение от 100 до 500)
#/scale-device:100|140|180         Коэффициент масштабирования для приложений магазина приложений
#/printer[:<name>[,<driver>]]      Перенаправить принтерное устройство (список имен lpstat -a )
#/serial[:<name>[,<path>[,<driver>[,permissive]]]] Перенаправить последовательное устройство
#/usb:[dbg,][id:<vid>:<pid>#...,][addr:<bus>:<addr>#...,][auto] Перенаправить USB-устройство
#/app:"||iexplore" # При входе запустить iexplore

ЗАПУСК ПРИЛОЖЕНИЙ без рабочего стола

firefox.sh

Код: Выделить всё

#!/bin/sh

xfreerdp +clipboard +home-drive /cert-ignore /size:95% /app:"||firefox" /v:192.168.175.22 /d:test.local /u:$(zenity \
--entry \
--title="Вход в домен" \
--text="Введите имя пользователя (логин)") \
/p:$(zenity \
--entry \
--title="Вход в домен" \
--text="Введите пароль (пароль):" \
--hide-text)
#>~/.firefox.log 2>&1
mibbrowser.sh

Код: Выделить всё

#!/bin/sh

xfreerdp +clipboard +home-drive /cert-ignore /size:95% /app:"||browser" /v:192.168.175.22 /d:test.local /u:$(zenity \
--entry \
--title="Вход в домен" \
--text="Введите имя пользователя (логин)") \
/p:$(zenity \
--entry \
--title="Вход в домен" \
--text="Введите пароль (пароль):" \
--hide-text)
#>~/.mibbrowser.log 2>&1
mindterm.sh

Код: Выделить всё

#!/bin/sh

xfreerdp +clipboard +home-drive /cert-ignore /size:95% /app:"||mindterm" /v:192.168.175.22 /d:test.local /u:$(zenity \
--entry \
--title="Вход в домен" \
--text="Введите имя пользователя (логин)") \
/p:$(zenity \
--entry \
--title="Вход в домен" \
--text="Введите пароль (пароль):" \
--hide-text)
#>~/.vncviewer.log 2>&1
mstsc.sh

Код: Выделить всё

#!/bin/sh

xfreerdp +clipboard +home-drive /cert-ignore /size:95% /app:"||mstsc" /v:192.168.175.22 /d:test.local /u:$(zenity \
--entry \
--title="Вход в домен" \
--text="Введите имя пользователя (логин)") \
/p:$(zenity \
--entry \
--title="Вход в домен" \
--text="Введите пароль (пароль):" \
--hide-text)
#>~/.mstsc.log 2>&1
putty.sh

Код: Выделить всё

#!/bin/sh

xfreerdp  +clipboard +home-drive /cert-ignore /size:95% /app:"||putty" /v:192.168.175.22 /d:test.local /u:$(zenity \
--entry \
--title="Вход в домен" \
--text="Введите имя пользователя (логин)") \
/p:$(zenity \
--entry \
--title="Вход в домен" \
--text="Введите пароль (пароль):" \
--hide-text)
#>~/.putty.log 2>&1
RMS.sh

Код: Выделить всё

#!/bin/sh

# /sec:tls

xfreerdp +clipboard +home-drive /cert-ignore /size:95% /app:"||RMS" /v:192.168.175.22 /d:test.local /u:$(zenity \
--entry \
--title="Вход в домен" \
--text="Введите имя пользователя (логин)") \
/p:$(zenity \
--entry \
--title="Вход в домен" \
--text="Введите пароль (пароль):" \
--hide-text)
#>~/.RMS.log 2>&1
vncviewer.sh

Код: Выделить всё

#!/bin/sh

xfreerdp +clipboard +home-drive /cert-ignore /size:95% /app:"||vncviewer" /v:192.168.175.22 /d:test.local /u:$(zenity \
--entry \
--title="Вход в домен" \
--text="Введите имя пользователя (логин)") \
/p:$(zenity \
--entry \
--title="Вход в домен" \
--text="Введите пароль (пароль):" \
--hide-text)
#>~/.vncviewer.log 2>&1
RDP.zip
RDP.zip
(133.93 КБ) 0 скачиваний
количество слов: 1396

Вернуться в «Linux»