Проброс USB-диска в виртуальную машину Hyper-V. Использование бесплатного пакета USBIP для проброса USB внутрь виртуальных машин.

  • 30.05.2019

На сегодняшний день существет довольно много способов пробросить USB-устройство на другой компьютер или виртуалку по сети.
Из наиболее популярных - железячные такие как AnywhereUSB и чисто програмные продукты, из тех что я попробовал сам: USB Redirector и USB/IP.
Я бы хотел рассказать вам еще об одном интересном способе, который работает непосредственно с эмулятором QEMU.
Он так же является частью проекта spice, официально поддерживаемым RedHat.

UsbRedir, это открытый протокол для проброса usb-устройств по tcp на удаленный виртуальный сервер, разработанный при поддержке RedHat в рамках проекта spice. Но как оказалось им можно вполне успешно пользоваться и без spice. В роли сервера выступает usbredirserver, который шарит usb-устройство на определенный порт, а в качестве клиента сам QEMU, который эмулирует подключение экспортированного usb-устройства в определенный usb-контроллер вашей виртуальной машины. Благодаря такому подходу в качестве гостевой системы может использоваться абсолютно любая ОС, так как она даже не знает, что устройство является проброшенным удаленно, а вся логика ложится на QEMU.

Для начала несколько слов о вышеперчисленных решениях

  • AnywhereUSB - довольно неплохое решение, но дорогое, и имеет неприятние глюки, например бывает если расшаренная флешка отваливается, то переподключить ее обратно можно только физически вынув и вставив ее.
  • USB/IP - OpenSource проект. Вроде как был заброшен. По факту глючит довольно сильно. При разрыве соединения, машина частенько уходит в полнейший freezee, а windows показывает BSOD
  • USB Redirector - Замечательная софтина. Для расшаривания устройств с linux на linux бесплатна, во всех остальных случаях уже стоит денег, не так много как AnywhereUSB, но и не бесплатно как хотелось бы:)
Как видно есть из чего выбрать, но давайте же наконец попробуем еще один способ - UsbRedir?

Настройка виртуальной машины

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

  • uhci - для USB1.0
  • ehci - для USB2.0
  • xhci - для USB3.0
Для qemu (без libvirt)

Добавьте опции в команду запуска виртуальной машины:
-device ich9-usb-ehci1,id=ehci,addr=1d.7,multifunction=on -device ich9-usb-uhci1,id=uhci-1,addr=1d.0,multifunction=on,masterbus=ehci.0,firstport=0 -device ich9-usb-uhci2,id=uhci-2,addr=1d.1,multifunction=on,masterbus=ehci.0,firstport=2 -device ich9-usb-uhci3,id=uhci-3,addr=1d.2,multifunction=on,masterbus=ehci.0,firstport=4

Для libvirt
В исходном файле конфигурации виртуальной машины в узле <devices> удаляем все USB контроллеры и добавляем следущий блок:

Кстати, если вы используете spice, то добавив к контроллерам еще 3 специальных девайса, станет возможен проброс usb-устройств с клиента spice на сервер.

Пример под спойлером

Для qemu
Добавляем следующие опции в команду запуска виртуальной машины, помимо контроллеров определеных нами раньше:
-chardev spicevmc,name=usbredir,id=usbredirchardev1 -device usb-redir,chardev=usbredirchardev1,id=usbredirdev1,debug=3 -chardev spicevmc,name=usbredir,id=usbredirchardev2 -device usb-redir,chardev=usbredirchardev2,id=usbredirdev2,debug=3 -chardev spicevmc,name=usbredir,id=usbredirchardev3 -device usb-redir,chardev=usbredirchardev3,id=usbredirdev3,debug=3
Для libvirt
В исходном файле конфигурации виртуальной машины в узле <devices> добавляем следующие опции, помимо контроллеров определеных нами раньше:

Теперь все готово для осуществления проброса.

Запуск сервера

Пакет usbredirserver можно найти в стандартных репозиториях практически во всех популярных дистрибутивах linux.

Вставляем флешку в компьютер, смотрим вывод usb-устройств:
$ lsusb ... Bus 003 Device 011: ID 125f:c82a A-DATA Technology Co., Ltd. ...

Видим что пара vendorid:prodid равна 125f:c82a, а ядро определило флешке 003-001 usbbus-usbaddr соотвественно.

Теперь давайте расшарим ее на 4000 порт:

# Используя пару vendorid:prodid $ usbredirserver -p 4000 125f:c82a # Используя пару usbbus-usbaddr $ usbredirserver -p 4000 003-011

Подключение устройства к виртуальной машине

Через опции при запуске ВМ

Устройство которое нужно подключить к ВМ можно указать при запуске, добавив следующие опции в команду запуска

Для qemu
-chardev socket,id=usbredirchardev1,port=4000,host=192.168.1.123 -device usb-redir,chardev=usbredirchardev1,id=usbredirdev1,bus=ehci.0,debug=4
Для libvirt
Этот блок рамещается перед тегом </devices> , рядом с контроллерами определенными нами раньше:
Его так же можно исполнить командой virsh attach-device

Или через qemu-monitor

Заходим на гипервизор и в qemu-monitor нашей машины выполняем следующие команды:
# Добавляем наше устройство chardev-add socket,id=usbredirchardev1,port=4000,host=192.168.1.123 # Подключем его в ehci контроллер (USB-2.0) device_add usb-redir,chardev=usbredirchardev1,id=usbredirdev1,bus=ehci.0,debug=4
Что бы отключить флешку достаточно такой команды:
device_del usbredirdev1

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

Если устройств много и все они одинаковые

Вот тут появилась интересная задачка, как пробросить несколько одинаковых девайсов на разные ВМ?
При этом, стоит отметить, все устройства имеют одинаковую пару vendorid:prodid, а пара usbbus-usbaddr совсем не постоянна, стоит только вынуть и вставить устройство, так оно сразу поменяет свой usbaddr.

Я решил ее при помощи udev.
Кстати если вы не совсем понимаете как работает udev, на Debian Wiki есть классная

И так приступим

Для начала нам надо узнать серийник нашего устройства, по которому и будем идентифицировать его в udev:

Запустим udev-монитор:
$ udevadm monitor --environment --udev
И вставим наше устройство, после этого мы сразу увидим список переменных этого устройства которые udev любезно инициализировал для нас:
... UDEV add /devices/virtual/bdi/8:16 (bdi) ACTION=add DEVPATH=/devices/virtual/bdi/8:16 ID_SERIAL_SHORT=11C130317234004B SEQNUM=4352 SUBSYSTEM=bdi USEC_INITIALIZED=189056149826 ...
Информацию о серийнике и других аттрибутах можно получить и другим способом, но стоит учитывать что для написания правил мы будем использовать именно переменные из команды выше, а не аттрибуты из команды ниже. В противном случае не будет отрабатывать триггер remove при отключении устройства.
$ udevadm info -a -n /dev/bus/usb/003/011 | grep "{serial}"

Теперь создадаим файл /etc/udev/rules.d/99-usb-serial.rules и запишем в него следующие правила:
ACTION=="add", ENV{ID_SERIAL_SHORT}="11C130317234004B", RUN+="/usr/bin/usbredirserver -p 4000 $attr{busnum}-$attr{devnum}" ACTION=="remove", ENV{ID_SERIAL_SHORT}="11C130317234004B", RUN+="/usr/bin/fuser -k 4000/tcp"

Перезагрузим udev-правила:
$ udevadm control --reload-rules
Готово, теперь при подключении нашего устройства, оно будет автоматически шарится на нужный нам порт, а при отключении usbredirserver будет прекращать свою работу.
По аналогии добавляем и остальные устройства.

На этом все. Спасибо за проявленный интерес:)

Добрый день, амигос, рад что ты заглянул ко мне на сайт, сегодня мы рассмотрим такой вопрос, как организовать usb по сети и как это использовать в виртуализации. Тема довольно актуальная, и встречается такая задача все чаще.

usb через сеть

Как вы уже знаете в нашу жизнь, давно и на долго вошла виртуализация . Мощности серверов растут, и естественно появились технологии рационального их использования, подразумевающие изоляцию и нормальную утилизацию ресурсов, что породило виртуальные машины , которые уже используют и на хостингах и дата центрах. Я уже рассказывал про все это, если интересно посмотрите по ссылкам слева и выше.

Как вы знаете иногда некоторые лицензионные программы, требую для работы usb ключ. Раньше в классическом варианте, когда были только физические сервера, с работой такой схемы проблем не было, но с появление виртуализации она выплыла на ружу.

К сожалению, у некоторых гипервизоров, нет возможности пробрасывать на прямую с сервера USB устройства. Примером может служить Hyper-V от компании Microsoft, который с 208 года до сих пор не несет в себе такую возможность, в отличии от компании vMvare, которая это позволяет и я уже рассказывал как пробросить USB модем в vmware esxi .

Не спешите расстраиваться, адепты редмондсого гиганта, на выручку вам приходит технология USB over IP или AnywhereUSB. USB over IP позволяет подключить usb через сеть .

AnywhereUSB это небольшой сетевой usb хаб. Ниже примерные модели, представленные на рынке.

  • AnywhereUSB /2 – 2 порта USB


  • AnywhereUSB/ 5 – 5 портов USB


  • AnywhereUSB /14 – 14 портов USB



Настройка AnywhereUSB

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

Вот как это будет выглядеть.


Для настройки и управления устройством предусмотрено несколько интерфейсов:
Web интерфейс для настройки, мониторинга и администрирования;
• AnywhereUSB утилита конфигурирования;
• Telnet Command-Line Interface;
• Simple Network Management Protocol (SNMP).

Для настройки устройства рассмотрим Web интерфейс - как наиболее удобный и простой вариант.

Управление IP адресом

Существует несколько вариантов присвоения IP адреса AnywhereUSB:
• Статический IP;
• Динамическое присвоение IP - Using Dynamic Host Configuration Protocol (DHCP);
• Auto Private IP Addressing (APIPA), наиболее известен как Auto-IP;

Как понимаете самый правильный способ это статический ip адрес. Задается он в пункте Network Configuration.


В этом же мню очень удобно задавать сетевые службы, доступные на нем.



На вкладке Conection Management можно посмотреть текущие подключения.



Теперь, что дальше нужно сделать на виртуальной машине, тут все до безобразия логично, нужно поставить там драйвера от AnywhereUSB и задать ip адрес устройства. Как видите я уже подключил ее и у нее есть внутренний Ip адрес.


С помощью специальной утилиты, Anywhere View можно проверить доступность и занятость всех устройств. Пожалуй это самый простой и надежный метод проброса токенов, флешек и различных модемов в ваши виртуальные машины, сами устройства стоят по разному, но если вы уж потратились на софт и гипервизоры, думаю при необходимости купите и это:).


Один из читателей блога — Vovets666 опробовал бесплатное ПО USBIP и предложил написать про него статью.

Дисклаймер:
все описанное ниже – мое личное видение проблемы и способов ее решения, не являющееся истиной в последней инстанции. Вполне возможно, существуют и другие варианты, я с удовольствием про них послушаю. В качестве инструкции по работе с ПО использованы материалы, найденные в интернете, уже и не помню где… Кроме того, являясь админом — виндузятником, с Linux я знаком довольно поверхностно, работал в условиях дедлайна и времени на изучение матчасти/танцы с бубнами особо много не имел, поэтому описываю, как сделал, чтобы работало, и уверен, что есть и другие способы.

Итак, имеем виртуальные машины — серверы 1С, поднятые на MSWindowsServer 2008R2. Для работы ПО необходимы подключенные к ним серверные HASP-ключи. Непосредственно подключить их на ВМ на Hyper-V, как известно, нельзя. Задача: каким-то образом пробросить HASP-ключи на виртуальные машины, желательно с использованием минимума дополнительного железа и стоимости лицензий.

(Оффтоп: у 1С в последнее время появилась возможность программного лицензирования ПО, без использования HASP-ключей (что-то вроде активации с использование пин-кодов). Но есть нюансы: обмен на лицензию с программной активацией не бесплатный, при изменении конфигурации машины необходима повторная активация, по истечении определенного лимита разрешение на активацию остается на усмотрение техподдержки, что совсем не айс. Посему было решено использовать старый способ с HASP-ключами).

Рассматривались варианты:

— способ, предоставляемый компанией Микрософт (правда, для других целей):
RemoteFX+RDP7.1. Не устроил по причинам: необходимо оборудование с поддержкой RemoteFX, на сервере 1С должны быть подняты дополнительные сервисы (служба доступа к удаленному рабочему столу), с хоста на виртуалку должна постоянно висеть сессия RDP, через которую пробрасывается ключ, необходима клиентская лицензия на доступ к RDS. Возможно, в каком-либо из пунктов этого списка я и ошибаюсь, но общее их количество зарубило способ на корню.

— аппаратные устройства сторонних производителей. Недостатки: стоят денег, к тому же у некоторых устройств наблюдались проблемы с совместимостью с используемыми ОС (к примеру,Ubox 4100, который у нас есть) и которые производитель решать не собирался. Сейчас проблемы вроде как решены (в других моделях), но осадок остался.

— ПО сторонних производителей. Недостатки: требуют наличия отдельной машины для работы в качестве сервера USB-устройств и, как правило, платные. После поиска
приемлемого софта оказалось, что из всего обнаруженного ПО бесплатным для коммерческого применения является только пакет USBIP. На нем и остановился.

Сама по себе установка и настройка ПО больших проблем не вызвала, в комплекте к пакету имелся краткий мануал, плюс – интернет.

Пакет USBIP () для работы требует наличия 2х настроенных машин: сервера (к нему непосредственно подключается ключ) и клиента (на него этот ключ пробрасывается). Серверная
часть USBIP существует только под Linux, клиентская – под Linux и Windows (включая 7 и 2008R2).

1) Установка сервера (машины, в которую подключено USB устройство).

В качестве сервера используем машину с установленным Linux. Я использовал Linux Ubuntu v.11.04 (сборка Lubuntu, которая декларируется как наименее требовательная к ресурсам) как наиболее простую (для меня) систему: ставится без каких-либо проблем, автоматически подцепляет новые подключаемые USB устройства, после установки по умолчанию инсталлированы необходимые компоненты, кроме того, USBIP присутствует в репозитарии. С целью экономии на оборудовании эта машина создана как виртуальная, поднятая на существующем хосте ESXi 4.1 и в нее в свою очередь проброшен ключ HASP с хоста стандартным для ESXi способом.

Установка проблем не вызвала: ставим систему, подключаем к сети, выдаем IP, через менеджер пакетов устанавливаем USBIP и необходимые для работы компоненты. Кроме того были установлены VMware tools (так как данная машина – ВМ на ESXi).

На всякий случай напомню, как это делается:

Из оснастки VMware подключаем диск с ПО (Inventory -> Virtual Machine -> Guest -> Install/Upgrade VMware Tools). С этого диска распаковываем архив с ПО на рабочий стол. Запускаем терминал и в нем набираем:

<имя пользователя>@<имя машины>:~$ sudo <путь до файла>\vmware-install.pl —default

2) Настройка сервера USB ключей.

Запускаем терминал. Дальнейшие действия – из командной строки.

· Загружаем следующие модули.

<имя пользователя>@<имя машины>:~$ sudo modprobe usbip

<имя пользователя>@<имя машины>:~$ sudo modprobe usbip_common_mod

· Запускаем usbip в качестве системного демона:

<имя пользователя>@<имя машины>:~$ sudo usbipd D

получаем:

Bind usbip.ko to a usb device to be exportable!

<имя пользователя>@<имя машины>:~$

Внимание! Необходимо сначала запустить демон, а лишь затем подключать устройства, иначе могут возникнуть ошибки на клиенте при подключении. (см. примечания)

· Для просмотра подключенных USB устройств выполняем команду

<имя пользователя>@<имя машины>:~$ lsusb

получаем список подключенных USB устройств с их идентификаторами вида:

Bus XXX Device YYY: ID VendorID:DeviceID < название устройства >

что-то вроде:

Bus 002 Device 004: ID 0529:0001 Aladdin Knowledge Systems HASP v0.06

Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Запоминаем сочетание VendorID:DeviceID

· Выполняем команду:

<имя пользователя>@<имя машины>:~$ sudo usbip_bind_driver —list

USBIP проверяет список подключенного оборудования и выводит его с указанием их bus-ID вида:

— busid 2-1 (0529:0001)

2-1:1.0 -> none

— busid 2-2 (0e0f:0002)

2-2:1.0 -> hub

……..

В данном случае bus-ID, указывающий на нужное нам USB устройство: «2-1».

· Теперь подключаем устройство к серверу. Набираем:

<имя пользователя>@<имя машины>::~$ sudo usbip_bind_driver —usbip 2-1

получаем:

** (process:1483): DEBUG: 2-1:1.0 -> none

** (process:1483): DEBUG: write «add 2-1» to /sys/bus/usb/drivers/usbip/match_busid

** Message: bind 2-1 to usbip, complete!

Устройство подключено к USBIP, доступ с локальной машины-сервера к нему теряется.

· Также можно посмотреть, какие устройства подключены к USBIP в данный момент. Для этого набираем:

<имя пользователя>@<имя машины>:~$ sudo usbip_bind_driver —list

Получаем:

— busid 2-1 (0529:0001)

2-1:1.0 — > usbip

— busid 2-2 (0e0f:0002)

2-2:1.0 -> hub

Устройство с bus-ID 2-1 подключено к USBIP. Система может передавать данные об этом USB устройстве с вашей системы удаленным клиентам.

Настройка сервера закончена. В случае необходимости можно добавлять и убирать
экспортируемые устройства.

Параметры USBIP – linux сервера Usage: usbip_bind_driver

-?, —help вызов
справки
—usbip busid make a device exportable
-other busid use a device by a local
driver
—list print usb devices and their
drivers
—list2 print usb devices and their
drivers in parseable mode
—allusbip make all devices exportable

3) Настройки клиента MS Windows

· Скачиваем дистрибутив. Нам понадобятся обе версии – 0.1 и 0.2.

· Устанавливаем USB/IPEnumenator. Он устанавливается как произвольное системное устройство с драйверами на диске. Драйвера берем из дистрибутива версии 0.2:

Для Windows XP:

1. Распаковываем файлы в локальную папку.

2. В Панели Управления жмем «Установка Оборудования», в открывшемся Окне Приветствия Мастера жмем «Далее».

3. Выбрать «Да, устройство уже подсоединено» -> «Далее».

4. Выбрать «Добавление нового устройства»-> «Далее».

5. Выбрать «Установка оборудования, выбранного из списка вручную» -> «Далее».

7. Выбрать «Установить с диска», -> «Просмотр», выбрать папку с разархивированным драйвером -> «ОК».

9. «Мастер готов к установке нового оборудования» -> Выбрать «Далее» -> Готово».

Для Window 7 (и 2008r2):

1. Для разрешения установки неподписанных драйверов: запускаем cmd от
администратора и выполняем «bcdedit /settestsigningon».

2. Распаковываем файлы в локальную папку..

3. Открываем «Диспетчер Устройств».

4. Правой кнопкой на «имя компьютера» -.«Установить старое устройство» (или выбрать в меню «Действие»).

5. В открывшемся Окне Приветствия Мастера жмем «Далее».

6. Выбрать «Установка оборудования, выбранного из списка вручную» -> «Далее».

8. Выбрать «Установить с диска», -> «Просмотр», выбрать папку с разархивированным драйвером -> «ОК».

10. «Мастер готов к установке нового оборудования» -> Выбрать «Далее» -> «Готово».

Все указанные действия также описаны в идущем с пакетом USBIP файле «usage» на английском языке.

· Подключаем USB устройства, обозначенные как экспортируемые на нужном нам сервере. Для подключения используем USBIP из дистрибутива версии 0.1

Запускаем cmd. Смотрим, какие устройства готовы к подключению:

path-to-usbip:> usbip.exe -l

(server-ip – IP адрес сервера USB устройств из пункта 2)

C :\ usbip > usbip l 192.168.1.13

usbip dbg: usbip_network.c: 229 (tcp_connect) trying 192.168.1.13 port 3240

usbip dbg: usbip_network.c: 249 (tcp_connect) connected to 192.168.1.13:3240

— 192.168.1.13

usbip dbg: usbip.c: 423 (query_exported_devices) exportable 2 devices

2-1: unknown vendor: unknown product (0529:0001)

: /sys/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb2/2-1

: unknown class / unknown subclass / unknown protocol (ff/00/00)

: 0 — unknown class / unknown subclass / unknown protocol (ff/00/00)

В результате видим, что на сервере 192.168.1.13 готово к подключению устройство с bus-ID 2-1 – то, которые мы настроили в пункте 2. Устройств может быть и больше.

path to usbip :> usbip . exe a < server ip > USB ID

USB-ID в нашем случае 2-1.

Получаем многабукв (листинг параметров) и в завершение:

new usb device attached to usbvbus port 2

USB устройство должно появиться в системе клиента. Окно терминала желательно не закрывать.

Параметры USBIP – windows клиента Usage: usbip

a, —attach Attach a remote USB device
-x, —attachall Attach all remote USB
devices on the specific host
-d, —detach Detach an imported USB
device
-l, —list List exported USB devices
p, —port List virtual USB port status
-D, —debug Print debugging information
-v, —version Show version
-?, -h, —help Print this help

Примечания: Возникавшие проблемы и их решение:

1. Я использовал версию системы 11.04 на ядре 2.6. После обновления системы до версии 11.10 (ядро 3.0.4) usbip работать перестал – выдал ошибку, что компонент не найден. Пришлось восстанавливать машину и отказываться от обновлений. С другой стороны, так как это служебная узкоспециализированная машина и доступ к ней ограничен, это было признано не критичным.

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

3. После перезагрузки ВМ клиента — сервера 1С иногда не получается подключить к нему некоторые из ключей – выдает ошибки. Возможно, это связано с зависшими на сервере HASP сессиями обмена с usb-устройствами. Лечится перезагрузкой сервера HASP и повторным пробросом ключей на клиент.

Очень мощный инструмент в умелых руках. По различным техническим причинам виртуальная машина не имеет прямого доступа к USB-диску по умолчанию. В этой статье разбираемся, как пробросить USB-диск в виртуальную машину Hyper-V. Реализация задумки будет несложной, можно сказать, в два клика. Никаких дополнительных программ, как иногда советуют диванные «гуру» не потребуется, используем свои личные руки и ничего более.

ВАЖНО. Сменные, то есть removable-устройства мы прокинуть в ВМ не сможем, хотя и есть некоторые ухищрения на этот счёт, но сейчас не об этом. Наш алгоритм работоспособен только для USB, которые показываются как fixed. Мы не сможем сделать снапшот для таких дисков.

Приступаем к манипуляциям




ВАЖНО. Вовсе не обязательно отключать ВМ перед добавлением жёсткого диска . Для этого существует специальная технология горячего добавления и горячего удаления.

  1. Подключаемся к ВМ через rdp или просто открываем консоль. Заходим в управление дисками. Если новый на месте, значит мы всё делаем правильно. Проверяем в сети ли он. Если нет, то исправляем это, как и раньше, вызовом контекстного меню. Точек монтирования и букв наши разделы не имеют, надо это дело исправлять. Кликаем на любой из разделов правой кнопкой и выбираем пункт «Изменить букву диска или путь к нему…». Выбираем любую свободную.

Проброс USB в виртуальную машину Hyper-V окончен, теперь мы можем его использовать для своих целей.

USB Network Gate — программа, позволяющая пользователям подключать USB устройства, подключенные к другим компьютерам используя каналы IP.

На рынке существуют разные реализации удаленного подключения USB устройств, как аппаратные, так и программные. Некоторые из них требуют от пользователей определенных знаний и навыков, в некоторых случаях настройка может занять много времени. USB Network Gate удивил меня своей простотой. Скачал программу, установил, нажал на кнопку Share и устройство сразу доступно для подключения на удаленной машине с установленным клиентом.

USB Network Gate может оказаться незаменимым например при использовании USB токенов на сервере RDP, программа позволяет настроить монопольный доступ к устройствам для отдельного пользователя удаленного рабочего стола, изолируя его от остальных пользователей. Программу можно так же использовать в виртуальной среде, если по каким то причинам устройство невозможно подключить напрямую. Существуют версии для Windows, Linux (RPM и Deb пакеты), Apple OS X и что особенно интересно, для Android. Теперь о том, как это работает.

Сервер

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

Есть возможность настройки соединения отдельно для каждого устройства или порта, разрешить соединение только для определенного адреса. Для защиты соединения предусмотрена авторизация и шифрование.


Клиент

При использовании USB Network Gate в качестве клиента, приложение сканирует локальную сеть на наличие серверов отображает все доступные для подключения устройства. Если сервер находится в другой подсети, например при соединении через VPN, можно добавить его с помощью кнопки “Add server”. После того, как я открыл доступ к принтеру, он появился в списке доступных для подключения на моем MacBook. Помимо принтера я подключал USB жесткий диск с разделами HFS+, он так же подключился, но разделы монтировались около трех минут, видимо из-за их большого объема.

Резюме

Trial версия позволяет открыть доступ только к одному устройству, зарегистрированная — в зависимости от уровня лицензий, от одного за $89, 95 до неограниченного за $699,95 . Если у вас есть необходимость быстро подключить устройство по сети, USB Network Gate то, что вам нужно, особенно если у вас нет сильных познаний в области компьютерного оборудования.