我正在使用第三方工具在网络测试期间将网络流量捕获为 pcap 文件。当我尝试播放这些文件时,我会使用该tcpdump
工具的选项-Aq -r
,并将输出通过管道传输到 grep。一些捕获的大小为 600 KB,这看起来并不大,但读取它们仍然需要相对较长的时间。
是否tcpdump
实时读取 pcap 文件?如果是,我该如何加快速度?
这是我选择的tcpdump
选项的作用:
-A
以 ASCII 格式打印数据包(减去报头),因此它对 grep 和人类都是友好的。-q
打印较少的信息,以便更快地输出。-r <FILE>
读取给定的 pcap 文件。
这是我运行过的一个实际命令的示例,它花了四十五秒来打印十六行,而我预计执行时间几乎是即时的,或者最多几秒钟:
$ tcpdump -Aq -r z2121ecbc0186d9fa07b.pcap | grep POST
鉴于捕获的持续时间不到一分钟,我开始认为这tcpdump -r
会导致捕获实时播放,但我在手册页或网上找不到任何内容来确认这一点,当然也找不到任何东西告诉我是否有办法关闭实时播放。
答案1
用于-n
抑制 DNS 查找。
读取文件、分析文件并将其转换为文本输出通常非常快,并且只有在文件非常很大。在所有其他情况下,名称解析都会减慢速度,通常是等待 DNS 服务器应答,有时如果没有应答,则等待超时。
没有实时回放,也没有理由这样做。当与文件一起使用时,tcpdump 只会将文件转换为可读的输出。