Домой / Faq / Для подключения usb устройств к lan. Что делать если не работает сетевая карта? Настройка и управление управляемым USB over IP концентратором DistKontrolUSB

Для подключения usb устройств к lan. Что делать если не работает сетевая карта? Настройка и управление управляемым USB over IP концентратором DistKontrolUSB

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

Часть первая, историческая

Если машина виртуальная - всё это несложно. Функционал проброса USB от хоста в виртуалку появился еще в VMWare 4.1. Но в моём случае ключик защиты, опознающийся как WIBU-KEY, нужно было в разное время подключать к разным машинам, и не только виртуальным.
Первый виток поиска в далеком 2009-м году привел меня к железке под названием TrendNet TU2-NU4
Плюсы:
  • иногда даже работает
Минусы:
  • работает не всегда. Допустим, ключ защиты Guardant Stealth II через неё не заводится, ругаясь ошибкой «устройство не может быть запущено».
  • ПО для управления (читай - монтирования и размонтирования USB-устройств) убого до крайности. Ключи командной строки, автоматизация - не, не слышали. Всё только руками. Кошмар.
  • управляющее ПО ищет саму железку в сети широковещанием, поэтому работает это только в пределах одного broadcast-сегмента сети. Указать IP-адрес железки руками нельзя. Железка в другой подсети? Тогда у вас проблема.
  • разработчики забили на устройство, слать баг-репорты бесполезно.
Второй виток случился во времена уже не столь отдаленные, и привел меня к теме статьи - . Привлекает открытостью, тем более, что ребята из ReactOS подписали им драйвер для Windows, так что теперь даже на x64 всё работает без всяких костылей вроде тестового режима. За что команде ReactOS огромное спасибо! Звучит всё красиво, попробуем пощупать, так ли оно на деле? К сожалению, сам проект тоже подзаброшен, и на поддержку рассчитывать не приходится - но где наша не пропадала, исходник есть, разберемся!

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

Сервер 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
Ну и добавим в /etc/modules такие строки, чтобы загружать их автоматически при старте системы:

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

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

Подключить расшаренное устройство по сети к машине под управлением 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

Часть заключительная

После некоторых мытарств, это работает. Желаемое получено, теперь ключ можно примонтировать к любому ПК (и размонтировать, конечно же, тоже), в том числе - за пределами широковещательного сегмента сети. Если хочется - можно это сделать с помощью скрипта командной оболочки. Что приятно - удовольствие абсолютно бесплатное.
Надеюсь, что мой опыт поможет хабражителям обойти те грабли, которые отпечатались у меня на лбу. Спасибо за внимание!

От компьютера, не имеющего выход в глобальную, или локальную сеть, пользы очень мало. Но, на такое устройство, как сетевая карта, пользователи не обращают внимания до тех пор, пока оно не перестаёт работать, или когда к машине, находящейся в локальной сети не потребуется подключить Интернет. Вот тогда у «чайников» и возникают проблемы.

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

Как установить сетевую плату, если нет свободных PCI

Обычно в таких случаях юзеру советуют не трогать материнскую плату, а подключить новую внешнюю . Такое устройство стоит недорого, и работает отлично, т.к. при подключении через PCI – слот обеспечивается высокая скорость работы.

Однако если все PCI – слоты уже используются другими устройствами (видеокарта, звуковая карта, TV-тюнер и т.д.), или же для пользователя открытый кейс является дремучим лесом, то самый быстрый и простой вариант решить проблему «умершей» встроенной сетевой карты – это поставить внешний адаптер.

Что такое сетевой usb-адаптер

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

Что касается производителя, то такие девайсы выпускают все известные изготовители компьютерных сетевых устройств: D-Link, TP-LINK, Edimax, Intel, Acer и др.

Подключение сети Ethernet через USB

Подключить внешнюю сетевую карту сможет каждый. Для этого USB кабель нужно подключить в любой свободный USB – порт компьютера. Обычно такие адаптеры устанавливаются по технологии plug’n’play. То есть все необходимые драйвера будут инсталлированы Windows автоматически.


На этом процесс подключения сетевого адаптера окончен. Теперь необходимо просто подсоединить сетевой кабель к разъёму в адаптере.

Проверить правильность своих действий можно, отыскав раздел «Сетевые платы» в диспетчере устройств. Если всё было сделано верно, в разделе высветится название установленного сетевого адаптера.

Всем привет! В этой статье я хочу рассказать о технологии USB поверх IP (USB over IP). Что это такое, зачем нужно, какие сценарии и варианты у этой технологии востребованы на сегодняшний день.

Итак, господа, если вы плотно используете виртуализацию, не важно где – на работе или дома (если вы энтузиаст) и различные системы управления этой самой виртуализацией – Hyper-V, Xen, VMware, то сталкивались с ситуацией, когда необходимо пробросить USB-порт на виртуальную машину. Но в виду ограничений гипервизоров виртуальных машин сделать это проблематично, так как USB-порты на виртуальных машинах отсутствуют. А что делать, если нужно подключить USB-ключ защиты программного обеспечения, токен с криптозащитой и тому подобные нужные вещи? Если с физическим сервером проблем не было, то с виртуальным встает простой вопрос: как это сделать?!

Вот тут на помощь и приходит технология USB over IP. Не нужно ломать голову, все уже придумали. Забегая вперед скажу, что есть как аппаратные средства проброса USB по IP, так и программные.

Под катом детальный обзор и много интересного…

И у тех и у других есть как преимущества, так и недостатки. Давайте рассмотрим преимущества аппаратных устройств USB over IP перед программными:

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

Минусы аппаратных устройств USB over IP:

  • Более высокая стоимость по сравнению с программными средствами эмуляции.

Более подробно про программные эмуляторы USB портов я расскажу в одной из следующих статей.

Однажды передо мной встала задача проброса USB HASP ключей на виртуальный кластер 1С Предприятие. После обзора и просмотра большого количества решений, как программных, так и аппаратных выбор пал на устройства компании Digi International, а именно . Сейчас я расскажу про линейку продукции и конкретно какую модель выбрал я для своих систем виртуализации и почему.

AnywhereUSB это достаточно компактное устройство, представляющее из себя USB-концентратор с Ethernet-портом объединенный в один корпус. О моделях использования может наглядно поведать нижеприведенная иллюстрация:

Обзор модельного ряда Digi AnywhereUSB

Для приобретения на момент написания статьи доступны 5 моделей устройств, рассчитанных на разное количество USB портов, и модель с комбинированными COM и USB-портами.

AnywhereUSB /2 — самая простая, младшая двух портовая модель. AnywhereUSB/ 5 и AnywhereUSB/5 with Multi-Host Connections — две пятипортовые модели. AnywhereUSB TS: модель несущая на своем борту 4 COM порта.

Спецификация устройств, отличия



Первоначальная настройка и управление устройствами

Для настройки и управления устройствами предусмотрено несколько интерфейсов:
Web-интерфейс для настройки, мониторинга и администрирования;
AnywhereUSB config utility;
Telnet;
SNMP.

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


AnywhereUSB/5. Web-интерфейс, меню Network Configuration.

Подключаем нашу USB IP железку в сеть с работающим DHCP-сервером и в браузере переходим по присвоенному устройству IP-адресу. Чтобы узнать адрес можно воспользоваться AnywhereUSB config utility, которую можно скачать с официального сайта производителя устройства.


Вообще, первоначальная настройка устройства не сложнее любого бытового роутера. Попадаем на страницу ввода логина и пароля – по умолчанию логин – root , пароль – root .Существует несколько вариантов присвоения IP адреса AnywhereUSB могут работать в нескольких режимах:

Динамическое присвоение IP-адреса (DHCP);
Статический IP;
Auto Private IP Addressing (Auto-IP).

Пробрасываем USB порты на клиентский компьютер

Тут все просто и легко. Для проброса порта на клиентский ПК нужно установить драйвера AnywhereUSB на ту машину, где мы хотим получить наше USB устройство, и указать адрес нашей волшебной коробочки от Digi. Соотвественно, не забываем подключить наши USB устройства в наш USB-IP концентратор. Это всё.

В случае необходимости получения детальной информации, о подключённом устройстве, свободных/занятых портах – можно воспользоваться утилитой AnywhereUSB View, которая устанавливается вместе с драйверами.

Весь процесс установки и развертывания занимает минут 20.
Лично я в работе использую устройство AnywhereUSB/5 with Multi-Host Connections. Её отличие от младших моделей в том, что она поддерживает группы, и это очень удобно. Сейчас объясню: в этой модели в нашем распоряжении находится 5 USB портов. Эти 5 портов можно разбить на группы и прокидывать на разные виртуальные машины (далее — ВМ). Например, нам нужно прокинуть 3 устройства с портов 1,3,5 на ВМ1, устройство на USB порте 2 на ВМ2, устройство на USB порте 4 на ВМ3. Создаем 3 группы. Порты 1,3,5 объединяем в группу 1, второй USB-порт определяем в группу 2 и третий USB-порт определяем в группу 3. Затем подключаем нужные группы на нужных ВМ с помощью утилиты – и все работает. Делается все в считанные минуты. Старшая модель AnywhereUSB /14 тоже умеет создавать и отдавать по сети группы. Прокидывать можно всё – ради эксперимента даже прокидывал USB HDD. Глюков и тормозов замечено не было.



Настройка групп и интерфейсов, в меню RealPort USB Configuration. Выбор группы по отношению к порту USB.

Заключение

В завершении обзора, хочу сказать, что в отличие от подобных программных средств железка настраивается один раз, не глючит, не греется и стабильно работает. Так же, неоспоримым плюсом является возможность работы в отказоустойчивом кластере, т.е. хостовая машина не теряет подключения USB при переключении. Это важно.

Более подробную информацию о продукции Digi International, а так же драйвера, прошивки и утилиты можно скачать на официальном сайте .

На этом пожалуй всё, если будут какие-то вопросы – спрашивайте в комментариях.

Всем удачи и добра!

Добрый день, амигос, рад, что ты заглянул ко мне на сайт, сегодня мы рассмотрим такой вопрос, как организовать usb по сети и, как это использовать в виртуализации. Тема довольно актуальная, и встречается такая задача все чаще. Особенно у тех компаний, где есть инфраструктура удаленных рабочих столов RDS с 1С приложениями, Directum или Tessa.

Usb через сеть

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

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

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

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

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

  • AnywhereUSB /2 – 2 порта USB, самая простая из модельного ряда

  • AnywhereUSB/ 5 – 5 портов USB, тут уже может удовлетворить потребности средней компании.

  • AnywhereUSB /14 – 14 портов USB, самая топовая мне она нравится больше всего, но и она не лишена своих косяков. Бывают случаи, что она может зависнуть, и представьте, что все 14 USB-токенов, становятся не доступными, народ на терминальных фермах негодует, бизнес теряет деньги, или вот еще распространенная ошибка, когда у вас в системе не происходит подключение к ключу, и вы видите в утилите сообщение с содержимым " ". Но все же аппаратные решение предоставления USB по локальной сети, в разы стабильнее, программных.

  • Подключение USB через сеть, можно так же осуществлять и через немецкое оборудование компании SEH , например, но в отличии от DIGI, оно еще работает и с LINUX платформами, я таким образом пробрасывал токен в CentOS 7, очень удобно. Он стоит чуток подороже, своего конкурента, но оно того стоит. Его внешний вид представлен на фото ниже. Он так же имеет до 14 USB портов.

  • - это китайское оборудование, которое не так давно появилось на рынке. Чем данная железка выгодно отличается от SEH и DIGI, то это своей ценой, в несколько раз ниже. DistKontrolUSB-64 занимает аж три стоичных юнита и имеет 64 USB порта, так же в линейке есть оборудование с 16, 32 и 48 портами. Со стороны клиента устанавливается приложение USBoverIP-Client, через которое идет подключение к серверу. Есть версия USBoverIP-Client для Windows так и MacOS, легко работает на физических устройствах, так и на виртуальных машинах Hyper-V или Vmware.

В отличии от других вендоров у DistKontrolUSB-64 есть встроенный WIFI модуль, который позволяет производить подключения устройств USB по сети не только по проводному Ethernet, а еще и через WIFI, что согласитесь очень классно.

Настройка AnywhereUSB

Давайте рассмотрим, как настраивается железка, для того, чтобы сделать доступ юсб по сети. Вот, как это будет выглядеть схематично. У вас есть разного рода USB устройства или ключи безопасности, которые вы подключаете в один из 14 портов, далее устройство проксирует трафик по локальной сети до них, с помощью специального программного обеспечения, на стороне клиента.

Для настройки и управления устройством предусмотрено несколько интерфейсов:
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. Заведите себе правило, везде на серверах использовать статику, чтобы все ваши клиенты подключив USB Токен по сети, не бегали в догонялки за ним, если вдруг на сервере стоит динамическая адресация.

В этом же мню очень удобно задавать сетевые службы, доступные на нем. Обратите внимание на стандартные порты подключения. При желании вы их можете переназначить. По опыту могу сказать, что Telnet работает стабильнее, чем тот же ssh. Вообще старайтесь, минимизировать количество служб управления, либо же изолируйте ее с помощью VLAN .

Самым важным шагом в настройке USB-ключей предоставляемых по сети различным серверам, это задание порт-групп (RealPort USB). По сути RealPort USB это группы объединяющие физические порты с USB ключами в логические группы, для проброса нескольких токенов на один сервер или виртуальную машину. Без создания RealPort групп, вы не сможете подключить ни одного клиента к вашему USB хабу.

Создаются они в меню "Applications - RealPort USB". Сам алгоритм, очень простой, слева у вас будут реальные USB порты, идущие по порядку, чуть правее, вы указываете в какой группе по счету должен быть, тот или иной порт. Не забываем вписывать описание, оно очень пригодится, можно задавать, только латинские буквы. После этого, вы можете считать, что проброс USB по локальной сети, осуществлен процентов на 80.

Не забывайте включать галку "Dynamic Group Assignment (DGA)", чтобы порты применялись сразу, без перезагрузки DIGI.

На вкладке "Conection Management" можно посмотреть текущие подключения. По сути это все клиенты, кто подключил ваш USB девайс по локальной сети.

Для увеличения безопасности, вы можете включить защиту паролем (Секретный ключ), можно это сравнить с двухфакторной аутентификацией. Делается это в пункте "RealPort", включите функцию "Enable RealPort Authentication" и введите секретное слово в Shared Secret.

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

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

День добрый!!! Как-то столкнулся с задачей удаленно подключить по 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.