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

14日間の無料トライアル
ライセンス価格は $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)」をクリックします。

これで完了です!

この手順を完了すると、インターネットに接続された任意のマシン(Linux、Windows、MacなどのOSを搭載)から共有デバイスにアクセスできるようになります。リモートマシンとの物理的な距離に関係なく利用可能です。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デバイスを共有するのに適したマルチプラットフォーム対応です。また、共有できるデバイスの数に制限はありません。

Ethernet経由でUSBを共有する
14日間の無料トライアル

ビデオチュートリアル:

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を試してみましょう
14日間の無料トライアル

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

距離制限
距離制限
制限なし
 
LAN内の範囲のみ
 
対応プラットフォーム:
対応プラットフォーム:
 
 
サーバープラットフォーム
サーバープラットフォーム
✓ Windows
✓ Linux
✓ macOS
✓ Android
 
✓ Linux
 
クライアントプラットフォーム
クライアントプラットフォーム
✓ Windows
✓ Linux
✓ macOS
 
✓ Windows(ベータ版)
✓ Linux
 
トラフィック最適化
トラフィック最適化
暗号化(オプション)
 
N/A
 
セキュリティ
セキュリティ
パスワード保護
 
N/A
 
暗号化
暗号化
2048ビットSSL
 
N/A
 
無線接続
無線接続
対応
 
N/A
 
アクティビティログ
アクティビティログ
対応
 
N/A
 

締めくくり

どの方法を選ぶにしても、「無料オプションが必ずしも最良とは限らない」ことを覚えておいてください。最初は節約できるように見えても、後になってコストがかさむ場合があります。10回中9回は、簡単に使えて問題を引き起こさない、信頼性の高いアプリに投資する方が、運用全体を危険にさらし、無料ツールの次の不具合を待ち受けるよりも遥かに有益です。

USB Network Gate

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