在 Debian 上提升 dumpcap(Wireshark 抓包核心)的抓包/写入速度,通常从 内核、网卡、文件 I/O、dumpcap 参数 四个层面入手。下面按「最有效 → 进阶」顺序说明。
dumpcap -B 增大缓冲区默认缓冲区很小,高流量会丢包。
dumpcap -i eth0 -B 64 -w /data/cap.pcap
-B 单位:MB查看丢包:
dumpcap -i eth0 -w /dev/null
结束后看 packets dropped
ring buffer(避免单文件过大)dumpcap -i eth0 -B 128 -w cap.pcap -b filesize:100000 -b files:50
示例(内存抓包,超快):
mkdir /tmp/cap
dumpcap -i eth0 -B 256 -w /tmp/cap/cap.pcap
⚠️ 注意内存大小
某些网卡 offload 会导致 dumpcap 处理变慢:
ethtool -K eth0 gro off
ethtool -K eth0 lro off
ethtool -K eth0 tso off
抓包质量优先时可关。
多队列网卡:
ethtool -L eth0 combined 8
配合多 CPU 可显著提速。
sysctl -w net.core.rmem_max=67108864
sysctl -w net.core.rmem_default=67108864
sysctl -w net.core.netdev_max_backlog=100000
dumpcap -i eth0 -f "tcp port 443" -w cap.pcap
BPF 在内核态过滤,CPU 占用低。
-s 限制包大小dumpcap -i eth0 -s 96 -w cap.pcap
只抓前 96 字节(用于分析端口/协议足够)
AF_PACKET + mmapdumpcap 默认已用,但可确认:
dumpcap -i eth0 --list-interfaces
支持 captype: linux cooked / AF_PACKET
dpdk-dumppackets dropped 是否增长dmesg | grep eth0ethtool -S eth0 | grep dropiostat)dumpcap \
-i eth0 \
-B 256 \
-s 128 \
-w /nvme/cap.pcap \
-b filesize:500000 \
-b files:20
如果你能告诉我:
我可以给你一套专用参数。