Установка usbip на ubuntu 12.04 server

Настройка Anywhereusb Remote Hub Configuration Utility

В результате установки драйверов для вашего устройства USB over IP , на виртуальной машине Vmware или Hyper-V вы обнаружите две утилиты:

  1. AnywhereUSB Configuration Utility — утилита управленияподключением
  2. USB Device Viewer — утилита проверки подключения etoken по технологии USB over IP

Открываем AnywhereUSB Configuration Utility, чтобы обнаружить и подключить наш Etoken. Первым делом вы переходите в меню Edit-Discovery List. В поле Ip адрес указываете ip вашей железки DIGi и нажимаете кнопку Add. Теперь она будет присутствовать в списке обнаружения

Обратите внимание она сразу укажет какие группы доступны для подключения по технологии USB over IP, они будут помечены статусом Avaliable

Далее в меню Edit-Connection list, теперь добавим тот же Ip для соединения сервера и клиента, тут же можно сразу задать группу к которой будет идти подключение (Group Number) и нажимаем Add.

Думаю вам понятна разница между Discovery List и Connection list. Первый просто показывает, что доступно на устройстве, а второй уже автоматически подключается к нему.

В результате вы увидите статус: Connection Successful to Remote Hub, а если не повезет, то Can not find Remote Hub. Если необходимо будет отключить USB Токен, то нажмите Disconnect.

Если необходимо будет переключить группу, то делается это на отключенном устройстве в Connection list, через правый клик по нему. Там будет пункт Configure

Обратите внимание, что тут есть пункты для шифрования трафика между клиентом и сервером USB over IP

То, что у вас появился статус Connection Successful to Remote Hub, еще не говорит, что устройство работает и проброс на виртуальную машину Vmware или Hyper-V осуществлен. Чтобы удостовериться, что все хорошо, вам необходимо воспользоваться утилитой USB Device Viewer. В идеале у вас должен быть куст RealPortUSB с ip адресом вашего устройства и на порту должен отображаться ваш токен со статусом DeviceConnected. Вот теперь можно говорить, что подключение по USB over IP, работает.

Цены и конкуренты

В зависимости от количества портов розничная цена устройств линейки DistKontrolUSB колеблется в пределах от 46 500 рублей до 96 500 рублей. Аналогичные предложения есть у иностранных производителей (Digi AnywhereUSB, SEH myUTN и другие), но они значительно дороже: например, цена AnywhereUSB на 14 портов превышает 1800 долларов. К тому же на рынке сложно найти устройство, позволяющее подключить через сеть до 64 ключей USB. В отличие от иностранных аналогов, DistKonrtolUSB имеет всю необходимую документацию и сертификаты Росаккредитации в соответствии с регламентом Таможенного союза.

Часть третья, клиентская и запутанная

Подключить расшаренное устройство по сети к машине под управлением Debian я попробовал сразу же на том же сервере, и всё прекрасно подключилось:

sudo usbip attach --remote=localhost --busid=1-1

Переходим к Windows. В моем случае это был Windows Server 2008R2 Standard Edition. Официальное руководство просит сначала установить драйвер. Процедура прекрасно описана в прилагаемом к windows-клиенту readme, делаем всё как написано, всё получается. На XP тоже работает без каких-либо трудностей.

Распаковав клиент, пробуем примонтировать наш ключик:

C:\Program Files\USB-IP>usbip -a %server-ip% 1-1
usbip err: usbip_network.c: 121 (usbip_recv_op_common) recv op_common, -1
usbip err: usbip_windows.c: 756 (query_interface0) recv op_common
usbip err: usbip_windows.c: 829 (attach_device) cannot find device

Ой-ой. Что-то пошло не так. Используем навык гугла. Встречаются отрывочные упоминания, что что-то там не так с константами, в серверной части разработчики при переходе на версию 0.2.0 изменили версию протокола, а вот в клиенте под Win сделать это забыли. Предлагаемое решение — поменяйте константу в исходнике и пересоберите клиент.

Вот только очень мне не хочется качать Visual Studio ради этой процедуры. Зато у меня есть старый-добрый Hiew. В исходнике константа объявлена как двойное слово. Поищем в файле 0х00000106, заменяя на 0х00000111. Не забываем, порядок байт обратный. Итог — два совпадения, патчим:

00000CBC: 06 11
00000E0A: 06 11
Ииии… да!
C:\Program Files\USB-IP>usbip -a %server-ip% 1-1
new usb device attached to usbvbus port 1

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

C:\Program Files\USB-IP>usbip -a %server-ip% 1-1
usbip err: usbip_windows.c: 829 (attach_device) cannot find device

И всё. На это мне не смог ответить даже всезнающий гугл. А при этом команда отобразить доступные на сервере устройства вполне корректно показывает — вот он, ключ, можете монтировать. Пробую примонтировать из-под Linux — работает! А если теперь попробовать из-под Windows? О ужас — это работает!

Грабли последние: что-то там в коде сервера не дописано. При расшаривании устройства он не считывает с него количество USB-дескрипторов. А при монтировании устройства из-под Linux, это поле заполняется. К сожалению, с разработкой под Linux я знаком на уровне «make && make install». Поэтому проблема решена с помощью довольно грязного хака — добавлением в /etc/rc.local

usbip attach --remote=localhost --busid=1-1
usbip port
usbip detach --port=00

Frequently Asked Questions

The USB server is a machine to which a USB device you need to share is connected physically. The client is a computer from which you will connect to the shared USB over the Internet.

No, the software license is not required for establishing client connections to shared USB devices. However, you will need to register your USB Network Gate copy on the server computer to be able to share your devices over the network.

You can share a device on a USB Network Gate server even if the device drivers are not installed locally. The device drivers need to be installed only on the client machine from which you will remotely connect to the shared USB device.

USB Network Gate works with USB devices of virtually any type. The software is not limited to particular device models. The program is compatible with specialized USB equipment including fingerprint readers, ID card scanners, interactive whiteboards, modems, etc.; a wide range of communication devices such as USB dongles, USB DVD drives, Android devices, USB hard drives; data input/output peripherals like Bluetooth adapters, USB sound headsets, keyboards and .

Yes, USB Network Gate makes it possible to connect to iPhones and other iOS devices remotely by providing access to them over LAN and the Internet.

Варианты мониторинга концентраторов Digi AnywhereUSB

В этой заметке собрана информация о разных вариантах мониторинга USB-концентраторов Digi AnywhereUSB

Удалённый мониторинг по протоколу SNMP

Для мониторинга по протоколу SNMP можно использовать OID, описанные в статье Digi AnywhereUSB — Идентификаторы OID для мониторинга по протоколу SNMP. По перечисленному в этой статье списку OID можно настроить базовый мониторинг загруженности устройства, а также состояние доступности его TCP/UPD портов, которые используются клиентами для подключения к устройству. Для систем типа Nagios/Icinga можно использовать плагин check_snmp, пример использования которого можно найти в статье про настройку мониторинга сетевых устройств в Icinga Director

Альтернативным вариантом проверки доступности TCP портов является использование плагина check_tcp

На практическом опыте использования плагина check_tcp для мониторинга доступности портов устройства Digi AnywhereUSB 14 обнаружено, что периодический частый опрос портов, использующих защищённое соединение, может приводить к утечкам памяти на устройстве. К таким портам относятся:

  • Digi RealPort Encrypted TCP Port 1027
  • Digi AnywhereUSB Encrypted TCP Port 3423

Устройства Digi AnywhereUSB\14 в веб-консоли управления имеют настройки отсылки SNMP Traps (Configuration > System > Simple Network Management Protocol (SNMP) Settings)

Мониторинг на стороне клиентов AnywhereUSB

На стороне Windows-клиента, на котором примонтировано USB-устройство с удалённого концентратора Digi AnywhereUSB, имеется системная служба Digi AnywhereUSB Network Service (DgAwEncx). С помощью разных систем мониторинга можно отслеживать текущий статус этой службы. Исполняемый файл службы по умолчанию расположен в

За доступностью примонтированых на Windows-клиенте USB-устройств можно отслеживать с помощью классов WMI. Пример VBS-скрипта, опрашивающего WMI на предмет наличия в системе заведомо известного USB-устройства можно позаимствовать из заметки How to check connection between windows and anywhere usb with nagios:

check_usbdevice.vbs
strComputer = "."
 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colDevices = objWMIService.ExecQuery ("Select * From Win32_USBControllerDevice")
 
For Each objDevice in colDevices
    strDeviceName = objDevice.Dependent
    strQuotes = Chr(34)
    strDeviceName = Replace(strDeviceName, strQuotes, "")
    arrDeviceNames = Split(strDeviceName, "=")
    strDeviceName = arrDeviceNames(1)
    Set colUSBDevices = objWMIService.ExecQuery ("Select * From Win32_PnPEntity Where DeviceID = '" & strDeviceName & "'")
    For Each objUSBDevice in colUSBDevices
        'Wscript.Echo objUSBDevice.Description
        If objUSBDevice.Description="SCR3311 USB Smart Card Reader" Then
           WScript.Echo "OK - Card reader detected"
           WScript.Quit 
        End If
    Next
Next
 
WScript.Echo "WARNING - No card reader detected"
WScript.Quit 1

В скрипте необходимо заменить имя USB-устройство на своё. Скрипт для проверки вызывать, например, так:

cscript //nologo //t:10 "check_cardreader.vbs"

Автор первичной редакции:Алексей Максимов
Время публикации: 10.06.2017 08:47

Альтернативная статья — Железкой по сети. Пробрасываем USB — устройства на удаленную машину

В одной из прошлых статей мы обсуждали способы подключения самых разных сущностей как файлов и каталогов: WebDAV, BitTorrent, SSH и даже память видеоадаптера. Но что, если мы хотим получить доступ не к удаленному или локальному сервису, а к устройствам удаленной машины? Скажем, пробросить на локальную машину USB-порт и использовать подключенные к нему устройства как локальные.

Особенность Unix-подобной системы — относиться к любому из своих компонентов как к файлу — давно уже стала общим местом в разговорах о ее внутреннем устройстве. И бесчисленное количество статей о том же Linux тому свидетельство. Оборудование — не исключение. Видеокарта, аудиокарта, внешний девайс, подключенный через USB, в понимании Linux не что иное, как файл.

Оттого удивительно, что из всех операционных систем только Plan 9 (если не считать пары отпочковавшихся проектов со схожей судьбой), в котором подобный подход доведен до логического конца, способен без лишних телодвижений распознавать оборудование удаленного компьютера и управлять им, как своим собственным.

В Plan 9 за проброс оборудования отвечает RPC-протокол 9P. Он обеспечивает доступ вообще к любым файлам и устройствам, как локальным, так и сетевым. К сожалению, Linux похвастать таким универсальным инструментом не может. Зато здесь есть несколько инструментов (если не сказать — костылей), обеспечивающих доступ к оборудованию удаленной машины.

USB

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

В подобном случае выручить может утилита USB/IP. Развитием утилиты уже давненько никто не занимался, но на ее работоспособности это пока не сказалось — в репозиториях большинства популярных дистрибутивов такой пакет присутствует.

Первым делом пакет USB/IP следует установить на ту машину, доступ к устройствам которой необходимо получить извне. Далее загружаем необходимые модули:

$ sudo modprobe usbip-core
$ sudo modprobe usbip-host

Проверяем, все ли корректно загрузилось:

$ sudo lsmod | grep usbip

И запускаем сервер:

$ sudo usbipd -D

Поскольку USB/IP имеет собственную, независимую от встроенной систему адресации, поиск устройств выполняется командой

$ sudo usbip list -l

Она покажет список всех устройств, подключенных в данный момент в USB-шине.
Настройка утилиты USB/IP
Настройка утилиты USB/IP

Теперь можно приступить непосредственно к расшариванию девайса (допустим, это будет веб-камера с индексом 2-3 из полученного списка):

$ sudo usbip bind --busid=2-3

Очередная проверка правильности выполненных действий:

$ sudo usbip list -r localhost

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

Итак, перейдя на клиентскую машину, устанавливаем на нее USB/IP и запускаем:

$ sudo modprobe usbip-core
$ sudo modprobe vhci-hcd

Проверяем доступность расшаренного оборудования на сервере по списку:

$ sudo usbip --list АДРЕС_СЕРВЕРА

И присоединяем нашу камеру:

$ sudo usbip --attach АДРЕС_СЕРВЕРА 2-3

Проверяем результат:

$ sudo usbip --port

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

Aislamiento de dispositivo USB revisado y mejorado

Una de las características menos práctica de Windows es que de manera predeterminada todos los dispositivos USB conectados están disponibles para todos los usuarios. Dado que Windows no proporciona suficientes herramientas para controlar el acceso a un dispositivo en particular por parte de un usuario en particular, puede ser un problema importante cuando hay muchos usuarios trabajando en el mismo PC con Windows o en el servidor terminal que aloja una gran cantidad de sesiones de Escritorio Remoto. Afortunadamente, USB Network Gate proporciona una característica única de aislamiento de dispositivo que puede resolver ese problema:

What Is USB Over Ethernet?

USB over Ethernet (also called USB over Network or USB over IP) is a system to share USB-based devices over Ethernet, Wi-Fi, or even the internet. In essence, you will control USB devices like printers, flash drives, and webcams remotely from a different computer. And of course, you can access data from a USB flash drive.

The Office Worker’s 101 Guide to USB Thumb Drives

Flash drives today are not just about storing your important files: you can use them to run programs and even entire operating systems.

The terms get confusing because USB Over Ethernet, USB Over Network, and USB Over IP are the names of popular software to implement such a system.

What Can You Do With USB Over Ethernet?

A lot! Here are a few examples, followed by deeper explanations of how to do each one:

  1. Share a USB drive’s data across all computers
  2. Unlock multiple computers with a single USB key
  3. One Bluetooth or Wi-Fi dongle for any device that needs it
  4. Share a printer with multiple computers
  5. See what’s happening on a connected webcam
  6. One projector that any laptop can use in a click
  7. Use a single keyboard and mouse for any computer

1. Share a USB Drive’s Data Across All Computers

This is the basic function that most people want to unlock, and it works the best too. Plug in a USB flash drive and it will show up in your software. Click «Share» and then anyone on your LAN network or remote desktop network can read or copy its contents like any normal USB drive.

But the function is where the similarity stops. You won’t get the same speed as a fast USB flash drive when you use it over a network. In fact, it is likely to be a lot slower than normal, so be prepared for longer wait times.

2. Unlock Multiple Computers With a Single USB Key

Work environments often need a bit of extra protection. You can get two-factor authentication through a USB key.

Most of the aforementioned programs will let you use a USB key plugged in the host computer to unlock or authenticate a different computer. It’s a good way to lock the whole network by removing your one key too.

3. One Bluetooth or Wi-Fi Dongle for Any Device That Needs It

Desktop PCs don’t often come with wireless connectivity options in the form of a built-in Wi-Fi adapter or Bluetooth. Now, a single dongle on the host device can give any other computer on the network that ability.

Bluetooth dongles don’t work flawlessly with all of the above programs. FlexiHub and USB Network Gate were excellent in our tests and worth a recommendation. But that still won’t solve the inherent problems of bad dongles.

4. Share a Printer With Multiple Computers

These days, Wi-Fi is a must-have in printers and that’s the easy way to print out anything in your small office.

But in case you still haven’t gone in for a wireless printer, you can share it over the network using USB over Ethernet.

5. See What’s Happening on a Connected Webcam

You can use a webcam for home surveillance already, so how about you see the contents of any webcam connected to your network. Or maybe even use it as a regular webcam itself!

Streaming the webcam’s footage on your computer’s screen is a little tricky, but it’s not too difficult either, as this FlexiHub guide shows. There is a lot you can do with a webcam, so don’t be afraid to be creative.

6. One Projector That Any Laptop Can Use in a Click

You’re all seated in the conference room. One person’s laptop is connected to the projector. If someone else wants to beam something on the screen, USB Over Ethernet lets anyone on the network connect to the projector wirelessly.

So get a good projector for your office and start sharing it easily in meetings. Just remember to close the Minesweeper window before you activate your screen.

7. Use a Single Keyboard and Mouse for Multiple Computers

If you’re using USB Over Ethernet on your home network, then this is one use you didn’t think of. With a single keyboard and mouse combo on your host device, you can control any computer.

It’s not as efficient as the other options to ditch a KVM switch for multiple PCs, but hey, if you already have USB Over Ethernet, why not use it?

Got a Smart Bulb? Here’s How to Set It Up

Don’t get stuck setting up a smart bulb. Follow these tips and tricks for pairing your smart bulb and programming it using an app.

About The Author

Mihir Patkar has been writing on technology and productivity for over 14 years at some of the top media publications across the world. He has an academic background in journalism.

More About Mihir Patkar

Плюсы и минусы обновления драйверов DIGI AnywhereUSB

Из плюсов я могу выделить:

  • Разработчик исправляет найденные недостатки или проблемы в программном обеспечении, например, проблема подключения «Can not find Remote Hub»
  • Добавляет функционал

Из минусов:

Можете все сломать. Приведу свой пример, не так давно я обновлял одну виртуальную машину Vmware, на ней установлена операционная система Windows Server 2016, была установлена версия драйверов DIGI AnywhereUSB 14 3.80. Было принято решение обновить все клиентские места до последней версии, на тот момент это было 3.95. В итоге обновления новая версия драйверов не завелась, была ошибка с кодом 411. Откатились на предыдущую версию, она так же не заработала. В результате поиска проблемы откатились на версию 3.60. Пока ищем в чем проблема и такое я заметил именно на Windows Server 2016.

remserial — проброс RS232

RS232

Самым лаконичным решением взаимного расшаривания в Линуксе могут похвастаться COM-порты. Никакие дополнительные драйверы для этого не нужны. За все отвечает одна маленькая утилита remserial, доступная в исходниках. Подходит как для доступа из Линукса к оборудованию, подключенному через RS232 на удаленном компьютере, так и для связки двух девайсов с COM-портами, подключенных к разным машинам, связанным по сети.
Расшарить RS232, указав сетевой порт (-p), скорость, режим stty (-s) и имя порта (здесь /dev/ttyS0), можно так:

$ remserial -d -p 23000 -s "9600 raw" /dev/ttyS0 &

Подключиться к COM-девайсу, расположенному на удаленной машине (сервере), — так:

$ remserial -d -r адрес_сервера -p 23000 -s "9600 raw" /dev/ttyS0 &

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

ПОЛЕЗНОЕ:

Проблемы с пробросом USB устройств

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

Общий принцип проброса USB over IP в Vmware и Hyper-V

Вы покупаете специальное устройство, например Digi AnywhereUSB/14.

https://www.digi.com/products/usb-and-serial-connectivity/usb-over-ip-hubs/anywhereusb

Производите его настройку, в которую входит:

  • Первоначальная настройка AnywhereUSB/14
  • Обновление прошивки на самую свежую

После чего вы втыкаете в нее все свои токены, например, E-token или Рутокен, выглядит это вот так.

После чего осталось, только произвести манипуляции на стороне клиента.

Часть вторая, серверно-линуксовая

Сервер USB/IP, расшаривающий USB-девайсы по сети, может быть поднят только в Linux-based OS. Ну что ж, линукс так линукс, устанавливаем на виртуалку Debian 8 в минимальной конфигурации, стандартное движение руками:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install usbip

Установились. Дальше интернет подсказывает, что нужно бы загрузить модуль usbip, но — здравствуйте, первые грабли. Нет такого модуля. А всё оттого, что большинство руководств в сети относятся к более старой ветке 0.1.x, а в крайней 0.2.0 модули usbip имеют другие названия.

Поэтому:

sudo modprobe usbip-core
sudo modprobe usbip-host
sudo lsmod | grep usbip
usbip-core
usbip-host
vhci-hcd

Запустим сервер usbip:

sudo usbipd -D

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

sudo usbip

Почитав описание команд, становится понятно, что для того, чтобы расшарить требуемый USB-девайс, usbip хочет узнать его Bus ID. Уважаемые зрители, на арене грабли номер три: тот Bus ID, который выдаст нам lsusb (казалось бы, самый очевидный путь) — ей не подходит! Дело в том, что железки вроде USB-хабов usbip игнорирует. Поэтому, воспользуемся встроенной командой:

user@usb-server:~$ sudo usbip list -l
- busid 1-1 (064f:0bd7)
  WIBU-Systems AG : BOX/U (064f:0bd7)

Примечание: здесь и далее в листингах я буду всё описывать на примере моего конкретного USB-ключа. Ваши название железки и пара VID:PID могут и будут отличаться. Моя называется Wibu-Systems AG: BOX/U, VID 064F, PID 0BD7.

Теперь мы можем расшарить наше устройство:

user@usb-server:~$ sudo usbip bind --busid=1-1
usbip: info: bind device on busid 1-1: complete

Ура, товарищи!

user@usb-server:~$ sudo usbip list -r localhost
Exportable USB devices
======================
- localhost
       1-1: WIBU-Systems AG : BOX/U (064f:0bd7)
          : /sys/devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb1/1-1
          : Vendor Specific Class / unknown subclass / unknown protocol (ff/00/ff)

Троекратное ура, товарищи! Сервер расшарил железку по сети, и мы можем её подключать! Осталось только дописать автозапуск демона usbip в /etc/rc.local

usbipd -D
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector