2017-03-07 909 views
0

我想在Ubuntu中使用tshark分割大型PCAP文件(3 GB)。 下面的代码是什么,我试图做的:如何有效地分割PCAP文件?

tshark -r dia5_20Jan17.pcap -Y '((frame.time >= "2017-01-20 10:32:00") && (frame.time <= "2017-01-20 18:44:00"))' -w 1.pcap 

的问题是内存RAM浪费:

的代码使用的内存(8GB),95/95%。有没有更好的方法来切割PCAP文件?我也尝试过Python ...

回答

2

tshark不是工作的最佳工具。我有libtracegithub link)的良好体验,它为处理捕获文件提供了一个很好的工具箱。具体来说,在你的情况下,tracesplit工具。

请注意,他们的大多数示例都采用了名为erf的捕获格式,而不是pcap。但他们support pcap文件,你只需要指定它。

等效tracesplit命令会是这样的:

tracesplit --starttime=1484908320 --endtime=1484937840 -compress-type=none pcapfile:dia5_20Jan17.pcap pcapfile:1.pcap

+0

如何在时间戳中将frame.time> =“2017-01-20 10:32:00”转换? –

+0

也许你可以在你的答案中添加相应的命令。 –

+0

@AnadiKrsnadas使用任何UNIX时间转换器。例如:https://www.epochconverter.com/ – Malt

3

您可以使用editcap分裂捕获文件。例如:

editcap -A "2017-01-20 10:32:00" -B "2017-01-20 18:44:00" infile.pcap outfile.pcap 
2

我还没有尝试过刚才,但我的猜测是,内存占用主要由TCP解剖跟踪连接等引起的。如果你创造一个你禁用你做所有的解剖轮廓不需要(因为你只是在框架元信息过滤,可能是所有人),你可能会节省大量的RAM。

我会做到这一点的方式是

  1. 开始Wireshark的
  2. 创建新的配置文件
  3. 使用 “分析” - > “启用的协议” - > “全部禁用”
  4. 接近Wireshark的
  5. 运行tshark,指定具有“-C”参数的新配置文件

正如我所说的,我没有为你的情况测试过这个,但是当从pcaps雕刻数据包时,我使用减少的解剖设置。速度更快,错误更少,并且可以节省RAM。