2017-03-07 109 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。