如何在 tshark“捕获过滤器”中使用显示过滤器直径或 sip?

问题描述

我得到 5GB 的 pcap 大小,因此我尝试通过应用捕获过滤器来减小 pcap 的大小。 tshark“CAPTURE FILTER”不接受任何 3gpp 协议作为其语法,因此我捕获了 pcap,然后在此之上应用了显示过滤器,然后我的 pcap 大小减小了。我担心的是,这是一个耗时的过程。

基本上我想在捕获它时减少我的 pcap。

如何使用捕获过滤器减小 pcap 大小?

capture filter I used :tshark   -i 1   -w /tmp/manual.pcap
display filter I used :tshark -r  /tmp/manual.pcap -Y "(diameter &&! diameter.cmd.code==280) or sip.from.addr contains <msisdn>" -w /tmp/reduced3.pcap

我想在捕获 pcap 时使用显示过滤器。

解决方法

捕获过滤器由“虚拟机”评估,用于实时捕获,通常在操作系统内核中运行;它有一种“机器语言”,该语言受到限制,以防止将危险代码加载到内核中。

Wireshark/TShark 显示过滤器由 Wireshark/TShark 解析机制评估,因此它具有更多功能。因此,任意显示过滤器不一定会变成捕获过滤器。

在这种特殊情况下,您可以做的是将捕获限制为通过默认 Diameter 或 SIP 端口发送或接收的数据包,例如

tcp port 3868 or udp portrange 5060-5061

这不会捕获您关心的数据包,但它可能会避免捕获非 Diameter 和非 SIP 端口。

如果Diameter 数据包不在 TCP 端口3868 上,或者SIP 数据包不在 UDP 端口5060 或5061 上,但是它们不会被捕获。