Memory
您如何在不佔用我所有 RAM 的情況下連續執行 Wireshark?
我需要整晚執行 Wireshark 來擷取來自某個 IP 地址的數據包。我注意到 Wireshark 執行的時間越長,它佔用的 RAM 就越多,因為它儲存了執行期間發現的所有數據包。我有 3 種可能的解決方案,但我在網上找不到任何答案:
- 將 Wireshark 配置為僅將通過過濾器出現的數據包(不是所有數據包)保存在 RAM 中。我不確定這是否可能。
- 將 Wireshark 配置為每小時自動將數據包保存到文件中,並在儲存到文件後釋放其記憶體。
- 使用旨在執行一段時間的 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 文件的循環日誌記錄,並在重新啟動後持續存在。