Главная >> Инструкции >> Как расшарить USB по сети в Linux

Как расшарить USB по сети в Linux

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

В этой статье мы рассмотрим несколько программ позволяющих реализовать такую возможность. Одной из них будет USB Network Gate. Это платная программа, но она позволяет расшарить устройства usb по сети в Linux очень быстро и просто. У программы удобный графический интерфейс и очень простая настройка. Также рассмотрим свободную альтернативу usbip, с помощью которой можно расшарить usb по сети в терминале. Начнем с коммерческой программы.


Содержание статьи

Usb Network Gate

Usb Network Gate - это программа от Elitma Software, позволяющая получить доступ к любым USB устройствам подключенным к вашему компьютеру через сеть. При чем это может быть не только локальная сеть но и интернет.

У программы кроме версии для Linux есть версии для Windows, Mac и даже приложение для Android. Лицензия с возможностью передать по сети один USB порт стоит $89.99 но у нее есть пробный период размером 14 дней. После окончанию пробного периода вы не можете расшаривать свои устройства, но зато можете подключать уже розданные.

Установка Usb Newtork Gate

Установка USB Network Gate в Linux выполняется очень просто. Скачать установочный пакет для своего дистрибутива можно на официальном сайте.

usbshare

Здесь достаточно просто нажать кнопку скачать, а затем выбрать версию для своего дистрибутива:

usbshare1

После завершения загрузки, для установки перейдите в папку с файлом и выполните:

dpkg -i usb_network_gate.deb

Для Ubuntu или:

rpm -i usb_network_gate.rpm

Для RedHat и других использующих rpm систем. Возможно для работы программы понадобится библиотека libudev.so.0, если такой версии библиотеки нет в вашей системе создайте ссылку на libudev.so.1 следующей командой:

ln -s /usr/lib/libudev.so.1 /usr/lib/libudev.so.0

Раздача USB устройств по сети

Запустить программу можно из главного меню или выполнив в терминале:

eveusb

Главное окно программы выглядит вот так:

usbshare2

 

 

Чтобы расшарить USB устройство по сети достаточно кликнуть по нему правой кнопкой мыши и выбрать в контекстном меню пункт Share.

 

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

usbshare3

На удаленной машине, чтобы подключить наше устройство, сначала нужно его найти. Для этого перейдите на вкладку Remote USB Devices и нажмите кнопку Find:

usbshare4

В открывшимся окне, если компьютеры находятся в локальной сети можно просто нажать Find All, если же нет нужно  указать ip адрес компьютера на котором расшаренно USB устройство, а затем нажать кнопку Find:

usbshare5

Дальше остается только добавить выбранное устройство с помощью кнопку Add remote device.

Чтобы подключить USB просто выберите в контекстном меню опцию Connect:

usbshare8

Дальше вы увидите, что состояние изменилось на Connected, а к системе было подключено новое USB устройство:

usbshare7

Чтобы его отключить просто выберите опцию Disconnect.

USBIp

Это бесплатная утилита с открытым исходным кодом для доступа к USB устройствам по сети. Она во многом проигрывает USB Network Gate, в основном через отсутствие графического интерфейса и сложной настройки.

Установка usbip

Устанавливается программа из официальных репозиториев:

sudo apt install linux-tools-generic

Или для Red Hat:

sudo yum install usbip

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

Настройка сервера

Загрузим нужные модули ядра:

sudo modprobe usbip-host

sudo modprobe usbip-core

Запускаем демон:

sudo usbipd -D

Программа готова к использованию. Теперь с помощью lsusb находим наше устройство:

lsusb

Bus 002 Device 014: ID 13fe:5500 Kingston Technology Company Inc

Нам нужна пара VendorID:DeviceID, вот она: 13fe:5500. Теперь выполните:

sudo usbip list -l

- busid 2-2 (13fe:5500)
2-2:1.0 -> usb-storage
- busid 4-1 (0458:0708)
4-1:1.0 -> usbhid
4-1:1.1 -> usbhid
- busid 4-3 (09da:9090)
4-3:1.0 -> usbhid
4-3:1.1 -> usbhid

Программа просканирует все подключенные устройства и покажет и в нужном формате, вместе с их busid. Опция -l указывает что нужно сканировать локальные устройства. Как видите наше USB устройство первое в списке.

Теперь, когда мы знаем busid можно расшарить USB устройство по сети в Linux:

usbip bind -b 2-2

usbip: info: bind device on busid 2-2: complete

Готово, наше USB устройство расшарено, осталось подключить его на клиентской машине. Смотрим список доступных устройств:

sudo usbip list -r 192.168.56.1

Exportable USB devices
======================
- 192.168.56.1
2-2: Kingston Technology Company Inc. : unknown product (13fe:5500)
: /sys/devices/pci0000:00/0000:00:13.2/usb2/2-1
: (Defined at Interface level) (00/00/00)

После -r нужно указать ваш IP адрес. Осталось подключить наше устройство:

sudo usbip attach -r 192.168.56.1 -b 2-2

Чтобы отключить устройство нужно сначала узнать его порт:

sudo usbip port

Затем отключаем:

sudo usbip detach 00

И прекращаем шаринг устройства по сети на сервере:

sudo usbip unbind -b 2-2

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

7 комментариев к “Как расшарить USB по сети в Linux”

  1. usb принтеры расшариваются с помощью cups, там достаточно простая настройка, еще вариант - виртуальный принтер гугл.

    Ответить
  2. С удовольствием читаю некоторые статьи, спасибо. Но читать о платных программах для Linux? Извините, мимо.

    Ответить
  3. C usbip на ubuntu 16.04 получилось и расшарить и приконектить расшаренную флешку на другой ubuntu 16.04. А как приконектить расшаренную флешку на Windows, есть ли клиенты поддерживающие эту версию usbip для Windows XP?

    Ответить

Оставьте комментарий