Linux. RDP соединение на несколько мониторов, альтернатива Remmina
Довольно давно я столкнулся с проблемой, что в Linux стандартные клиенты удаленного рабочего стола RDP подключаются только в режиме одного монитора. Перепробовал все основные клиенты Remmina, RDesktop — все не поддерживают несколько мониторов.
Так как на работе и дома у меня по два монитора — данное ограничение доставляло много неудобств при работе удаленно под Linux.
Поэтому в итоге я нашел способ подключаться удаленно по RDP из под Linux с подключением нескольких мониторов, а также без непосредственного ввода команд в консоль при каждом подключении.
Для этого требуется следующее:
Во-первых, установить пакет freerdp2-x11
sudo apt-get install freerdp2-x11
Во-вторых, создать файл-скрипт с расширением .sh для удаленного подключения (например «rdpconnect.sh»).
Для обычного подключения
#!/bin/sh
#This script do connect to the RDP server in multiple display mode
#Paste this code to the .sh script-file
#Put your connection parameters in variables
#Save changes and run script
REMOTE_SERVER=’YOURSERVERIP’
USER_NAME=’YOURLOGIN’
USER_PASSWORD=’YOURPASSWORD’
DOMAIN=’YOURDOMAIN’
xfreerdp /v:$REMOTE_SERVER /u:$USER_NAME /p:$USER_PASSWORD /d:$DOMAIN /cert-ignore /multimon /sound:sys:alsa,format:1,quality:high /microphone:sys:alsa,format:1,quality:high +clipboard
Для подключения через шлюз удаленных рабочих столов
#!/bin/sh
#This script do connect to the RDP server with gateway in multiple display mode
#Paste this code to the .sh script-file
#Put your connection parameters in variables
#Save changes and run script
REMOTE_SERVER=’YOURSERVERIP’
USER_NAME=’YOURLOGIN’
USER_PASSWORD=’YOURPASSWORD’
DOMAIN=’YOURDOMAIN’
REMOTE_GATEWAY=’YOURGATEWAY’
xfreerdp /v:$REMOTE_SERVER /u:$USER_NAME /p:$USER_PASSWORD /d:$DOMAIN /cert-ignore /multimon /sound:sys:alsa,format:1,quality:high /microphone:sys:alsa,format:1,quality:high +clipboard /g:$REMOTE_GATEWAY /gu:$USER_NAME /gp:$USER_PASSWORD /gd:$DOMAIN
Когда тело скрипта заполнено — сохраняем файл и выполняем из терминала как
sh rdpconnect.sh
Рекомендую выполнять именно из терминала, так как в таком случае видно какие ошибки возникают.
Для отключения сеанса необходимо нажать комбинацию Ctrl + Alt + Enter и закрыть окно на крестик.
Если возникает ошибка
nla_recv_pdu:freerdp_set_last_error_ex ERRCONNECT_LOGON_FAILURE
rdp_recv_callback: CONNECTION_STATE_NLA — nla_recv_pdu() fail
transport_check_fds: transport->ReceiveCallback() — -1
Проверьте корректность данных учетной записи