MacOSのWiresharkでLocalhostの通信をキャプチャするときに、権限エラーで失敗してしまう時の対処方法です。
まず、ローカルの通信をキャプチャしたいので「Loopback: lo0」をクリックすると、ダイアログとともに以下のエラーが表示されます。
The capture session could not be initiated on interface 'lo0' (You don't have permission to capture on that device).
エラーの詳細を読むと、対象ファイルへの権限がなく、ChmodBPF をインストールすれば解決するらしいのですが、ここではターミナルのコマンドだけで解決する方法について説明します。 手順としては、以下の通りです。
- 自身のユーザ名を確認する
- BPFファイルの所有権を自身に変更する
具体的には、ターミナルで以下のコマンドを入力します。
$ sudo chown $(whoami):admin /dev/bpf*
$ ls -l | grep /dev/bpf*
/dev/bpf0 などのファイルの所有者とグループが変更されたことを確認して、再度 Wireshark で「Loopback: lo0」をパケットキャプチャします。 そうすると、今度はエラーなしでキャプチャを開始できます。
以上です。