2

我有一个大的 pcap 文件,我想生成一个只包含前十分钟流量的新 pcap。我可以这样做tcpdump吗?我在editcap网上看到提到过,但如果可能的话我想使用tcpdump

4

1 回答 1

5

你可以用tcpdump; 但是,它会更简单,因为我能想到editcap的唯一实用方法是使用Wireshark(或)首先找到捕获文件中至少 10 分钟的数据包的帧号。一旦你有了帧号,就可以用来只保存直到该帧的数据包,有效地将输出文件限制在所需的 10 分钟持续时间。就是这样:tcpdumptsharktcpdump

首先,找到在捕获文件中至少 10 分钟的第一个数据包(这里我将用 来说明tshark,但也可以使用 Wireshark):

tshark -r bigfile.pcap -Y "frame.time_relative <= 600.0"

注意显示的最后一个数据包的帧号。(假设标准列,帧号是每行的第一个数字tshark。)出于说明目的,假设它是帧号 21038。

其次,用于tcpdump仅将前 21038 帧保存到新文件:

tcpdump -r bigfile.pcap -c 21038 -w bigfile_first10min.pcap

但由于editcapWireshark 套件附带,您可以更简单地使用以下方法完成等效操作,这会将大型捕获文件拆分为持续时间为 10 分钟的捕获文件(最后一个除外,可能会更少):

editcap -F pcap -i 600 bigfile.pcap bigfile_split10min.pcap

如果您只对第一个文件感兴趣,请忽略其余文件。

当然,正如@madmax1 所说,您还可以对上述tshark命令进行简单修改,将匹配过滤器的数据包写入新文件:

tshark -r bigfile.pcap -Y "frame.time_relative <= 600.0" -w bigfile_first10min.pcap
于 2016-08-03T18:52:02.723 回答