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

Как настроить USB-over-IP сервер и клиент на OpenSUSE 11.2

• 6 min read • Linux • Обновлено 19 Nov 2025
USB-over-IP на OpenSUSE 11.2 — настройка сервера и клиента
USB-over-IP на OpenSUSE 11.2 — настройка сервера и клиента

Кратко: этот пошаговый гид показывает, как установить и запустить usbip на сервере и подготовить серверную сторону на OpenSUSE 11.2. Он объясняет загрузку модулей ядра, привязку USB-устройства к usbip, запуск демона и проверку прослушиваемого порта. Подготовьте IP/имена хостов заранее и убедитесь, что порт 3240 открыт или проброшен.

Version 1.0
Author: Falko Timme
Следите за мной в Twitter

Введение

В этом руководстве показано, как развернуть USB-over-IP (usbip) сервер на OpenSUSE 11.2 и подготовить серверную часть, чтобы удалённые клиенты могли использовать USB-устройства через сеть. Проект USB/IP инкапсулирует USB I/O-сообщения в TCP/IP-пакеты, что позволяет передавать полную функциональность USB-устройств между машинами. Это особенно полезно для виртуальных машин, у которых нет прямого доступа к аппаратуре хоста — они могут использовать удалённые USB-устройства как локальные.

Важно: я не даю гарантии, что инструкции подойдут для всех конфигураций. Хостнеймы и IP в примерах заменяйте на свои.

Предварительные замечания

В примерах используются: сервер server1.example.com с IP 192.168.0.100 и клиент client1.example.com с IP 192.168.0.101, оба на OpenSUSE 11.2. Если у вас другие имена/адреса — подставьте свои.

Примечание: этот материал основан на руководстве AliRezaTaleghani, адаптированном для OpenSUSE 11.2.

Что нужно знать в одной строке

USB-over-IP — технология, позволяющая пробрасывать USB-устройства по сети; клиент получает доступ к устройству так, как будто оно подключено локально.

Требования

  • Сервер и клиент с OpenSUSE 11.2.
  • Права root на серверах для установки пакетов и загрузки модулей ядра.
  • Один или несколько USB-устройств, которые вы хотите экспортировать.
  • Доступ по сети между сервером и клиентом.
  • Открытый/проброшенный порт TCP 3240 (usbipd).

Important: тестируйте на не критичном оборудовании прежде чем применять в продакшене.

1. Установка и использование usbip на сервере

В примере имя сервера — server1.

Установим пакет usbip:

yast2 -i usbip

На OpenSUSE 11.2 файл usb.ids, содержащий список USB-устройств (Vendor/Device ID), ожидается в /usr/share/hwdata, но в пакете он находится в /usr/share/usbip/usb.ids — создадим симлинк:

mkdir /usr/share/hwdata
ln -sf /usr/share/usbip/usb.ids /usr/share/hwdata/

Загрузим модули ядра usbip:

modprobe usbip
modprobe usbip_common_mod

Проверим, что модули загружены:

lsmod | grep usbip

Ожидаемый вывод похож на этот:

server1:~ # lsmod | grep usbip
usbip                  21540  0
usbip_common_mod       25232  1 usbip
server1:~ #

Чтобы модули автоматически загружались при загрузке системы, добавьте их в переменную MODULES_LOADED_ON_BOOT в файле /etc/sysconfig/kernel:

vi /etc/sysconfig/kernel

Найдите строку MODULES_LOADED_ON_BOOT и убедитесь, что она содержит usbip и usbip_common_mod. Пример фрагмента файла:

[...]
## Type:                string
## ServiceRestart:      boot.loadmodules
#
# This variable contains the list of modules to be loaded
# once the main filesystem is active
# You will find a few default modules for hardware which
# can not be detected automatically.
#
MODULES_LOADED_ON_BOOT="usbip usbip_common_mod"
[...]

После редактирования примените конфигурацию:

SuSEconfig

Запустите демон usbipd в фоне:

usbipd -D

Пример вывода:

server1:~ # usbipd -D
Bind usbip.ko to a usb device to be exportable!
server1:~ #

Теперь подключите USB-устройство, которое хотите экспортировать (в примере используется флеш-накопитель SanDisk). Определите устройство с помощью lsusb:

lsusb

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

Bus XXX Device YYY: ID VendorID:DeviceID

Пример вывода на сервере:

server1:~ # lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 058f:6362 Alcor Micro Corp. Hi-Speed 21-in-1 Flash Card Reader/Writer (Internal/External)
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 0781:5151 SanDisk Corp. Cruzer Micro Flash Drive
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
server1:~ #

В примере Vendor/Device ID флешки — 0781:5151.

Посмотреть список USB-устройств и соответствия драйверов можно с помощью bind_driver:

bind_driver --list

Пример вывода:

server1:~ # bind_driver --list
List USB devices
- busid 1-4 (058f:6362)
1-4:1.0 -> usb-storage

- busid 2-5 (0781:5151)
2-5:1.0 -> usb-storage

server1:~ #

В этом выводе BUSID для SanDisk — 2-5. Чтобы сделать устройство экспортируемым, привяжите его к usbip:

bind_driver --usbip 2-5

Пример вывода:

server1:~ # bind_driver --usbip 2-5
 (process:2952): DEBUG:  2-5:1.0      -> usb-storage
 (process:2952): DEBUG: unbinding interface
 (process:2952): DEBUG: write "add 2-5" to /sys/bus/usb/drivers/usbip/match_busid
 Message: bind 2-5 to usbip, complete!
server1:~ #

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

Важно: проверьте, что демон действительно слушает порт 3240. Для этого используйте netstat или ss:

netstat -tap

Ожидаемый фрагмент вывода:

server1:~ # netstat -tap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 *:triomotion            *:*                     LISTEN      2948/usbipd
... (остальные строки опущены)
server1:~ #

Triomotion — это имя сервиса для порта 3240 в /etc/services на некоторых системах. Убедитесь, что ваш брандмауэр не блокирует этот порт.

Важные заметки по безопасности

  • Не экспонируйте порт 3240 напрямую в Интернет без защиты.
  • Для безопасного использования в небезопасных сетях — пробрасывайте трафик через SSH-туннель или VPN.
  • Можно ограничить доступ по IP в iptables/Firewalld или через маршрутизацию на уровне сети.

Пример простого правила iptables, разрешающего доступ к порту 3240 только с подсети 192.168.0.0/24:

iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 3240 -j ACCEPT
iptables -A INPUT -p tcp --dport 3240 -j DROP

Note: команды iptables приведены как пример; на современных системах может использоваться firewalld или nftables.

Альтернативные подходы

  • Виртуальные машины: многие гипервизоры (VirtualBox, VMware) поддерживают проброс USB прямо в гостя. Если цель — только виртуальная машина, этот метод проще.
  • Аппаратный USB-over-IP: сетевые USB-хабы или профессиональные KVM/USB-удлинители.
  • SSH/VPN + локальный проброс устройств: если usbip не подходит по совместимости, проброс через VPN и использование локальных механизмов может быть безопаснее.

Когда это может не работать

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

Проверка и критерии приёмки

Критерии приёмки для простого теста с флешкой:

  • usbipd запущен на сервере и слушает порт 3240.
  • Устройство привязано к usbip и отображается в bind_driver –list.
  • Клиент подключается к серверу и видит устройство как локальное (см. клиентский раздел документации).

Тестовые шаги (минимум): подключить флешку, выполнить bind_driver, проверить netstat, на клиенте подключиться и смонтировать файловую систему.

Руководство по устранению неисправностей

  • Если lsusb не показывает устройство — проверьте физическое подключение и dmesg.
  • Если bind_driver сообщает об ошибке — убедитесь, что устройство не занято локальным драйвером.
  • Если клиент не подключается — проверьте доступность порта 3240 и правила брандмауэра.
  • Для глубокого анализа включайте отладочный вывод демона и смотрите сообщения ядра в dmesg/syslog.

Роль‑ориентированный чеклист для админа

  • Убедиться, что пакет usbip установлен.
  • Проверить и/или создать симлинк usb.ids.
  • Загрузить модули: usbip и usbip_common_mod.
  • Добавить модули в MODULES_LOADED_ON_BOOT.
  • Запустить usbipd и проверить netstat/ss.
  • Ограничить доступ к порту 3240 правилами брандмауэра.
  • Протестировать подключение с тестовой машины.

Простая методика миграции и отката

  • До изменений: сделать снимок конфигурации, сохранить /etc/sysconfig/kernel.
  • Внедрение: установить пакет, добавить модули, запустить демон.
  • Тестирование: проверить доступ от тестового клиента.
  • Откат: удалить строки из MODULES_LOADED_ON_BOOT, остановить демон usbipd, выполнить SuSEconfig.

Краткая совместимость и советы

  • Для Windows-клиентов существуют отдельные реализации или порты usbip; см. исходное руководство AliRezaTaleghani для примеров с Windows.
  • На новых версиях ядра и дистрибутивах путь к usb.ids и имена утилит могут отличаться — проверяйте документацию пакета в вашем репозитории.

1‑строчный глоссарий

  • usbip: проект и пакет для проброса USB по сети.
  • usbipd: демон, управляющий экспортируемыми USB-устройствами.
  • bind_driver: утилита для привязки USB-устройства к usbip.
  • BUSID: идентификатор устройства в формате шины-адреса (например, 2-5).

Итог

USB-over-IP — удобный способ предоставить удалённый доступ к физическим USB-устройствам из других систем и виртуальных машин. На OpenSUSE 11.2 процесс сводится к установке пакета, созданию нужных симлинков, загрузке модулей, привязке устройства и запуску usbipd. Обязательно учитывайте безопасность сети и совместимость устройств.

Summary:

  • Установите usbip и создайте симлинк usb.ids.
  • Загрузите и добавьте модули в автозагрузку.
  • Привяжите USB-устройство к usbip и запустите usbipd.
  • Проверьте, что порт 3240 доступен и закройте доступ извне при необходимости.
Поделиться: 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 быстро