Гид по технологиям

Как превратить Linux‑сервер в USB over IP сервер

• 5 min read • Инфраструктура • Обновлено 20 Nov 2025
Как превратить Linux‑сервер в USB over IP сервер
Как превратить Linux‑сервер в USB over IP сервер

Основная идея и когда это нужно

USB over IP позволяет «перекидывать» физические USB‑устройства по сети и использовать их удалённо, как будто они подключены локально. Это полезно, если вы мигрировали сервисы в виртуальные машины или хотите централизовать доступ к аппаратным ключам, вебкамерам, сканерам и пр.

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

Ключевые варианты запроса: usb over ip сервер linux, usbip linux руководство, удалённый USB для виртуальных машин, usbip windows клиент, привязка USB в Linux

Что потребуется

  • Linux‑сервер (подходит Debian/Ubuntu и другие дистрибутивы, где есть пакет usbip). Можно использовать старые версии Ubuntu, но инструкции ниже делались на Ubuntu Karmic.
  • USB‑устройство, которое вы хотите расшарить (аппаратный ключ, вебкамера, принтер и т. п.).
  • Сеть между сервером и клиентом (лучше LAN; VPN — см. раздел безопасности).

Примечание: проект usbip — открытый инструмент (http://usbip.sourceforge.net/). Существуют коммерческие устройства USBoverIP, но они обычно стоят от ~$100 и выше.

Сервер: установка и запуск

  1. Скачайте пакет или установите из репозитория дистрибутива. Пример ссылки архива: http://downloads.sourceforge.net/project/usbip/usbip/usbip-win-preview/usbip-win.zip?use_mirror=ignum

    На Debian/Ubuntu:

$ sudo aptitude install usbip
  1. Загрузите модули ядра, необходимые для работы сервера:
$ sudo modprobe usbip
$ sudo modprobe usbip_common_mod
  1. Запустите демон usbip:
$ usbipd -D
  1. Подключите USB‑устройство к серверу и найдите его в списке USB‑шины:
$ lsusb

Строка типа

Bus XXX Device YYY: ID VendorID:DeviceID

показывает идентификатор устройства VendorID:DeviceID (например, 0c45:63ee).

  1. Найдите соответствующий bus‑ID для usbip:
$ sudo usbip_bind_driver --list

Вы увидите строки вида:

busid 1-6 (0c45:63ee)
1-6:1.0 -> uvcvideo
1-6:1.1 -> uvcvideo

Запомните bus‑ID (в примере — 1-6).

  1. Привяжите (экспортируйте) устройство к usbip:
$ sudo usbip_bind_driver --usbip 1-6

После этого устройство «захвачено» сервером и доступно для удалённого подключения.

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

Клиент: подключение

Windows

  1. Скачайте сборку Windows: http://ignum.dl.sourceforge.net/project/usbip/usbip/usbip-win-preview/usbip-win.zip
  2. Распакуйте архив. Установите файл «bus.inf» как «Generic system device» через Диспетчер устройств.
  3. Список доступных устройств на сервере:
> usbip.exe -l 
  1. Присоединение устройства по bus‑ID:
> usbip.exe -a  X-Y

(X‑Y — bus‑ID, например 1-6). После этого в системе клиента появится новое USB‑устройство.

Linux

На клиенте (пример Ubuntu):

$ sudo apt-get install usbip
$ sudo modprobe vhci-hcd
$ sudo usbip -l 
$ sudo usbip -a  X-Y

vhci‑hcd — это виртуальный USB‑хост‑контроллер, который создаёт виртуальное соединение с удалённым устройством.

Чек‑лист администратора

  • Проверить, что пакет usbip доступен в репозитории дистрибутива.
  • Установить usbip и загрузить модули usbip, usbip_common_mod и usbipd.
  • Убедиться, что устройство корректно определено командой lsusb.
  • Найти bus‑ID через usbip_bind_driver –list.
  • Привязать устройство через usbip_bind_driver –usbip .
  • Открыть/настроить сетевой доступ: firewall/NAT/VPN.
  • На клиенте установить usbip, загрузить vhci-hcd и подключиться.

Устранение неполадок

  • Демон usbip не запускается: проверьте, загружены ли модули usbip и usbip_common_mod; запустите с правами root.
  • После привязки устройство исчезло локально: это нормальное поведение — оно перешло под контроль usbip.
  • Клиент не видит устройства: проверьте сетевую доступность порта (по умолчанию usbipd слушает TCP), firewall и SELinux/AppArmor.
  • Конфликты драйверов: некоторые устройства требуют специфичных драйверов; в этом случае usbip может не корректно ретранслировать устройство.

Совет: логируйте вывод usbipd и смотрите dmesg/journalctl на обеих сторонах.

Когда подход не сработает (ограничения)

  • Устройства с высокими требованиями к времени отклика (низкая латентность) — аудиоинтерфейсы, некоторые аппаратные ключи — могут работать плохо по сети.
  • Устройства, требующие аппаратного DMA или специальных локальных взаимодействий, могут быть несовместимы.
  • Если на сервере используются драйверы, которые не умеют работать в режиме «отдачи» — устройство может быть недоступно.

Альтернативы

  • Аппаратные USB‑over‑IP девайсы (коммерческие) — проще в управлении, но дороже.
  • L2/L3 VPN и проброс локально подключённого устройства через клиентскую машину (USB‑редиректоры) — когда целесообразно держать устройство на рабочей станции.
  • Использование специализированных сетевых шлюзов для конкретных устройств (сканеры, принтеры) — если они доступны.

Безопасность и приватность

  • Трафик между клиентом и сервером проходит открыто, если не использовать VPN или SSH‑туннель. Рекомендуется ставить соединение в защищённую сеть или через VPN.
  • Доступ к usbipd следует ограничить по IP и использовать брандмауэр.
  • Аппаратные ключи (dongles) и устройства идентификации следует хранить и выдавать только доверенным клиентам.

Критерии приёмки

  • Устройство отображается в клиентской ОС и функционирует по назначению (проверка: вебкамера показывает изображение, принтер печатает, криптоключ открывает доступ).
  • На сервере устройство успешно привязано и демон usbipd работает.
  • Подключение устойчиво в течение тестовой сессии (минимум 30 минут) без неожиданных разрывов.
  • Соединение защищено сетью или VPN, если в устройстве содержатся чувствительные данные.

Тестовые сценарии

  • Подключение/отключение устройства: привязать, подключить клиентом, отключить клиентом, отвязать на сервере.
  • Нагрузочный тест: эмуляция многократных подключений и переключений между клиентами.
  • Сценарий отказа: симуляция обрыва сети — проверить восстановление или корректное отключение.

Быстрая памятка команд

  • Установка (Debian/Ubuntu):
$ sudo aptitude install usbip
$ sudo modprobe usbip usbip_common_mod
$ usbipd -D
$ lsusb
$ sudo usbip_bind_driver --list
$ sudo usbip_bind_driver --usbip 
  • Клиент (Linux):
$ sudo apt-get install usbip
$ sudo modprobe vhci-hcd
$ sudo usbip -l 
$ sudo usbip -a  X-Y
  • Клиент (Windows):
> usbip.exe -l 
> usbip.exe -a  X-Y

Рекомендации по эксплуатации и роли

Администратор: настраивает сервер, следит за брандмауэром, ведёт инвентаризацию USB‑устройств и логирует сессии.
Пользователь: запрашивает доступ, подключается клиентским ПО и тестирует функциональность устройства.

Короткая сводка (итоги)

  • usbip позволяет делиться USB‑устройствами по сети и подходит для виртуальных сред и удалённых клиентов.
  • Настройка состоит из установки, загрузки модулей, привязки устройства на сервере и подключения с клиента.
  • Следует учитывать ограничения по совместимости, задержкам и безопасности.

FAQ

Как вернуть устройство обратно на сервер после привязки?

Отключите его с клиента (usbip detach) или на сервере выполните отвязку драйвера и перезагрузите модуль, чтобы устройство снова стало локальным.

Нужен ли VPN?

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

Работает ли это с виртуальными машинами?

Да. На гостевых ОС можно подключать удалённые USB‑устройства так же, как если бы они были локальными.


Краткое резюме:

  • Включите usbip на сервере, привяжите USB по bus‑ID.
  • На клиенте загрузите vhci‑hcd и подключитесь к серверу.
  • Контролируйте безопасность и совместимость устройств.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро