Memory

您如何在不佔用我所有 RAM 的情況下連續執行 Wireshark?

  • June 20, 2019

我需要整晚執行 Wireshark 來擷取來自某個 IP 地址的數據包。我注意到 Wireshark 執行的時間越長,它佔用的 RAM 就越多,因為它儲存了執行期間發現的所有數據包。我有 3 種可能的解決方案,但我在網上找不到任何答案:

  1. 將 Wireshark 配置為僅將通過過濾器出現的數據包(不是所有數據包)保存在 RAM 中。我不確定這是否可能。
  2. 將 Wireshark 配置為每小時自動將數據包保存到文件中,並在儲存到文件後釋放其記憶體。
  3. 使用旨在執行一段時間的 Wireshark 替代品。

對於 Windows 環境(比如我在伺服器上安裝wireshark 很重要),自從Win7/2008R2 以來,已經內置了可用的數據包擷取。

這將擷取所有內容,直到您告訴它停止: netsh trace start capture=yes persistent=yes tracefile=c:\temp\results.etl

監控跟踪: netsh trace show status

停止跟踪: netsh trace stop

它確實支持所有常見的:過濾、循環日誌記錄,甚至可以在重新啟動後持續存在。另一個優點是命令幫助:嘗試netsh trace ?netsh trace show ? 您確實需要安裝 Microsoft 消息分析器來查看/導出結果。

對於您的情況,您似乎可以使用以下命令進行設置:

netsh trace start capture=yes persistent=yes tracefile=c:\temp\results.etl maxSize=500

這將為您提供 500MB 文件的循環日誌記錄,並在重新啟動後持續存在。

引用自:https://serverfault.com/questions/763042