一、安装Dumpcap
在Ubuntu系统中,Dumpcap通常作为Wireshark的组件存在。若未安装,可通过以下命令安装:
sudo apt update
sudo apt install wireshark # 安装Wireshark时会自动包含dumpcap
安装完成后,需解决权限问题:将当前用户加入wireshark组(无需每次用sudo):
sudo usermod -aG wireshark $USER
# 注销并重新登录使权限生效
或通过setcap命令赋予dumpcap网络权限(无需修改用户组):
sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/dumpcap
二、捕获数据包
Dumpcap的基本捕获命令格式为:
dumpcap -i <interface> -w <output_file> [filters]
-i参数选择监听的网络接口(如eth0、wlan0或any监听所有接口)。例如,捕获eth0接口的所有流量:sudo dumpcap -i eth0 -w capture.pcap
tcp port 80192.168.1.100的流量:ip.src == 192.168.1.100udpeth0接口的HTTP流量并保存到http.pcap):sudo dumpcap -i eth0 -w http.pcap 'tcp port 80'
-c参数指定捕获的数据包数量(如捕获100个包后自动停止):sudo dumpcap -i eth0 -c 100 -w limited.pcap
-s参数设置抓包的快照长度(单位:字节),-s 0表示捕获完整数据包(默认68字节可能截断部分内容):sudo dumpcap -i eth0 -s 0 -w full.pcap
三、实时查看捕获数据
若需实时查看捕获的数据包(而非保存到文件),可使用-l(实时刷新)和-q(减少冗余信息)参数:
sudo dumpcap -i any -l -q
此命令会实时输出捕获的数据包摘要(如源/目的IP、端口、协议等),按Ctrl+C停止。
四、分析捕获的数据包
Dumpcap本身主要用于捕获,分析需借助图形化工具(如Wireshark)或命令行工具(如tcpdump):
Wireshark提供直观的图形界面,支持数据包解码、过滤、统计等功能:
.pcap文件(如capture.pcap)。http:过滤HTTP协议数据包tcp.port == 443:过滤HTTPS流量ip.addr == 192.168.1.100:过滤与指定IP相关的流量。若偏好命令行,可使用tcpdump读取.pcap文件并过滤:
tcpdump -r capture.pcap -nn -tttt
-r:读取指定的.pcap文件-nn:不解析主机名和端口名(提升速度)-tttt:显示完整时间戳(便于时间分析)tcpdump -r capture.pcap -nn -tttt 'tcp'
五、高级技巧
-G(时间间隔,秒)和-W(最大文件数)实现时间轮转,或-C(文件大小,MB)和-W实现大小轮转。例如:
/tmp目录,最多保留10个文件:sudo dumpcap -i eth0 -w /tmp/trace-%m-%d-%H-%M-%S.pcap -G 30 -W 10
sudo dumpcap -i eth0 -w /tmp/udp.pcap -C 10 -W 5