如何让 tcpdump 在捕获一定数量的数据包后停止捕获?

如何让 tcpdump 在捕获一定数量的数据包后停止捕获?

我正在调试一个问题,两个服务器在相互通信时陷入循环。服务器重启后,问题会在某个时间点开始,可能是一小时或一天。我想在问题开始时对流量进行 tcpdump,这样我就可以找出导致问题的原因。

我的计划是重启服务器,然后让 tcpdump 捕获流量,然后分析结果。但是我希望 tcpdump 在捕获几千个数据包后停止,以避免必须监视它,因为我不知道流量何时开始。

有人有建议吗?

答案1

man tcpdump

-c 收到计数个数据包后退出。

答案2

输入以下命令:

sudo tcpdump -i eno1 -c [size]

该参数-i eno1指示 tcpdump 仅在接口上进行监听eno1,并-c [size]指示 tcpdump 在捕获 [size] 个包后停止捕获。因此tcpdump -i eno1 -c 2048将在捕获 2048 个包后停止。

相关内容