一、安装Dumpcap
Dumpcap是Wireshark的核心组件,主要用于命令行捕获网络数据包。在Debian系统中,通常通过安装Wireshark软件包来获取Dumpcap:
sudo apt update && sudo apt install wireshark
安装完成后,通过dumpcap --version命令验证是否安装成功。
二、解决权限问题
普通用户无法直接使用Dumpcap捕获网络流量(需访问底层网络接口),需通过setcap命令赋予其必要权限:
sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap
执行后,普通用户即可运行Dumpcap捕获数据包。
三、基本抓包操作
-i参数指定网络接口(如eth0、wlan0或any捕获所有接口),将流量保存到output.pcap文件:sudo dumpcap -i eth0 -w output.pcap
-c参数设置捕获的数据包数量(如100个),避免文件过大:sudo dumpcap -i eth0 -c 100 -w output.pcap
-l参数实时输出捕获的数据包信息(适合快速查看流量):sudo dumpcap -i eth0 -l
-C(单个文件大小,如10MB)和-W(最大文件数,如5个)参数,自动分割保存流量:sudo dumpcap -i eth0 -w output.pcap -C 10m -W 5
当单个文件达到10MB时,会自动生成output_00001.pcap、output_00002.pcap等文件,最多保留5个。四、使用过滤器的技巧
过滤器可精准捕获目标流量,减少无关数据干扰,分为捕获过滤器(BPF语法,直接过滤接口流量)和显示过滤器(Wireshark语法,过滤已捕获的流量)。
192.168.1.100):sudo dumpcap -i eth0 -w output.pcap 'host 192.168.1.100'
sudo dumpcap -i eth0 -w output.pcap 'tcp port 80'
sudo dumpcap -i eth0 -w output.pcap 'udp'
http.response.code == 200
udp.port == 53
retransmission):tcp.analysis.retransmission
-w参数前设置,显示过滤器在Wireshark中使用时无需单引号。五、常见故障排查场景
Statistics > Conversations查看各会话的延迟(Avg Delay);tcp.stream过滤TCP流,分析SYN-ACK、ACK包的时间差,判断往返时间(RTT)是否过长。tcp.analysis.lost_segment(丢失段),说明有丢包;tcp.analysis.retransmission过滤,若存在大量重传,可能是网络拥塞或链路问题;Statistics > IO Graphs查看发送与接收包数量的差异。tcp.flags.syn==1(SYN包)、tcp.flags.syn==1 and tcp.flags.ack==1(SYN-ACK包)、tcp.flags.ack==1(ACK包),若握手不完整(如缺少ACK),则连接无法建立;dns,若查询无响应或返回错误(如NXDOMAIN),则域名解析失败。六、分析与后续步骤
output.pcap文件用Wireshark打开,通过过滤器缩小范围,查看数据包的详细信息(如IP头、TCP头、应用层协议);mtr(结合traceroute和ping)实时查看路径延迟和丢包;若发现带宽瓶颈,可使用iperf3测试带宽;