Проброс USB-портов из Windows 10 для удалённой работы
Здравствуйте, товарищи-сисадмины и компьютерщики! Сегодня я сделаю небольшой обзор на одну программку, которая позволяет прокинуть USB устройства через сеть Ethernet.
Где это может быть полезным? Сложно навскидку сказать, но вот некоторые области применения:
Честно говоря, я не тестировал, как будет происходить доступ к устройствам ввода-вывода – просто нет такой возможности. Но вот на примере USB-накопителя покажу в статье. Работает вполне неплохо.
USB Network Gate
Находим на просторах Интернета программу USB Network Gate и ставим её на компьютер, который выступает в роли сервера. После запуска увидим нечто подобное (на вкладке “Локальные USB-устройства“):
Перечислен список всех наших USB-устройств. Самым нижним обозначено устройство хранения данных “
Mass Storage Device“, нажмём кнопку “Открыть доступ” напротив этого пункта.
Теперь установим программу на клиентской машине, то есть на той, с которой нужно получать доступ к ресурсам сервера. Увидим следующую картину (на вкладке “Удалённые USB-устройства“):
Нажмём кнопку “Добавить сервер” и увидим окно ввода IP-адреса сервера:
Ввожу IP-адрес того узла в сети, на котором установил серверную часть в самом начале и вижу следующую картину:
Нажатие на кнопку “Подключить” приведёт к монтированию удалённого USB-устройства к локальному компьютеру:
При этом в системе появится та самая флешка, которая физически подключена совершенно в другом месте! Вот это номер. На сервере отобразится следующая картина:
То есть поясняется, к какому хосту подключено то или иное USB-устройство. Ну разумеется, имеется возможность отключить это устройство и прекратить доступ.
Грустная часть проверки: клиентская часть
В Windows устанавливаем драйвер (делаем это только один раз, дальше он будет всегда установлен). Для этого запускаем от имени администратора файл usbip.exe
с аргументом
install
:
usbip.exe install
Теперь смотрим, доступно ли нам устройство:
usbip.exe list —remote=192.168.10.123
Убеждаемся, что оно присутствует в списке. Ну, и подключаем его:
usbip.exe attach —remote=192.168.10.123 —busid=1-5.4.1.3
В менеджере устройств появляется новое USB-устройство, Keil его прекрасно видит…
Но на этом всё приятное кончается. Небольшая программа заливается во флэшку около минуты. Попытки шагать по строкам идут от 5 до 20 секунд на каждую строку. Это неприемлемо. Во время паузы в обе стороны идёт трафик примерно 50 килобит в секунду. Долго и вдумчиво идёт.
Честно говоря, ограничение по времени привело к тому, что я только предполагаю, почему всё было так плохо. Подозреваю, что там по сети бегает JTAG-трафик. А он бегает небольшими пакетами в обе стороны, отсюда и проблемы. Так было завершено исследование с результатом: «Для проекта не подходит».
Настройки программы для проброса USB по сети
Кроме того, на стороне сервера есть возможность задать некоторые настройки доступа для каждого из устройств:
Например, я вот указал описание устройства (чтобы было понятно), а также установил пароль для доступа к ресурсу. Ну и ряд дополнительных возможностей, которые вы можете видеть на скриншоте выше.
Доступ по паролю работает! При попытке подключения к устройству, появилось приглашение ввести пароль:
Ну что можно сказать по этому поводу… Утилита явно неплохая, несмотря на то, что коммерческая. Довольно таки неплохо справляется со своей задачей – пробросом USB устройств по сети.
Настройка виртуальной машины
Для того что бы было куда подключать экспортированные устройства, на виртуальной машине нужно создать необходимые 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> добавляем следующие опции, помимо контроллеров определеных нами раньше:
Теперь все готово для осуществления проброса.
Выводы
Итак, пару слов о данной программе. Мне понравилась задумка – люблю различные решения, которые могут иногда выручить в сложной ситуации. Никогда не знаешь, где может пригодиться это, а знать, что такая возможность имеется – очень даже полезно!
Один минус – программа платная, но в ознакомительных целях использовать её ограниченную версию вполне можно, разрабы не обидятся, надеюсь.
Друзья! Вступайте в нашу группу Вконтакте, чтобы не пропустить новые статьи! Хотите сказать спасибо? Ставьте Like, делайте репост! Это лучшая награда для меня от вас! Так я узнаю о том, что статьи подобного рода вам интересны и пишу чаще и с большим энтузиазмом!
Также, подписывайтесь на наш канал в YouTube! Видео выкладываются весьма регулярно и будет здорово увидеть что-то одним из первых!
Запуск сервера
Пакет 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
На этом все, после данных шагов ваша ВМ увидит вашу флешку и сможет с ней нативно работать.
Режим разрыва клавиатуры
В режиме разрыва клавиатуры сканер просто набирает клавиши, которые соответствуют символам штрих-кода. Не требуется никаких драйверов, чтобы сканер заработал в 1С.
Во всех типовых конфигурациях по кнопке F 7 открывается окно ввода штрих-кода. Поэтому достаточно сканеру запрограммировать префикс F 7 и все, он будет поддерживаться 1С.
Если конфигурация дорабатывалась и в некоторых участках забыли прописать типовую поддержку F 7, проще дописать эту поддержку. Но в качестве альтернативы можно использовать драйвер Атол старых версий, где выбрать в качестве порта «Разрыв клавиатуры».
Новые версии драйверов Атол платные, а бесплатные делают 10-секундную задержку перед обработкой штрих-кода.
Способ прост для подключения, но неудобен в работе.
- Нужно следить, чтобы была включена правильная раскладка клавиатуры.
- При использовании префикса курсор должен стоять внутри таблицы, иначе F 7 не срабатывает.
- Буквы при наборе в RDP часто теряются, и сканер считывает усеченные штрих-коды.
Поэтому лучше все же, если используется разрыв клавиатуры, не использовать драйвер Атол (это лишние потери времени и символов), а просто запрограммировать префикс F 7.
В моем случае был интересный глюк — буквы на некоторых штрих-кодах преобразовывались в верхний регистр. Я долго мучался , но мне подсказали, что нужно включить режим посимвольной передачи штрих-кода, а не пакетный, который стоял по умолчанию.
Удаленный доступ к USB-порту через Ethernet
День добрый. Как-то столкнулся с задачей удаленно подключить по RDP электронный ключ ruToken к 1С. Бухгалтерия находится в одном офисе, а сервер с 1С — в другом. Решить задачу помогла программа USB Network Gate, которая позволяет легко подключить одно или несколько удаленных USB-устройств к вашему компьютеру по сети Ethernet (Интернет/LAN/WAN) так, словно они подключены к системе напрямую. Не имеет значения, находитесь ли вы в другой стране или соседнем офисе, вы всегда можете воспользоваться удаленным сканером, принтером, веб-камерой, модемом, USB-донглом и любым другим оборудованием, как будто они подключены непосредственно к вашему ПК.
Программа USB Network Gate приятно удивит не умудренных компьютерными знаниями пользователей простотой своего использования. Достаточно подключить нужное USB-устройство к компьютеру, найти его во вкладке «share local USB devices» и нажать кнопку «share», — устройство станет доступно в локальной сети и интернете. Для соединения через интернет удаленному компьютеру нужно будет предоставить IP-адрес сервера.
На клиентском компьютере, в свою очередь, необходимо выбрать во второй вкладке программы появившееся устройство, а затем получить к нему доступ нажатием кнопки «connect». Если же сервер с подключенным девайсом находится в другой подсети, то его необходимо добавить через пункт «add server».
Заключение
Если вам необходим совместный доступ к накопителю, веб-камере, электронной подписи, дактилоскопическому сканеру, принтеру, МФУ или любому другому поддерживаемому USB-устройству из любой точки мира, то USB Network Gate — простое и качественное решение. Программа имеет пробную 14-дневную версию для тестирования и ознакомления с функционалом. Стоимость лицензионной копии варьируется в зависимости от максимального количества одновременно подключаемых к сети USB-устройств. Есть редакции USB Network Gate под операционные системы Windows, Linux, Mac и Android.
Скачать программу вы можете на официальном сайте.
источник