用 Dumpcap 在 Debian 上进行网络故障排查
一 安装与权限配置
sudo apt update && sudo apt install wiresharksudo setcap 'cap_net_raw,cap_net_admin=eip' /usr/bin/dumpcapyour_username ALL=(root) NOPASSWD: /usr/bin/dumpcap二 快速定位流程
dumpcap -D(确认要抓的网卡名称,如 eth0、wlan0、lo)dumpcap -i eth0 -c 200 -w sample.pcapdumpcap -i eth0 -f "host 192.168.1.100" -w host100.pcapdumpcap -i eth0 -f "tcp port 80 or udp port 53" -w http_dns.pcapdumpcap -i eth0 -w trace.pcapng -a filesize:100 -a files:10三 常用命令模板
| 目标 | 命令示例 | 说明 |
|---|---|---|
| 列出接口 | dumpcap -D |
找到正确的网卡名 |
| 抓取全部 | dumpcap -i any -w all.pcap |
跨所有接口抓包 |
| 抓取指定接口 | dumpcap -i eth0 -w eth0.pcap |
聚焦问题网卡 |
| 抓取一定数量 | dumpcap -i eth0 -c 500 -w 500.pcap |
快速样本 |
| 环形文件 | dumpcap -i eth0 -w ring.pcapng -a filesize:50 -a files:5 |
每 50MB 一个文件,最多 5 个 |
| 捕获过滤器 | dumpcap -i eth0 -f "tcp port 443" -w https.pcap |
仅抓取 443/TCP |
| 捕获过滤器 | dumpcap -i eth0 -f "icmp" -w icmp.pcap |
仅抓取 ICMP |
| 捕获过滤器 | dumpcap -i eth0 -f "host 10.0.0.5 and port 22" -w ssh.pcap |
主机 10.0.0.5 的 22/TCP |
| 显示链路层 | dumpcap -i eth0 -e -w ll.pcap |
保留 以太网头 |
| 快照长度 | dumpcap -i eth0 -s 0 -w full.pcap |
snaplen=0 抓全帧 |
| 查看版本 | dumpcap --version |
确认工具可用 |
说明:捕获过滤器使用 BPF 语法,放在 -f 之后;环形文件通过 -a filesize:N 与 -a files:M 控制。 |
四 故障排查要点
ping 验证端到端可达,再用 dumpcap -f "icmp" 抓取 ICMP 报文,观察 超时/目标不可达 等类型与频率。dumpcap -f "tcp port <端口>" 抓包,结合 Wireshark 查看 SYN/SYN-ACK/ACK 三次握手是否建立,是否出现 RST/重传。dumpcap -f "udp port 53 or tcp port 53" 抓取 DNS,检查查询/响应是否成对、响应码是否为 NOERROR、是否存在 SERVFAIL。dumpcap -f "tcp port 80" 观察 GET/POST 与 HTTP 状态码;对 HTTPS 可先抓 TCP 443 观察握手与重传,必要时配合应用层日志。五 常见问题与排错
sudo dumpcap 或设置 cap_net_raw,cap_net_admin 能力后再试。dumpcap -D 确认当前网卡名,再替换命令中的接口。-a filesize: 与 -a files:),或限制抓包时长/数量。