晴耕雨読

working in the fields on fine days and reading books on rainy days

MacOSのWiresharkが権限エラーでキャプチャできないとき

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 をインストールすれば解決するらしいのですが、ここではターミナルのコマンドだけで解決する方法について説明します。 手順としては、以下の通りです。

  1. 自身のユーザ名を確認する
  2. BPFファイルの所有権を自身に変更する

具体的には、ターミナルで以下のコマンドを入力します。

$ sudo chown $(whoami):admin /dev/bpf*
$ ls -l | grep /dev/bpf*

/dev/bpf0 などのファイルの所有者とグループが変更されたことを確認して、再度 Wireshark で「Loopback: lo0」をパケットキャプチャします。 そうすると、今度はエラーなしでキャプチャを開始できます。

以上です。