我运行 tcpdump 如下:
$ sudo tcpdump -i eth0 -w dump.pcap host 1.2.3.4
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
有没有办法查看到目前为止捕获了多少个数据包?显然 BSD 允许使用状态信号,但我使用的是 Linux。
答案1
您可能正在寻找-v
的选项tcpdump
。来自tcpdump 命令:
-v ... When writing to a file with the -w option, report, every 10 seconds, the number of packets captured.
示例输出:
$ tcpdump -v -i eth0 -w dump.pcap
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
Got 227
请注意,与手册页所述的相反,“Got X”在我可以测试的机器上每秒都会刷新一次(使用 tcpdump 4.9.2)。
答案2
您可以将tcpdump
输出打印到 stdout 并将其通过管道传输到tee
。这样,您既可以将输出保存到文件中,也可以将其打印到stdout
。一旦有了这些,您就可以使用pv
/ grep
/tail
或类似的东西来跟踪进度