Ubuntu下Dumpcap使用技巧
Dumpcap是Wireshark套件的命令行数据包捕获工具,在Ubuntu中需先通过sudo apt update && sudo apt install wireshark安装(安装时会提示是否允许非root用户捕获数据包,建议勾选以简化后续权限操作)。默认情况下,普通用户需root权限才能捕获数据包,可通过以下三种方式解决权限问题:
sudo(如sudo dumpcap -i eth0 -w output.pcap);wireshark组(sudo adduser $USER wireshark),注销后重新登录生效;setcap命令赋予dumpcap网络访问权限(sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap),无需每次使用sudo。-i选项指定网络接口(如eth0有线接口、wlan0无线接口或any所有接口),例如捕获eth0接口的所有流量并保存到output.pcap:sudo dumpcap -i eth0 -w output.pcap。-c选项设置捕获的数据包数量,达到指定数量后自动停止,例如捕获eth0接口的前100个数据包:sudo dumpcap -i eth0 -c 100 -w output.pcap。-l选项将捕获的数据包实时输出到终端(配合-q选项可减少无关信息),例如:sudo dumpcap -i any -l -q。-f选项过滤数据包,减少不必要的流量占用。例如:
sudo dumpcap -i eth0 -f "tcp port 80" -w http.pcap;sudo dumpcap -i eth0 -f "udp" -w udp.pcap。-s(或-B)选项限制每个数据包的最大捕获长度(单位:字节),默认值为65535(足够捕获大多数数据包头部信息)。若只需捕获数据包头部(如以太网帧前1500字节),可设置为-s 1500:sudo dumpcap -i eth0 -s 1500 -w short.pcap。-b选项调整捕获缓冲区大小(单位:字节),高流量环境下(如千兆网络)可增大缓冲区以避免丢包,例如设置为256KB:sudo dumpcap -i eth0 -b 262144 -w high_traffic.pcap。-i选项同时捕获多个接口的流量,例如同时捕获eth0和wlan0接口的流量:sudo dumpcap -i eth0 -i wlan0 -w multi_interface.pcap。-C选项设置每个文件的最大数据包数量,达到数量后创建新文件(如每1000个数据包一个文件):sudo dumpcap -i eth0 -C 1000 -w split_by_count.pcap;-G选项设置每个文件的持续时间(单位:秒),达到时间后创建新文件(如每小时一个文件,文件名包含时间戳):sudo dumpcap -i eth0 -G 3600 -w split_by_time.pcap。-t选项在输出文件中包含时间戳,-T选项设置时间戳格式(iso为ISO 8601格式,unixtime为Unix时间戳),例如:sudo dumpcap -i eth0 -w output.pcap -t ad -T iso(ad表示包含绝对时间戳)。-e选项将捕获的数据包追加到现有文件(而非覆盖),适用于长期监控并合并多个捕获文件:sudo dumpcap -i eth0 -e -w ongoing.pcap。-w选项(实时显示),按Ctrl+C终止捕获;若使用-w选项保存到文件,同样按Ctrl+C停止,dumpcap会自动保存当前捕获的数据。wireshark组(groups命令),或重新配置dumpcap权限(sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap);ip addr或ifconfig命令确认接口名称(如eth0可能被替换为enp0s3),避免输入错误;df -h),确保目标分区有足够空间(建议预留至少10GB)。