在 Debian 上 dumpcap 占用 CPU / 内存 / 磁盘过高,通常是因为 抓包量太大、过滤规则不合理、或保存方式不当。下面按「先止血 → 再排查 → 长期优化」给你一套实用方案。
sudo pkill dumpcap
或如果你是用 Wireshark / tshark 启动的:
sudo systemctl stop wireshark
ps aux | grep dumpcap
常见来源:
top -p $(pgrep dumpcap)
→ 通常是 抓包速率太高
iotop
→ 一般是因为 写 pcap 文件没限制大小
free -h
→ 多因 缓冲区太大 / 没及时落盘
解决:
dumpcap -i eth0
-i any(非常吃资源)❌ 错误:
dumpcap -i eth0 -w file.pcap
✅ 正确(只抓特定流量):
dumpcap -i eth0 -f "tcp port 443" -w file.pcap
常用过滤:
-f "host 10.0.0.1"
-f "tcp port 80"
-f "not arp"
解决:限制文件大小和个数
dumpcap -i eth0 -w file.pcap \
-b filesize:100000 \ # 每个文件 100MB
-b files:10 # 最多 10 个
或按时间切:
-b duration:3600
GUI 模式非常吃资源 ❌
✅ 建议:
tshark / dumpcap 命令行dumpcap -i eth0 -w cap.pcap -B 10
-B:内存缓冲区(MB),适当调小
tshark -i eth0 -f "tcp" -w out.pcap
不要长期跑 dumpcap
eBPF / xdptcpdump --immediate-mode你可以补充:
dumpcap 是怎么启动的(命令 / 脚本 / Wireshark)我可以直接给你 一条最优命令。