tcpdump -i any は FreeBSD では動作しません。

tcpdump -i any は FreeBSD では動作しません。

FreeBSDすべてのインターフェースで聞く方法tcpdump

> tcpdump -i any
tcpdump: any: No such device exists
(BIOCSETIF failed: Device not configured)

(ICMPを聞きたい)

答え1

FreeBSD 11.3でこれを見ていますが、「何も」する方法がないようです。私は複数のsが動作できると思います-i。マンページにはこれについての内容はありませんが、最初のsだけが必要です。 tcpdumpが複数をサポートするように強化されている場合は、-i次のようにする必要があります(またはシステムにないことを証明できます)。

tcpdump --list-interfaces | grep Running | cut -f 1 -d ' ' | cut -f 2- -d '.' | awk '{ print "-i " $1 }' | xargs -t -Jinterfaces tcpdump interfaces host 8.8.8.8

答え2

tcpdumpのマニュアルページから:

インターフェイスパラメータ「all」または「pktap、all」を使用して、ループバックおよびトンネルインターフェイスを含むすべてのインターフェイスからパケットをキャプチャできます。

たとえば、次のように簡単に実行できます。

tcpdump -i all tcp port 80

-i フラグが指定されていない場合、デフォルトではループバックおよびトンネル インターフェイスを除いて、すべてのインターフェイス セットが擬似インターフェイスに再び含まれます。再度tcpdumpのマニュアルページから:

Darwinシステムバージョン13以降でインターフェイスが指定されていない場合、tcpdumpは擬似インターフェイスを使用して、カーネルによって決定されたインターフェイスセットからパケットをキャプチャします(デフォルトではループバックおよびトンネルインターフェイスを除く)。

答え3

このアプローチが特定のユースケースではうまく機能することを保証することはできませんが、FreeBSDでこれを行う強力な方法は、それぞれ既知のインターフェイスに対応するNインスタンスを実行することです。グループ化およびバックグラウンドコマンドで実行して、結合された出力を単一のファイルに送信できます。出力ファイルには、パケットがインターフェイスaに到着したときにパケットを表示し、パケットがインターフェイスbを離れるときに再表示するなど、多くの冗長パケットがあることは避けられません。tcpdumpNifconfig

しかし、そうする必要がある場合は、次の点を考慮してください。

{
    for i in $(ifconfig -l)
    do
        ( tcpdump -i $i & )
    done
} > tcpdump.out

答え4

FreeBSDのすべてと同様に、マンページを読むと、一般的にすべてが説明されます。

       -i interface
   --interface=interface
      Listen on interface.  If unspecified, tcpdump searches the  sys-
      tem interface list for the lowest numbered, configured up inter-
      face (excluding loopback), which may turn out to be,  for  exam-
      ple, ``eth0''.

      On  Linux  systems with 2.2 or later kernels, an interface argu-
      ment of ``any'' can be used to capture packets from  all  inter-
      faces.   Note  that  captures  on the ``any'' device will not be
      done in promiscuous mode.

      If the -D flag is supported, an interface number as  printed  by
      that flag can be used as the interface argument, if no interface
      on the system has that number as a name.

https://www.freebsd.org/cgi/man.cgi?query=tcpdump&apropos=0&sektion=0&manpath=FreeBSD+12.1-RELEASE+and+Ports&arch=default&format=html

関連情報