dumpcap捕获流量的能力主要受以下核心参数限制,实际捕获量可根据需求灵活调整:
-s/--snapshot-length)通过-s参数设置单个数据包的最大捕获字节数(默认值通常为65535字节)。若设置为0,则捕获完整数据包(不受长度限制),但会增加内存和存储消耗;若设置为较小值(如64),则会截断超长数据包(仅保留前64字节),适用于仅需关注数据包头部信息的场景。
示例命令:dumpcap -i eth0 -s 65535 -w full.pcap(捕获完整数据包);dumpcap -i eth0 -s 96 -w truncated.pcap(仅捕获每个数据包的前96字节,如以太网头部+IP头部+TCP头部)。
-c/--count)通过-c参数设置要捕获的数据包数量(默认无限制,持续捕获直到手动停止或磁盘满)。达到指定数量后,dumpcap会自动停止捕获。
示例命令:dumpcap -i eth0 -c 1000 -w 1000packets.pcap(仅捕获1000个数据包)。
-B/--buffer-size)通过-B参数设置捕获缓冲区的大小(单位:字节,默认值因系统而异,通常为几MB)。缓冲区用于临时存储捕获的数据包,较大的缓冲区可减少磁盘I/O次数,提高捕获效率,但会占用更多内存。
示例命令:dumpcap -i eth0 -B 104857600 -w large_buffer.pcap(将缓冲区大小设置为100MB)。
-b/--buffer 或 -W/--file-count)-b参数:通过-b filesize:value设置单个输出文件的最大大小(单位:字节,如1000000表示1MB)。当文件达到指定大小时,dumpcap会自动创建新文件(文件名会追加序号,如output_00001.pcap、output_00002.pcap)。-W参数:通过-W filecount:value设置输出文件的最大数量(如10表示最多保留10个文件)。当文件数量达到上限时,dumpcap会覆盖最早的文件(循环写入)。dumpcap -i eth0 -b filesize:1048576 -w split_by_size.pcap(每个文件最大1MB);dumpcap -i eth0 -W 10 -w split_by_count.pcap(最多保留10个文件)。dumpcap捕获的流量最终以.pcap(或.pcapng)格式保存到磁盘,可用磁盘空间是捕获量的终极限制。例如,若磁盘剩余100GB空间,且设置-s 65535(完整捕获),则理论上最多可捕获约1500万个数据包(100GB/65535字节≈1500万)。需定期清理旧捕获文件,避免磁盘满导致捕获中断。
dumpcap -i eth0 -s 65535 -c 1000 -w limited.pcap:捕获1000个完整数据包)。-e参数)以提高捕获效率,但需注意合法性和隐私问题。sudo apt update && sudo apt install wireshark更新),可获得更好的性能和bug修复。