如何在不耗尽我所有 RAM 的情况下持续运行 Wireshark?

cla*_*ity 6 memory wireshark

我需要整夜运行 Wireshark 来捕获来自某个 IP 地址的数据包。我注意到 Wireshark 运行的时间越长,占用的 RAM 就越多,因为它存储了运行期间发现的所有数据包。我有3种可能的解决方案,但我在网上找不到任何答案:

  1. 将 Wireshark 配置为仅在 RAM 中保存通过过滤器出现的数据包(不是所有数据包)。我不确定这是否可能。
  2. 配置 Wireshark 以每小时自动将数据包保存到文件中,并在存储到文件后释放其内存。
  3. 使用专为运行一段时间而设计的 Wireshark 替代方案。

Dre*_*Dre 3

对于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 Message Analyzer 才能查看/导出结果。

对于您的情况,您似乎可以使用以下命令进行设置:

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

这将为您提供 500MB 文件的循环日志记录,并在重新启动后持续存在。