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

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

• 4 min read • Linux • Обновлено 25 Nov 2025
USB-over-IP в Mandriva 2010.0 — настройка
USB-over-IP в Mandriva 2010.0 — настройка

Кратко: подробно показано, как собрать и запустить usbip на Mandriva 2010.0, экспортировать USB-устройство с сервера и подключить его с клиента. Включены команды сборки, привязки BUSID и рекомендации по безопасности и отладке.

Версия и автор

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

Введение

В этом руководстве показано, как настроить сервер USB-over-IP на Mandriva 2010.0 и соответствующий клиент (также Mandriva 2010.0). Проект USB/IP реализует общую систему шаринга USB-устройств по IP: USB I/O сообщения инкапсулируются в TCP/IP и передаются между компьютерами. USB-over-IP полезен, например, для виртуальных машин, которым нужен удалённый доступ к USB-устройствам хоста.

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

1 Предварительное замечание

Это руководство основано на инструкции AliRezaTaleghani How To Modify Your Gnu/Linux Box To Serve As A USB Over IP Server, но адаптировано под Mandriva 2010.0 (сервер и клиент). Если вы планируете клиент на Windows, посмотрите оригинал AliRezaTaleghani — эта часть там остаётся актуальной.

В примерах я использую сервер server1.example.com с IP 192.168.0.100 и клиент client1.example.com с IP 192.168.0.101, оба под Mandriva 2010.0. Замените адреса и имена хостов на свои.

2 Установка и использование USB/IP на сервере

server1:

Сначала загрузим модуль ядра usbip:

modprobe usbip

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

lsmod | grep usbip

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

[root@server1 administrator]# lsmod | grep usbip  
usbip                  17988  0  
usbip_common_mod       22168  1 usbip  
usbcore               219188  2 usbip  
[root@server1 administrator]#

Чтобы модуль загружался автоматически при старте, добавьте его в /etc/modprobe.preload:

vi /etc/modprobe.preload

| [...] usbip |

Пакета usbip для Mandriva 2010.0 нет в репозиториях, поэтому соберём его вручную:

urpmi wget flex gcc gcc-c++ libsysfs-devel libglib2.0-devel
cd /tmp  
wget http://downloads.sourceforge.net/project/usbip/usbip/0.1.7/usbip-0.1.7.tar.gz?use_mirror=kent  
tar xvfz usbip-0.1.7.tar.gz  
cd usbip-0.1.7/src/  
./autogen.sh  
./configure  
make  
make install

usbip ожидает файл с базой Vendor/Device ID (usb.ids) в /usr/share/hwdata, а в Mandriva 2010.0 он находится в /usr/share/usb.ids — создадим симлинк:

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

Запустим демон usbip:

usbipd -D

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

[root@server1 src]# usbipd -D  
Bind usbip.ko to a usb device to be exportable!  
[root@server1 src]#

Теперь подключите USB-устройство, которое хотите экспортировать (в примере — флешка SanDisk).

Выполните:

lsusb

Найдите Vendor/Device ID в формате:

Bus XXX Device YYY: ID VendorID:DeviceID

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

[root@server1 src]# 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 001 Device 003: ID 0781:5151 SanDisk Corp. Cruzer Micro Flash Drive  
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub  
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub  
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub  
[root@server1 src]#

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

Запустите:

bind_driver --list

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

[root@server1 src]# bind_driver --list  
List USB devices  
 - busid 1-4 (058f:6362)  
         1-4:1.0 -> usb-storage  
  
 - busid 1-5 (0781:5151)  
         1-5:1.0 -> usb-storage  
  
[root@server1 src]#

Как видно, Vendor/Device ID 0781:5151 соответствует BUSID 1-5. Этот BUSID нужен, чтобы привязать устройство к usbip:

bind_driver --usbip 1-5

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

[root@server1 src]# bind_driver --usbip 1-5  
 (process:5807): DEBUG:  1-5:1.0      -> usb-storage  
 (process:5807): DEBUG: unbinding interface  
 (process:5807): DEBUG: write "add 1-5" to /sys/bus/usb/drivers/usbip/match_busid  
 Message: bind 1-5 to usbip, complete!  
[root@server1 src]#

Готово — устройство экспортировано и доступно для клиентов usbip.

Проверьте, что демон usbipd слушает порт 3240, и откройте порт в брандмауэре при необходимости:

netstat -tap

В примере видно прослушивание 3240 порта:

[root@server1 src]# netstat -tap  
Active Internet connections (servers and established)  
Proto Recv-Q Send-Q Local Address               Foreign Address              State       PID/Program name  
tcp        0      0 *:nfs                       *:*                         LISTEN      -  
...  
tcp        0      0 *:3240                     *:*                         LISTEN      5780/usbipd  
...  
[root@server1 src]#

3 Быстрые советы по безопасности и отладке

Важно: USB-over-IP предоставляет прямой доступ к USB-устройствам. Разрешайте соединения только между доверенными хостами и используйте сетевые механизмы защиты (firewall, VPN).

  • Разрешайте порт 3240 только для доверенных адресов.
  • Для тестов используйте VLAN или отдельную тестовую сеть.
  • При проблемах проверьте логи демона и dmesg на клиенте и сервере.

Когда это не сработает

  • Устройство использует нестандартные драйверы/firmware, не поддерживаемые usbip.
  • Требуется высокопроизводительная/низкозадержанная передача (USB-over-IP добавляет накладные расходы).
  • На клиенте/сервере несовместимые версии ядра или usbip-библиотек.

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

  • Подключать устройство физически к нужному хосту.
  • Использовать специализированные сетевые USB-хабы (аппаратные устройства).
  • Для виртуальных машин — проброс USB через гипервизор (если поддерживается) вместо сетевого usbip.

Мини-методология для внедрения в прод среде

  1. Тестирование: сконфигурируйте тестовый сервер и клиент в изолированной сети.
  2. Совместимость: проверьте поддерживаемые устройства и драйверы.
  3. Безопасность: настройте firewall/VPN, ограничьте доступ по IP.
  4. Документирование: фиксируйте BUSID и назначение устройств.
  5. Мониторинг: следите за загрузкой сети и логами usbipd.

Чеклист администратора перед экспортом устройства

  • Сделан бэкап данных с USB-устройства.
  • Модуль usbip добавлен в /etc/modprobe.preload.
  • Порт 3240 открыт только для доверенных адресов.
  • Привязка bind_driver выполнена и проверена.
  • Клиент протестирован в тестовой среде.

Короткий глоссарий

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

Резюме

USB-over-IP позволяет гибко делиться физическими USB-устройствами по сети, что удобно для виртуальных машин и удалённых хостов. На Mandriva 2010.0 usbip нужно собрать вручную, затем запустить демон, найти BUSID устройства и привязать устройство для экспорта. Не забывайте про безопасность (порт 3240) и совместимость драйверов.

Ключевые команды упомянуты в тексте: modprobe usbip, lsmod, lsusb, bind_driver –list, bind_driver –usbip , usbipd -D.

Дополнительные рекомендации: проверяйте логи и используйте ограничение доступа по IP/VPN при развёртывании в продакшн.

Поделиться: 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 быстро