7354


Wiresharkのように、en0とen4を同時にキャプチャして１つのファイルとして出力する方法を模索しています。  
en0とen4を同時にキャプチャし、en0はモニターモードにすべく、下記のように書いてみました。

tcpdump -Ini en0 -w WLAN.pcap -W1 -G30 & tcpdump -i en4 -w LAN.pcap -W1 -G30 &
iperf -c 192.168.0.100 -i 1 -t30 -f m >> iperf.txt

しかし、ファイルが別々になってしまう、という点で、期待する動作ではありません。


CC BY-SA 3.0
2015-03-03T03:01:35.243
7346
2022-04-13T04:52:25.030
2015-03-03T06:35:24.260
7590
7590
question
macos tcpdump wireshark
en0とen4を同時にキャプチャして１つのファイルとして出力する方法


WiresharkをインストールしてコマンドラインI/F(`tshark`)を使う

`% tshark -i 1 2 -F pcap -w output.file`

`-i` に指定するのはI/F名か`-D`を指定して得られるI/F一覧の番号

もしくは、tcpdumpを2個動かして取得したファイルをWiresharkでマージする。GUIでやるほかにもmergecapというコマンドラインツールもあるようです。


CC BY-SA 3.0
2015-03-03T03:43:55.263
7349
2015-03-03T03:43:55.263
5793
7346
answer


## 追記

回答後に、質問内容が編集され「en0はモニターモードに」という前提条件が追加されていますが、以下の方法はWi-
Fiインタフェースをモニターモードに設定するための `-I` オプションと併用することはできません。

* * *

`os-x` のタグが付いているので OS X 固有の回答です。

OS X 10.9（Darwin 13.0）以降であれば、tcpdump を以下のように実行することで複数インタフェースをキャプチャできます。

[code]

    $ sudo tcpdump -i pktap,en0,en4 -w mix.pcap
    
[/code]

ポイントは、`-i` オプションのインタフェース指定で、キャプチャしたい複数のインタフェースを `pktap`
に続けてカンマ区切りで列挙することです。これで複数のインタフェースを同時にキャプチャできます。

なお、OS X 付属の tcpdump のマニュアルに記載されているように、この機能は OS X（Darwin）固有の PKTAP
という疑似インタフェースを利用しているため、他のOSでは使えません。

> -i Listen on interface.
>
> If the -D flag is supported, an interface number as printed by that flag can
> be used as the interface argument.
>
> On Darwin systems version 13 or later, when the interface is unspecified,
> tcpdump will use a pseudo interface to capture packets on a set of
> interfaces determined by the kernel (excludes by default loopback and tunnel
> interfaces).
>
> Alternatively, to capture on more than one interface at a time, one may use
> "pktap" as the interface parameter followed by an optional list of comma
> separated interface names to include. For example, to capture on the
> loopback and en0 interface:
[code]

>     tcpdump -i pktap,lo0,en0
>  
[/code]

>
> An interface argument of "all" or "pktap,all" can be used to capture packets
> from all interfaces, including loopback and tunnel interfaces.
>
> A pktap pseudo interface provides for packet metadata using the default
> PKTAP data link type and files are written in the Pcap-ng file format. The
> RAW data link type must be used to force to use the legacy pcap-savefile(5)
> file format with a ptkap pseudo interface. Note that captures on a ptkap
> pseudo interface will not be done in promiscuous mode.
>
> An interface argument of "iptap" can be used to capture packets from at the
> IP layer. This capture packets as they are passed to the input and output
> routines of the IPv4 and IPv6 protocol handlers of the networking stack.
> Note that captures will not be done in promiscuous mode.
>
> On other OSes, if unspecified, tcpdump searches the system interface list
> for the lowest numbered, configured up interface (excluding loopback). Ties
> are broken by choosing the earliest match.
>
> On Linux systems with 2.2 or later kernels, an interface argument of "any"
> can be used to capture packets from all interfaces. Note that captures on
> the "any" device will not be done in promiscuous mode.


CC BY-SA 3.0
2015-03-03T05:22:29.783
7354
2015-03-04T02:00:58.087
2020-06-17T08:14:45.997
-1
1024
7346
answer


以下ができるようになってます。

[code]

    # tshark -i enp1s0f0 -i enp1s0f1
    Running as user "root" and group "root". This could be dangerous.
    Capturing on 'enp1s0f0' and 'enp1s0f1'
    
[/code]


CC BY-SA 4.0
2022-04-13T02:30:28.430
88311
2022-04-13T04:52:25.030
2022-04-13T04:52:25.030
3060
52203
7346
answer