Electronic Team uses cookies to personalize your experience on our website. By continuing to use this site, you agree to our cookie policy. Click here to learn more.

Raspberry Piを使用したUSBのEthernet共有を簡単にする方法

Editorial Team Editorial Team
Jan 21, 2025

USBデバイスをネットワーク経由で共有できると、日常生活の多くの場面で非常に便利です。例えば、オフィス全体で使用するソフトウェアのライセンスドングルを持っている場合、頻繁な接続と取り外しによってドングルが破損する可能性があります。新しいライセンスを全員分購入する予算がない場合、代替方法を検討する必要があります。

無料版あり
ライセンス価格は以下の通りです $159.95
以下でご利用いただけます:
Ethernet経由でUSBを共有するRaspberry Pi

Raspberry Piを使用して、USBデバイスをTCP/IP経由で共有できることをご存じですか?この方法を実現するためには、特別なソフトウェアが必要です。ここでは、有料の信頼性の高いアプリと、無料ですが不安定なオープンソースソリューションを比較し、それぞれの特徴を詳しく見ていきます。

Raspberry PiでUSBを共有する最も簡単な方法

Raspberry PiをUSB-over-Ethernetサーバーとしてセットアップするには、まずRaspberry PiがUbuntu 14.04〜19.10で動作しており、共有するデバイスに接続されていることを確認します。その後、以下の手順に従ってください:
1
使用しているOSに適したUSB Network Gateのバージョンをダウンロードします。
2
Raspberry Piで以下のコマンドを実行します:
dpkg -i [パッケージ]
apt-get install -f
rpm -i [パッケージ]


または、以下のコマンドを使用できます: yum install [パッケージ]
3
アプリを起動し、デバイスの横にある「共有(Share)」をクリックします。

以上です!

その後は、インターネットに接続されたどのマシンからでも共有デバイスにアクセスできるようになります。リモート側のマシンのOSや物理的な距離は関係ありません(Linux、Windows、Macに対応)。さらに、LinuxマシンでUSB Network Gateを起動するためにカーネルモジュールをロードする必要もありません。加えて、このアプリはVMware、VMware ESX Server、Citrix XenServer、Microsoft Hyper-Vの仮想マシンでも使用できます。この方法は、あらゆる種類・ブランドのUSBデバイスで動作します。デバイスの共有/共有解除はすべて即座に反映され、システムの再起動は不要です。

USB Network Gateで確立されるすべての接続は、高度な2048ビットSSL暗号化により完全に安全です。さらに、追加保護のために認証パスワードを設定することもできます。そのため、データが第三者の手に渡る心配はまったくありません。

USB Network Gateを選ぶ最大の利点は、Raspberry Piを恒久的にUSB-over-IPサーバーにする必要がないことです。これは、手元にあるあらゆるマシンからUSBデバイスを共有するのに最適なマルチプラットフォームソリューションであり、共有できるデバイス数にも制限はありません。USB Network Gateは現在、個人利用(USBデバイス1台の共有)で無料となっており、Raspberry Piを使ったプロフェッショナルなUSB共有を誰でも利用できるようになっています。

Ethernet経由でUSBを共有する
無料版あり

ビデオチュートリアル:

USBデバイスをネットワークで共有する方法:Raspberry Pi編

Raspberry Piで無料アプリを使用してUSBを共有する方法

この方法は基本的にUbuntuでUSBをIP経由で共有するのと同じですが、今回は別のアプリを使用します。このアプリはLinuxベースのオープンソースソフトウェアであり、まだ開発段階にあるため、設定が技術的に難しい場合があります。初めての試行で失敗しても落ち込まないように準備しておいてください。

事前に注意すべき重要なポイント:

  • この方法はローカルネットワーク外では動作しません。
  • Linux PCからのみデバイスを共有できます。
  • 共有デバイスとの距離が近いほど接続性が良くなります。
  • 情報が不正アクセスにさらされる可能性があります。
  • トラフィックの最適化は一切行われません。

Raspberry Piをサーバーとして設定する手順

1
アプリをインストールする
以下のコマンドを使用してください:
sudo apt install usbip
2
必要なカーネルモジュールを追加する
以下のコマンドを実行します:
sudo modprobe usbip_host
echo 'usbip_host' >> /etc/modules
3
Raspberry Piに接続されているすべてのUSBデバイスのリストを確認する 以下のコマンドを使用します: lsusb
4
共有するデバイスのUSB ID番号をメモする。
5
デバイスのバスIDを確認する
次のコマンドを使用し、先ほど確認したUSB ID番号を基に適切なデバイスを特定します:
usbip list -p -l
6
バスIDを使用してデバイスを共有に設定する
以下のコマンドを実行します(Nは前のステップで特定したバスID番号):
sudo usbip bind --busid=N
7
デーモンを実行し、デバイスをUSB/IPにアタッチする
以下のコマンドを使用します:
usbipd

または、systemdサービスを作成します:
vi /lib/systemd/system/usbipd.service

サービス定義ファイル(デバイスのUSB ID番号Nを実際の値に置き換えてください):

[Unit]
Description=usbip host daemon
After=network.target

[Service] Type=forking ExecStart=/usr/sbin/usbipd -D ExecStartPost=/bin/sh -c "/usr/sbin/usbip bind --$(/usr/sbin/usbip list -p -l | grep '#usbid=N#' | cut '-d#' -f1)" ExecStop=/bin/sh -c "/usr/sbin/usbip unbind --$(/usr/sbin/usbip list -p -l | grep '#usbid=N#' | cut '-d#' -f1); killall usbipd"
[Install] WantedBy=multi-user.target
8
サービスを開始する
サービスを作成した場合、以下のコマンドを実行します:
sudo systemctl --system daemon-reload
sudo systemctl enable usbipd.service
sudo systemctl start usbipd.service

クライアント側のセットアップガイド

注記: アプリのWindows向けクライアント版はベータ版であり、Windows 10には対応していません。そのため、ここでは考慮しません。

1
クライアントPCでアプリをインストール
以下のコマンドを実行してください:
sudo -s
apt-get install linux-tools-generic -y
2
カーネルモジュールを有効化
以下のコマンドを使用してモジュールを有効化します:
modprobe vhci-hcd
echo 'vhci-hcd' >> /etc/modules
3
共有デバイスに接続
以下のコマンドを実行し、0.0.0.0をRaspberry Piの実際のIPアドレスに置き換えます:
sudo usbip attach -r 0.0.0.0

または、systemdサービスを作成する方法もあります:
vi /lib/systemd/system/usbip.service

定義:


[Unit]
Description=usbip client
After=network.target

[Service] Type=oneshot RemainAfterExit=yes ExecStart=/bin/sh -c "/usr/lib/linux-tools/$(uname -r)/usbip attach -r 0.0.0.0 -b $(/usr/lib/linux-tools/$(uname -r)/usbip list -r 0.0.0.0 | grep 'N' | cut -d: -f1)" ExecStop=/bin/sh -c "/usr/lib/linux-tools/$(uname -r)/usbip detach --port=$(/usr/lib/linux-tools/$(uname -r)/usbip port | grep '<Port in Use>' | sed -E 's/^Port ([0-9][0-9]).*/\1/')"
[Install] WantedBy=multi-user.target

重要:
Nを実際のデバイスのUSB ID番号に、0.0.0.0をRaspberry PiのIPアドレスに置き換えてください。

サービスの保存と開始:
上記の定義を保存した後、以下のコマンドを実行してサービスを開始します:

sudo systemctl --system daemon-reload
sudo systemctl enable usbip.service
sudo systemctl start usbip.service


クライアントマシンから共有デバイスにアクセスできない場合は、サーバーセットアップガイドのステップ1からやり直してください。

重要事項: 共有中はRaspberry PiからUSBデバイスを取り外さないでください。 デバイスを安全に取り外すには、最初にRaspberry Piの電源をオフにしてからデバイスを取り外してください。これにより、データ損失やデバイスの損傷を防ぐことができます。

今すぐUSB Network Gateを試してみましょう
無料版あり

比較表: 2つの方法の比較

距離制限
距離制限
 
 
対応プラットフォーム:
対応プラットフォーム:
 
 
サーバープラットフォーム
サーバープラットフォーム
 
 
クライアントプラットフォーム
クライアントプラットフォーム
 
 
トラフィック最適化
トラフィック最適化
 
 
セキュリティ
セキュリティ
 
 
暗号化
暗号化
 
 
無線接続
無線接続
 
 
アクティビティログ
アクティビティログ
 
 

締めくくり

どの方法を選ぶにしても、適切なツールを選ぶことが重要であることを忘れないでください。USB Network Gate は現在、個人利用向けの無料版(USB デバイス1台を無料で共有)を提供しており、個人の Raspberry Pi プロジェクトや非商用アプリケーションに最適です。商用利用や高度な機能については、有料ライセンスが $159.95 から利用できます。この実績あるアプリは使いやすく、トラブルの原因にもならないため、趣味で使う方にもプロフェッショナルな導入にも理想的です。

USB Network Gate

USBデバイスをネットワーク経由でリダイレクト
無料版あり
ライセンス価格は以下の通りです $159.95
以下でご利用いただけます: