Xrdp-usb: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
 
Строка 2: Строка 2:
{{Attention|Проброс будет работать только в рамках локальной сети, так как требует доступность клиентского компьютера с сервера}}
{{Attention|Проброс будет работать только в рамках локальной сети, так как требует доступность клиентского компьютера с сервера}}


Схема работы подключения usb-устройств через xfreerdp. Все дальнейшие действия выполняются под рутом '''su-'''.
В данной статье рассмотрена процедура настройки подключения USB-устройств через [[Xrdp]].


'''Терминальный сервер - сервер''' <br />
*'''Терминальный сервер (сервер)''' — хост, на котором запущен [[Xrdp]].
'''Терминальный клиент - клиент'''
*'''Терминальный клиент (клиент)''' — хост, к которому подключены USB-устройства, экспортируемые на клиент.
==Сервер==
Перед началом работы, необходимо обновить систему. Обновить систему необходимо как на терминальном сервере (Альт 8 СП), так и на терминальном клиенте (в моем случае это Альт Образование)
# apt-get update
# apt-get dist-upgrade


На терминальном сервере (Альт 8 СП) устанавливаем xrdp-usb-session:
== Настройка сервера ==
# apt-get install xrdp-usb-session
Обновить систему:
 
<syntaxhighlight lang="bash"># apt-get update && apt-get dist-upgrade</syntaxhighlight>
 
Установить пакет {{pkg|xrdp-usb-session}}:
<syntaxhighlight lang="bash"># apt-get install xrdp-usb-session</syntaxhighlight>


xrdp-usb-session для сеанса xrdp-sesman добавляет запуск автоподключения всех USB-устройств с клиента.
xrdp-usb-session для сеанса xrdp-sesman добавляет запуск автоподключения всех USB-устройств с клиента.


Далее, после установки xrdp-usb-session необходимо перезапустить службу xrdp-sesman.
Далее, после установки xrdp-usb-session необходимо перезапустить службу xrdp-sesman:
# systemctl restart xrdp-sesman.service
<syntaxhighlight lang="bash"># systemctl restart xrdp-sesman.service</syntaxhighlight>


==Клиент==
== Настройка клиента ==
Теперь, переходим к терминальному клиенту (В моем случае, Альт Образование).


Как мы уже говорили выше, обновить систему необходимо как на терминальном сервере, так и на клиенте.
Обновить систему:
# apt-get update
<syntaxhighlight lang="bash"># apt-get update && apt-get dist-upgrade</syntaxhighlight>
# apt-get dist-upgrade


Устанавливаем xrdp-usb-terminal:
Установить пакет {{pkg|xrdp-usb-terminal}}:
# apt-get install xrdp-usb-terminal
<syntaxhighlight lang="bash"># apt-get install xrdp-usb-terminal</syntaxhighlight>


А так же, после установки xrdp-usb-terminal, нам необходимо добавить нашего пользователя в группу disk:
После установки {{pkg|xrdp-usb-terminal}}, добавить пользователя в группу disk:
# usermod -a -G disk ''alt-1''
<syntaxhighlight lang="bash"># gpasswd -a alt-1 disk</syntaxhighlight>
Там где ''alt-1'', необходимо ваше имя пользователя
где ''alt-1'' имя пользователя.


Далее, после успешной установки xrdp-usb-terminal и после того, как мы добавили нашего пользователя в группу disk, нам необходимо перезагрузить систему (чтобы загрузились все модули) и запустилась служба usbipd. По умолчанию никакие устройства не передаются. Чтобы они передавались, необходимо отредактировать файл xrdp-usb.
После успешной установки {{pkg|xrdp-usb-terminal}} и добавления пользователя в группу disk, необходимо перезагрузить систему (чтобы загрузились все модули и запустилась служба usbipd).


Первым делом в терминале с помощью команды lsusb смотрим идентификаторы.
По умолчанию никакие устройства не передаются. Чтобы они передавались, необходимо отредактировать файл {{path|/etc/xrdp-usb}}:
# В терминале с помощью команды {{cmd|lsusb}} просмотреть идентификаторы устройств.
[[Файл:Lsusb.png]]
#: [[Файл:Lsusb.png]]
# Из полученного вывода следует выбрать ID-устройства, которое необходимо пробрасывать, и добавить нужный идентификатор (в примере это ''13fe:4300'') в файл {{path|/etc/xrdp-usb}}:
#:[[Файл:Etc-xrdp-usb.png]]


Необходимые для нас данные на скриншоте сверху это идентификатор (в нашем случае это ID 13fe:4300). Теперь нам нужно добавить его в файл /etc/xrdp-usb
Можно указать сколько угодно идентификаторов, но необходимо быть осторожным с идентификаторами мыши и клавиатуры. Если они будут проброшены, то они не будут доступны на локальной системе.
# vim /etc/xrdp-usb


[[Файл:Etc-xrdp-usb.png]]
== Проброс ==


Указывать можно сколько угодно идентификаторов, но необходимо быть осторожным с идентификаторами мыши и клавиатуры. Если они будут проброшены, то они не будут доступны на локальной системе.
Для подключения к серверу, на клиентском компьютере должен быть установлен клиент удаленного доступа. Для подключения к серверу терминалов можно использовать программы удаленного доступа xfreerdp, Remmina, Connector и т.д. Перед подключением необходимо на клиенте выполнить команду {{cmd|usbip-export}}:
<syntaxhighlight lang="bash">$ usbip-export
EXPORT USB 13fe:4300 (3-2)
usbip: info: unbind device on busid 3-2: complete
usbip: info: bind device on busid 3-2: complete</syntaxhighlight>


==Проброс==
На терминальный сервер (Альт 8 СП) необходимо установить openuds-client. Openuds при подключении самостоятельно экспортирует указанные устройства.


Для того, чтобы обратиться к терминальному серверу (через Remmina или xfreerdp), то перед подключением необходимо '''на клиенте''' запустить программу usbip-export.
Далее, со стороны клиента подключаемся к терминальному серверу, например:
<syntaxhighlight lang="bash">$ xfreerdp /v:192.168.0.104 /u:user /p:password</syntaxhighlight>


Далее, со стороны клиента подключаемся к терминальному серверу:
Окно подключения к удаленному рабочему столу с проброшенным USB-устройством:


# usbip attach -r 192.168.0.1 -b 3-2
[[Файл:Freerdp-usb.png|FreeRDP. Подключение к удаленному рабочему столу]]


*Ключ -r указывает ip-адрес терминального сервера
*Ключ -b указывает идентификатор устройства, который мы отредактировали в файле /etc/xrdp-usb, а так же, который был подтвержден посредством команды usbip-export
   
   
При ошибках связанных с подключением, рекомендуется проверить настройки брандмауэра и проверить соответствие версий приложения usbip
При ошибках связанных с подключением, рекомендуется проверить настройки брандмауэра и проверить соответствие версий приложения {{pkg|usbip}}.
 
[[VDI/OpenUDS|Openuds]] при подключении самостоятельно экспортирует указанные устройства. На терминальном сервере при этом должен быть установлен пакет {{pkg|openuds-client}}.


{{Category navigation|title=Терминальный сервер|category=Терминальный сервер|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=Терминальный сервер|category=Терминальный сервер|sortkey={{SUBPAGENAME}}}}

Текущая версия от 18:45, 6 февраля 2023

Данный компонент пробрасывает широкий спектр устройств, начиная от USB-веб-камер, до USB-токенов и смарт-карт.

Внимание! Проброс будет работать только в рамках локальной сети, так как требует доступность клиентского компьютера с сервера


В данной статье рассмотрена процедура настройки подключения USB-устройств через Xrdp.

  • Терминальный сервер (сервер) — хост, на котором запущен Xrdp.
  • Терминальный клиент (клиент) — хост, к которому подключены USB-устройства, экспортируемые на клиент.

Настройка сервера

Обновить систему:

# apt-get update && apt-get dist-upgrade

Установить пакет xrdp-usb-session:

# apt-get install xrdp-usb-session

xrdp-usb-session для сеанса xrdp-sesman добавляет запуск автоподключения всех USB-устройств с клиента.

Далее, после установки xrdp-usb-session необходимо перезапустить службу xrdp-sesman:

# systemctl restart xrdp-sesman.service

Настройка клиента

Обновить систему:

# apt-get update && apt-get dist-upgrade

Установить пакет xrdp-usb-terminal:

# apt-get install xrdp-usb-terminal

После установки xrdp-usb-terminal, добавить пользователя в группу disk:

# gpasswd -a alt-1 disk

где alt-1 — имя пользователя.

После успешной установки xrdp-usb-terminal и добавления пользователя в группу disk, необходимо перезагрузить систему (чтобы загрузились все модули и запустилась служба usbipd).

По умолчанию никакие устройства не передаются. Чтобы они передавались, необходимо отредактировать файл /etc/xrdp-usb:

  1. В терминале с помощью команды lsusb просмотреть идентификаторы устройств.
    Lsusb.png
  2. Из полученного вывода следует выбрать ID-устройства, которое необходимо пробрасывать, и добавить нужный идентификатор (в примере это 13fe:4300) в файл /etc/xrdp-usb:
    Etc-xrdp-usb.png

Можно указать сколько угодно идентификаторов, но необходимо быть осторожным с идентификаторами мыши и клавиатуры. Если они будут проброшены, то они не будут доступны на локальной системе.

Проброс

Для подключения к серверу, на клиентском компьютере должен быть установлен клиент удаленного доступа. Для подключения к серверу терминалов можно использовать программы удаленного доступа xfreerdp, Remmina, Connector и т.д. Перед подключением необходимо на клиенте выполнить команду usbip-export:

$ usbip-export
EXPORT USB 13fe:4300 (3-2)
usbip: info: unbind device on busid 3-2: complete
usbip: info: bind device on busid 3-2: complete


Далее, со стороны клиента подключаемся к терминальному серверу, например:

$ xfreerdp /v:192.168.0.104 /u:user /p:password

Окно подключения к удаленному рабочему столу с проброшенным USB-устройством:

FreeRDP. Подключение к удаленному рабочему столу


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

Openuds при подключении самостоятельно экспортирует указанные устройства. На терминальном сервере при этом должен быть установлен пакет openuds-client.