2025年7月18日金曜日

Tunneling VLAN

 https://network.yamaha.com/setting/router_firewall/vpn/connect/l2tpv3_ipsec-rtx1200

参照


つの拠点間で同一セグメントのネットワークを構築する

 2023/7/12)

本設定例では、L2TPv3/IPsecトンネル機能を使用しています。

L2TPv3/IPsecトンネル機能の対応機種は、RTX5000(Rev.14.00.12以降)、RTX3510RTX3500(Rev.14.00.12以降)、RTX1300RTX1220RTX1210RTX1200(Rev.10.01.53以降)、RTX830RTX810(Rev.11.01.21以降)、NVR700WvRX(VMware ESXi版)です。

構成図 2つの拠点間で同一セグメントのネットワークを構築する

L2TPv3(Layer 2 Tunneling Protocol version 3)を利用して、複数の拠点で同一セグメントのネットワークを構築する設定例です。
L2TPv3を利用すると、遠隔地にあるヤマハ製のスイッチやアクセスポイントをひとつの拠点でまとめて管理できます。タグVLAN機能やDHCPによるIPアドレス割り当て機能、DHCP認証機能など、レイヤー2のプロトコルを利用した機能を遠隔地の機器に対して設定できます。
また、IPsecを併用して通信を暗号化することでデータの機密性や完全性を確保した、セキュリティーの高いネットワークを構築します。

技術情報:L2TPv3を用いたL2VPN

これから新規に拠点間で同一なセグメントのネットワークを構築したい場合は、本設定例をお試しください。
既存ネットワークのプライベートアドレスが重複しているが変えたくない場合は、こちらを参照ください。

光回線に接続するためには、別途ONUが必要です。
NVR700Wは、本体のONUポートに小型ONUを装着することで、光回線に接続できます。

本機能の対応機種のうち、設定例を掲載している機種は、以下のとおりです。

機種掲載内容備考
本社RTX5000 RTX3510 RTX3500 RTX1300 RTX1220 RTX1210 RTX1200 RTX830 RTX810 NVR700Wコマンド設定例 
拠点RTX1300 RTX1220 RTX1210 RTX1200 RTX830 RTX810 NVR700Wコマンド設定例 

本社 ルーター(1)の設定例

経路の設定ip route default gateway pp 1
ブリッジの設定bridge member bridge1 lan1 tunnel1
ip bridge1 address 192.168.100.1/24
プロバイダーとの接続設定pp select 1
pp always-on on
pppoe use lan2
pp auth accept pap chap
pp auth myname (ISP1に接続するID) (ISP1に接続するパスワード)
ppp lcp mru on 1454
ppp ipcp msext on
ppp ccp type none
ip pp address (本社の固定グローバルIPアドレス)
ip pp mtu 1454
ip pp secure filter in 1020 1030 1040 1041 2000
ip pp secure filter out 1010 1011 1012 1013 1014 1015 3000 dynamic 100 101 102 103 104 105 106 107
ip pp nat descriptor 1
pp enable 1
L2TPv3接続を受け入れるための設定tunnel select 1
tunnel encapsulation l2tpv3
tunnel endpoint address 192.168.100.1 (拠点の固定グローバルIPアドレス)
ipsec tunnel 101
ipsec sa policy 101 1 esp aes-cbc sha-hmac
ipsec ike keepalive use 1 on
ipsec ike keepalive log 1 on
ipsec ike local address 1 192.168.100.1
ipsec ike pre-shared-key 1 text (IPsecの事前共有鍵) # 注釈1
ipsec ike remote address 1 (拠点の固定グローバルIPアドレス)
l2tp always-on on
l2tp tunnel auth on (L2TPトンネル認証に用いるパスワード) # 注釈1
l2tp tunnel disconnect time off
l2tp keepalive use on 60 3
l2tp keepalive log on
l2tp hostname (接続相手に通知するホスト名)
l2tp syslog on
l2tp local router-id 192.168.100.1
l2tp remote router-id 192.168.100.2
l2tp remote end-id (L2TPv3のリモートエンドID) # 注釈1
tunnel enable 1
NATの設定nat descriptor type 1 masquerade
nat descriptor address outer 1 (本社の固定グローバルIPアドレス)
nat descriptor masquerade static 1 1 192.168.100.1 udp 500 # 注釈2
nat descriptor masquerade static 1 2 192.168.100.1 esp # 注釈2
IPsecのトランスポートモード設定ipsec transport 1 101 udp 1701
ipsec auto refresh on
L2TPv3の設定l2tp service on l2tpv3
フィルターの設定ip filter source-route on
ip filter directed-broadcast on
ip filter 1010 reject * * udp,tcp 135 *
ip filter 1011 reject * * udp,tcp * 135
ip filter 1012 reject * * udp,tcp netbios_ns-netbios_ssn *
ip filter 1013 reject * * udp,tcp * netbios_ns-netbios_ssn
ip filter 1014 reject * * udp,tcp 445 *
ip filter 1015 reject * * udp,tcp * 445
ip filter 1020 reject 192.168.100.0/24 *
ip filter 1030 pass * 192.168.100.0/24 icmp
ip filter 1040 pass * 192.168.100.1 udp * 500 # 注釈2
ip filter 1041 pass * 192.168.100.1 esp # 注釈2
ip filter 2000 reject * *
ip filter 3000 pass * *
ip filter dynamic 100 * * ftp
ip filter dynamic 101 * * www
ip filter dynamic 102 * * domain
ip filter dynamic 103 * * smtp
ip filter dynamic 104 * * pop3
ip filter dynamic 105 * * submission
ip filter dynamic 106 * * tcp
ip filter dynamic 107 * * udp
DHCPの設定dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.100.3-192.168.100.191/24
DNSの設定dns host lan1
dns server (ISP1より指定されたDNSサーバーのIPアドレス)
dns private address spoof on

拠点 ルーター(2)の設定例

経路の設定ip route default gateway pp 1
ブリッジの設定bridge member bridge1 lan1 tunnel1
ip bridge1 address 192.168.100.2/24
プロバイダーとの接続設定pp select 1
pp always-on on
pppoe use lan2
pp auth accept pap chap
pp auth myname (ISP2に接続するID) (ISP2に接続するパスワード)
ppp lcp mru on 1454
ppp ipcp msext on
ppp ccp type none
ip pp address (拠点の固定グローバルIPアドレス)
ip pp mtu 1454
ip pp secure filter in 1020 1030 1040 1041 2000
ip pp secure filter out 1010 1011 1012 1013 1014 1015 3000 dynamic 100 101 102 103 104 105 106 107
ip pp nat descriptor 1
pp enable 1
L2TPv3接続を受け入れるための設定tunnel select 1
tunnel encapsulation l2tpv3
tunnel endpoint address 192.168.100.2 (本社の固定グローバルIPアドレス)
ipsec tunnel 101
ipsec sa policy 101 1 esp aes-cbc sha-hmac
ipsec ike keepalive use 1 on
ipsec ike keepalive log 1 on
ipsec ike local address 1 192.168.100.2
ipsec ike pre-shared-key 1 text (IPsecの事前共有鍵) # 注釈1
ipsec ike remote address 1 (本社の固定グローバルIPアドレス)
l2tp always-on on
l2tp tunnel auth on (L2TPトンネル認証に用いるパスワード) # 注釈1
l2tp tunnel disconnect time off
l2tp keepalive use on 60 3
l2tp keepalive log on
l2tp hostname (接続相手に通知するホスト名)
l2tp syslog on
l2tp local router-id 192.168.100.2
l2tp remote router-id 192.168.100.1
l2tp remote end-id (L2TPv3のリモートエンドID) # 注釈1
tunnel enable 1
NATの設定nat descriptor type 1 masquerade
nat descriptor address outer 1 (拠点の固定グローバルIPアドレス)
nat descriptor masquerade static 1 1 192.168.100.2 udp 500 # 注釈2
nat descriptor masquerade static 1 2 192.168.100.2 esp # 注釈2
IPsecのトランスポートモード設定ipsec transport 1 101 udp 1701
ipsec auto refresh on
L2TPv3の設定l2tp service on l2tpv3
フィルターの設定ip filter source-route on
ip filter directed-broadcast on
ip filter 1010 reject * * udp,tcp 135 *
ip filter 1011 reject * * udp,tcp * 135
ip filter 1012 reject * * udp,tcp netbios_ns-netbios_ssn *
ip filter 1013 reject * * udp,tcp * netbios_ns-netbios_ssn
ip filter 1014 reject * * udp,tcp 445 *
ip filter 1015 reject * * udp,tcp * 445
ip filter 1020 reject 192.168.100.0/24 *
ip filter 1030 pass * 192.168.100.0/24 icmp
ip filter 1040 pass * 192.168.100.2 udp * 500 # 注釈2
ip filter 1041 pass * 192.168.100.2 esp # 注釈2
ip filter 2000 reject * *
ip filter 3000 pass * *
ip filter dynamic 100 * * ftp
ip filter dynamic 101 * * www
ip filter dynamic 102 * * domain
ip filter dynamic 103 * * smtp
ip filter dynamic 104 * * pop3
ip filter dynamic 105 * * submission
ip filter dynamic 106 * * tcp
ip filter dynamic 107 * * udp
DNSの設定dns host lan1
dns server (ISP2より指定されたDNSサーバーのIPアドレス)
dns private address spoof on

[注釈の説明]

注釈1:
IPsecの事前共有鍵、L2TPトンネル認証に用いるパスワード、接続相手のリモートエンドIDは、それぞれのルーターで同じ文字列を設定します。

注釈2:

2025年7月17日木曜日

Droid VNC

 


ealVNCのダウンロードはこちら

この動画では、RealVNCというVNCビューワを使ってAndroidを遠隔操作したのですが、「droid VNC Server」には、PCやMacのブラウザからでも同じようなことができる機能が搭載されています。

端末にdroid VNC Serverをインストールし、「StartServer」でサーバの起動、「StopServer」でサーバの停止。これだけの操作なので簡単ですね。サーバを起動すると画面したに二つのアクセス方法が表示されます。

上段はVNCビューワ用、下段がブラウザ用。ブラウザ用のURLにアクセスすると、上の動画のような操作がブラウザからでも出来ます。しかし、接続がちょくちょく途切れたりするのでストレスが溜まるかもしれません。

こういったアプリがあれば、Androidのスクリーンショットの撮影ももっと楽になりそうですし、もっと快適にサクサク動くようになればこのままYouTube動画を見ても楽しめそうです。

更新1:遠隔操作していませんでしたね(^^;PCに表示されたホーム画面上をマウスでクリックしたりすれば操作できます。



-----

Fdroid

https://f-droid.org/ja/packages/net.christianbeier.droidvnc_ng/  ここにフォーラム

RasPi キーボード

 


USB Linux Gadgetを使ってRaspberry PiをUSBキーボードと認識させてみた

こんにちは。主に課金周りのサーバーとそのバックシステムを担当しているKです。

皆さんUSB Linux Gadgetをご存知でしょうか。USB Linux GadgetはUDC(USB Device Controller)を備えたデバイスであり、USBホストに接続してシリアルポートやストレージ機能などを追加で拡張することができます。

今回はUSB Linux Gadgetを使ってRaspberry PiをUSBキーボードと認識させて遊んでみました。

準備したもの

  • MacBook
  • Raspberry Pi 4 Model B : OS Linux raspberrypi 5.15.32-v8+
  • Windows11

やってみたこと

Raspberry PiにUSB Linux Gadgetを設定してWindowsにキーボードとして認識させます。

その後、MacからRaspberry Piにキーコードを送ってHIDを通してWindowsにタイプした結果を表示させます。

かんたんな事前知識

USB機器は一見ひとつの機器でも内部的には複数の機能をもつものがあります。これを実現するためにUSBデバイスがどのような仕様のものなのかを、テーブルの形で階層的に保持しています。これをディスクリプタと呼びます。ディスクリプタにはいくつか種類があります。

    • デバイス・ディスクリプタ
      • 一番上のルートに位置するディスクリプタ、ベンダIDやプロダクトIDなどを設定します。
    • コンフィグレーション・ディスクリプタ
      • インターフェース・ディスクリプタとエンドポイント・ディスクリプタの長さや消費電力を設定します。
    • インターフェース・ディスクリプタ
      • ここでインターフェースとしての仕様を設定します。ここに今回の目的であるキーボードであることを設定します。
    • エンドポイント・ディスクリプタ
      • エンドポイントの番号や転送モード、パケットサイズなどを設定します。
    • ストリング・ディスクリプタ
      • デバイスに対する製品名などの文字情報を設定します。これらの情報は任意に設定でき、ホストに接続したときに表示されます。言語ごとに決められたサブディレクトリに構築します。

各ディスクリプタの仕様についてはこちらをご参照ください。

 

今回の機器構成

最初の準備

Raspberry PiにUSB OTGドライバとComposite USB Gadgetsを読み込ませます。

/boot/config.txtに以下を追加します。

dtoverlay=dwc2

/boot/cmdline.txtに以下を追加します。

modules-load=dwc2,libcomposite

間違って記入するとRaspberry Piが立ち上がらなくなるので注意しましょう。

手順

以下、Raspberry Piでの作業です。

デバイスの制御のためにlibcompositeを読み込み、configfsのディレクトリに移動します。

$ modprobe libcomposite
$ cd /sys/kernel/config/usb_gadget/

ガジェットのディレクトリを作成し、移動します。

$ mkdir -p g1
$ cd g1

configfsに設定を書いていきます。各ガジェットには、ベンダーIDと製品IDを登録する必要があります。ベンダーIDと製品IDは各メーカーで個別に決められていますが、今回は以下のものを使います。各ベンダの情報はUSB Information for Developersに記載されています。

デバイス・ディスクリプタの設定の設定をします。

$ echo 0x1d6b > idVendor  # USB IFが割り当てます。今回はLinux Foundationを選択
$ echo 0x0104 > idProduct # ベンダが割り当てます。今回はMultifunction Composite Gadgetを選択
$ echo 0x0100 > bcdDevice # BCD表現のデバイスのリリース番号 v1.0.0にしておきます
$ echo 0x0200 > bcdUSB    # BCD表現のUSB仕様リリース番号 USB2.0にします。

ストリング・ディスクリプタを作成します。

$ mkdir strings/0x409
$ echo "12345678"    > strings/0x409/serialnumber
$ echo "KeyboardTestCCN." > strings/0x409/manufacturer
$ echo "Generic USB Keyboard"  > strings/0x409/product

Functionsの設定をし、レポートディスクリプタを設定します。レポートディスクリプタはデバイスからホストに通知するデータフォーマットを定義するものです。こちらを参考にします。

$ mkdir -p functions/hid.usb0
$ echo 1 > functions/hid.usb0/protocol  # キーボード
$ echo 0 > functions/hid.usb0/subclass  # subclass設定しない
$ echo 8 > functions/hid.usb0/report_length
$ echo -ne \\x05\\x01\\x09\\x06\\xa1\\x01\\x05\\x07\\x19\\xe0\\x29\\xe7\\x15\\x00\\x25\\x01\\x75\\x01\\x95\\x08\\x81\\x02\\x95\\x01\\x75\\x08\\x81\\x03\\x95\\x05\\x75\\x01\\x05\\x08\\x19\\x01\\x29\\x05\\x91\\x02\\x95\\x01\\x75\\x03\\x91\\x03\\x95\\x06\\x75\\x08\\x15\\x00\\x25\\x65\\x05\\x07\\x19\\x00\\x29\\x65\\x81\\x00\\xc0 > functions/hid.usb0/report_desc

コンフィグレーション・ディスクリプタを設定します。

$ mkdir -p configs/c.1
$ echo 250 > configs/c.1/MaxPower

 

$ mkdir -p configs/c.1/strings/0x409
$ echo "Config 1" > configs/c.1/strings/0x409/configuration
$ ln -s functions/hid.usb0 configs/c.1

最後にガジェットを有効化します。後にデバイスにキーコードを送るために権限をつけておきます。

$ ls /sys/class/udc > UDC
$ chmod 777 /dev/hidg0

以上で設定は完了です。Raspberry Piを再起動するとすべての設定が消えてしまいますので、スクリプト化しておくかserviceに登録することをおすすめします。

Windowsでキーボードとして認識されたことを確認する

WindowsでRaspberry Piをキーボードとして認識しているか確認します。

USBデバイスをUSB Device Tree Viewerで見るとちゃんと認識されていました。設定したディスクリプタも確認できます。

Raspberry Piでキーコードを送ってみる

ちゃんとキーボードとして動作するのかやってみます。

以下のコマンドで”a”を押しっぱなしにするキーコードを送ってみます。

$ echo -ne "\0\0\x4\0\0\0\0\0" > /dev/hidg0

あらかじめWindowsでは”a”を表示させるためにエディタを開いてカーソルを置いておきました。キーコードを入力後、エディタをみるとaがずっと入力され続けている様子が見れます。

 

キーを離すキーコードを送ると入力が止まります。

$ echo -ne "\0\0\0\0\0\0\0\0" > /dev/hidg0

おまけ

Raspberry Pi 4 model Bから電源アダプターがUSB-Type Cに変更されています。最初、WindowsにUSBで接続してそのまま給電できるかと思ったのですが電圧が足りずOSが起動しませんでした。しかしWindowsとはUSB TypeCの口を利用して繋ぎたいのでどうしたものかと考えた結果、GPIOから給電させてみたらいけるのではないかとやってみましたら無事起動しました。以下のコマンドで電圧不足をみてlogがでていなかったので足りたのでしょう。

 

$ journalctl -xe | grep "Under-voltage"

まとめ

USB エクステンダー

 



FlexiHubを使ったRaspberry PiからのUSB共有

適切なUSB-Ethernetエクステンダーソフトウェアツールを使用すると、Raspberry PiからUSBをIP経由で共有するのは非常に簡単で、USB延長ケーブル、余分なガジェットを購入したり、CAT5eやCAT6 LANワイヤーを敷設したり、USBをRS32アダプターに使用したりする必要はありません。

Raspberry PiからUSBをIP経由で共有する方法
1
ここでFlexiHubアカウントを登録し、無料のデモ期間を開始します。
 FlexiHub アカウントを登録する
2
サーバーコンピューターにアプリをダウンロードしてインストールします。
 アプリをダウンロードしてインストールする
3
Raspberryのターミナルで次のコマンドを実行します: yum install [package];
4
アプリを起動し、「Share」をクリックしてUSBデバイスを共有します。

それだけです!

その時点から、共有されたUSBデバイスは、FlexiHubがインストールされておりインターネット接続があるすべてのコンピュータからリモートでアクセス可能になります。オペレーティングシステムや物理的な距離に関係なく。

主な特徴:

ユニバーサルソリューション:

USBリダイレクションサーバー: FlexiHubのユニークなUSBリダイレクションサーバーは、公開IPアドレスを必要とせずにすべてのファイアウォールを通過してアプリを動作させます。

周辺機器の共有: USBハブを共有することで、そのUSBポートに接続された周辺機器が追加の設定なしにリモート接続で即座に利用可能になります。

パフォーマンスの向上:

トラフィック圧縮: FlexiHubはオプションでトラフィック圧縮機能を提供しており、USBプリンタやウェブカメラなどの帯域幅に敏感なUSBデバイスに特に有用です。これにより、高速な1Gbpsインターネット接続がなくても効率的に動作させることができます。

セキュリティ:

SSL暗号化: FlexiHubは、2048ビットの強力なSSL暗号化を提供し、セキュリティカメラ、USBドングル、またはFlexiHubを通じて送信されるデータへの不正アクセスを完全に防止します。

USB over Network Raspberry Pi共有 - ビデオチュートリアル

Raspberry PiをUSB-over-IPサーバーとして設定する無料の方法

原則として、この方法は先ほど説明したものと似ていますが、異なるUSBからEthernetへの拡張アプリを介して行われます。そして、今回はまだ開発中のオープンソースソリューションを使用するため、セットアッププロセスにはある程度の技術的な能力が必要です。もしあなたがそれを持っていないなら、最初の試みでうまくいかないことに驚かないでください。

USB-over-IPサーバー

この方法を選択する前に考慮する必要があるいくつかの重要な点:

  • LAN内のUSBデバイスのみを共有できます。
  • 非LinuxマシンからUSBデバイスを共有することはできません。
  • この共有方法はUSBハブで機能しません。
  • 少なくとも100 Mbpsの接続をお勧めします。
  • 共有デバイスまでの距離が長いほど、接続が悪くなります。
  • 不正アクセスからの保護がありません。
  • トラフィック圧縮がないため、リモートカメラの画像が大幅に遅延する可能性があります。

Raspberry Piをサーバーとして設定することから始めましょう:

1
このコマンドを使用してアプリをインストールします: sudo apt install usbip
2
インストールが完了したら、必要なカーネルモジュールを追加します:
sudo modprobe usbip_host
echo 'usbip_host' >> /etc/modules
3
lsusbコマンドを使用して、Raspberry Piに物理的に接続されているすべてのUSBデバイスのリストを表示し、共有するデバイスの8桁のUSB ID番号を覚えておくか、メモしておきます。
4
usbip list -p -lコマンドを使用して、デバイスのバスIDを見つけます(前のステップでのUSB ID番号を使用してリスト上の正しいデバイスを特定します)。その番号をメモします。
5
コマンドを実行します:
sudo usbip bind --busid=N
(Nは前のステップからのバスID番号です)
6
デーモンを実行して、デバイスを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



そして、そのサービスを開始するためにこれらのコマンドを実行します:

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

クライアントのセットアップに移りましょう:

注意: Windows用のクライアントアプリがありますが、署名されていないドライバーやWindows 10のサポートがない不安定なベータ版であるため、本当に言及する価値はありません。

1. Ubuntuで同じアプリを使ってUSB over IPを共有するには、これらのコマンドを実行します:
sudo -s
apt-get install linux-tools-generic -y

2. 必要なモジュールを有効にします:
modprobe vhci-hcd
echo 'vhci-hcd' >> /etc/modules

共有デバイスをこのマシンに接続するには、コマンドを実行します: sudo usbip attach -r 0.0.0.0
(0.0.0.0の代わりにRaspberry Piの実際のIPアドレスを入力します)

または、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

保存してから、次のコマンドを実行してサービスを開始します。

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

その後、共有デバイスにリモートでアクセスできるはずです。うまくいかない場合は、最初からすべてのステップを再試してください。

重要! この方法で共有されている間にUSBデバイスをRaspberry Piから抜くと、永久的なデータ損失が発生する可能性があります。最初にRaspberryをオフにし(オフにした後、余分な予防措置としてACアダプターも切断できます)。

FlexiHubを使ったUSB共有
30日間のデモ期間

Raspberry Pi と VirtualHere を備えた USB over IP ハブ

Raspberry PiとVirtualHereを使用してワイヤレスUSB over IPハブを構築するのは、以下の2つのコンポーネントがあれば比較的簡単な作業です。

  1. VirtualHere USBサーバー

  2. 動作するRaspberry Piモジュール。モジュールはPi 3以上で、Raspberry Pi OSを実行し、USBポートとWiFi機能を備えている必要があります。

VirtualHereは、ネットワーク接続されたUSBデバイスの共有を可能にします。これは、スキャナー、プリンター、ウェブカメラなどのリモートUSBデバイスを接続して、ローカルマシンに直接接続されているかのように使用できるソリューションです。VirtualHereサーバーを使用すると、ネットワーク上の任意の場所からUSBデバイスにリモートアクセスできます。

Raspberry PiのUSB over IP機能を使用してワイヤレスUSBハブを構築する方法


以下のステップでRaspberry Piを使用してUSB over IPをサポートするハブを作成できます。

  1. XRDP、SSH、またはその他の手法を使用してRaspberry Piにログインします。

  2. 次のコマンドを使用してRaspberry Pi用のVirtualHere USBサーバープラグインをダウンロードします:

    $ wget https://www.virtualhere.com/sites/default/files/usbserver/vhusbdarm

  3. chmodコマンドを使用してダウンロードしたファイルに実行許可を設定します:

    $ chmod +x vhusbdarm

  4. このコマンドを使用してVirtualHere USBサーバーをバックグラウンドで実行します:

    $ sudo ./vhusbdarm -b
    使用可能なオプションを確認するには、このコマンドを実行します:
    $ ./vhusbdarm -h

  5. ネットワークに接続されたUSBデバイスに接続するクライアントコンピューターにVirtualHereクライアントアプリケーションをダウンロードしてインストールします。

  6. これで、USBデバイスをUSBが無効化された仮想マシンに接続すると、Raspberry Piハブに表示されます。この方法では、任意のタイプのUSBデバイスをネットワーク経由で接続できます。接続できるデバイスの数にはオープンポートの数のみが制限となります。物理的なUSBハブを追加して、より多くのUSBポートを提供し、追加のデバイスを接続することもできます。