はじめに
最近、MAMEでDomain/OSを動かしている中でDomain/OSの特徴であるリモートホストへのプロセスの生成CRP(Create Remote Process)と同等の機能をMacやLinuxで実行できないかを調べる中でリモートホストにGUIのあるアプリケーションをSSH経由で実行させ、ローカル上にGUIを表示できることを知りました。ここではMacからRaspberry Piにリモートでwiresharkを起動する方法をまとめました。
検証環境
- macOS Tahoe 26.3
- Raspberry Pi 400 : Debian GNU/Linux 13 (trixie)
Raspberry PiはSSHを有効にしておきます。
必要ソフトウェア
macOSではXQuartz、Linuxではwiresharkをインストールしておく必要があります。
macOSでXquartzをインストールする
Xquartzをbrewでインストールします。
$ brew install xquartz
Linuxでwiresharkをインストールする
wiresharkをaptコマンドでインストールします。
$ sudo apt update
$ sudo apt install -y wireshark
一般ユーザでもパケットをキャプチャできるようにする
リモートからの一般ユーザによるアクセスでwiresharkがパケットキャプチャできるように権限を付与します。また、実行ユーザのグループにwiresharkグループを追加します。
※以下の操作はRaspberry Piで実行します。
権限の付与
$ sudo dpkg-reconfigure wireshark-common
ダイアログが表示された場合にははいを選び、Enterキーを押します。
グループの追加
ログインしているユーザのグループにwiresharkグループを追加します。
sudo usermod -aG wireshark $USER
MacからRaspberry PiにSSHでwiresharkを起動
必要な設定が完了したらMacからRaspberry Piにsshコマンドでwiresharkを実行します。
下記はRaspberry Pi(192.168.1.199)でユーザsakabe権限でwiresharkを実行する例です。パケットキャプチャが開始されるとその旨のメッセージが表示されます。
$ ssh -X sakabe@192.168.1.199 wireshark
Permission denied, please try again.
sakabe@192.168.1.199's password:
** (wireshark:5268) 22:36:57.616395 [Capture MESSAGE] -- Capture Start ...
** (wireshark:5268) 22:36:58.789309 [Capture MESSAGE] -- Capture started
** (wireshark:5268) 22:36:58.789362 [Capture MESSAGE] -- File: "/tmp/wireshark_eth0D85VL3.pcapng"
** (wireshark:5268) 22:39:55.569262 [Capture MESSAGE] -- Capture Stop ...
** (wireshark:5268) 22:40:06.986997 [Capture MESSAGE] -- Capture stopped.
** (wireshark:5268) 22:40:07.920667 [GUI WARNING] -- QThreadStorage: Thread 0x5591e29700 exited after QThreadStorage 4 destroyed
** (wireshark:5268) 22:40:07.920738 [GUI WARNING] -- QThreadStorage: Thread 0x5591e29700 exited after QThreadStorage 3 destroyed
** (wireshark:5268) 22:40:07.920759 [GUI WARNING] -- QThreadStorage: Thread 0x5591e29700 exited after QThreadStorage 2 destroyed
-
sshコマンドのオプションに-Xを指定することでRaspberry PiのX11による描画をMacに転送します。Macはラズパイからの応答に対してXQaurtzを起動してwiresharkのGUIを表示します - 実行するコマンドを最後に入力します
wiresharkの起動画面ではeth0を選びます。
Raspberry Pi(192.168.1.199)からMac(192.168.1.179)にSSHのパケットが送信されているのがわかります。
さいごに
Domain/OSのCRPに相当する機能を探していてSSHでX11の描画を転送できることを知りました。この機能をうまく利用したいですね。


