Linux环境下如何查看tcpdump已捕获数据包数量?
在Linux下查看tcpdump已捕获数据包数量的方法
当然可以!在Linux系统中,我们完全不用中断tcpdump的抓包进程,只要给它发送一个特定信号,就能让它实时输出当前的捕获统计信息,具体操作步骤如下:
第一步:获取tcpdump的进程ID(PID)
打开新的终端窗口,运行以下命令快速拿到tcpdump的PID:pgrep tcpdump要是想确认进程的详细信息,也可以用:
ps aux | grep tcpdump从输出里找到对应tcpdump进程的数字PID即可。
第二步:发送SIGUSR1信号触发统计输出
用kill命令给tcpdump进程发送SIGUSR1信号,把下面的<PID>替换成你刚拿到的进程ID:kill -USR1 <PID>放心,这个信号不会终止tcpdump的抓包工作,它只会让tcpdump把当前的捕获统计信息打印到你最初运行tcpdump的终端窗口(标准错误输出)。
实际操作示例
假设你在前台运行抓包命令:
tcpdump -i eth0 -w capture.pcap
这时当前终端被tcpdump占用,没法输入命令,就打开另一个终端,用pgrep tcpdump得到PID比如12345,接着执行:
kill -USR1 12345
回到原来的终端,你就能看到类似这样的统计输出:
500 packets captured
502 packets received by filter
0 packets dropped by kernel
这些数字分别代表已捕获的数据包数、过滤器接收的数据包数、内核丢弃的数据包数,能帮你实时掌握抓包状态。
如果tcpdump是在后台运行(比如命令末尾加了&),直接在当前终端执行上述kill命令就行,不用切换窗口。
内容的提问来源于stack exchange,提问作者Roger Lipscombe
相关产品推荐
相关产品推荐

