用 Dumpcap 排查网络问题的实操指南
一、快速准备与环境搭建
- 安装与版本确认
- Debian/Ubuntu:sudo apt update && sudo apt install wireshark(内含 dumpcap)
- CentOS/RHEL:sudo yum install wireshark
- 确认:dumpcap –version
- 权限与安全
- 推荐最小权限:sudo setcap ‘CAP_NET_RAW,CAP_NET_ADMIN+eip’ /usr/bin/dumpcap
- 或加入 wireshark 组:sudo usermod -aG wireshark $USER 并重新登录
- 接口与权限检查
- 查看接口:ip link
- 非 root 用户若无权限,请先完成上面的权限配置再抓包
二、标准排查流程
- 明确现象与范围
- 例如:某主机到某服务的连接超时/高时延/丢包/异常返回码,或某端口间歇性不通。
- 选择抓包点与过滤表达式
- 抓包点尽量靠近问题两端(客户端、服务器、网关/旁路)。
- 先小范围过滤,减少数据量,便于复现与定位。
- 启动抓包(示例命令)
- 抓取指定接口到文件:sudo dumpcap -i eth0 -w capture.pcap
- 仅抓取目标端口 80:sudo dumpcap -i eth0 -w http.pcap -f “tcp port 80”
- 抓取前 100 个包:sudo dumpcap -i eth0 -c 100 -w sample.pcap
- 环形滚动文件(每 10MB 一个,最多 5 个):sudo dumpcap -i eth0 -w roll.pcap -C 10m -W 5
- 高精度抓包(避免截断):sudo dumpcap -i eth0 -s 65535 -w full.pcap
- 复现问题并停止抓包
- 按 Ctrl+C 停止;若文件较大,优先转移到分析机。
- 分析数据
- 用 Wireshark 打开 .pcap,结合图形化统计与协议解析定位问题。
- 用 tshark 做快速命令行分析(见第四部分)。
三、常见故障的抓包与判定要点
| 故障现象 |
抓包位置 |
关键过滤器 |
判定要点 |
| TCP 连接超时/握手失败 |
客户端或服务器 |
-f “tcp.port == 443” |
三次握手是否完成;SYN 是否无响应或重传;是否返回 RST |
| HTTP 5xx/时延抖动 |
客户端或服务器 |
-f “tcp.port == 80 or tcp.port == 443” |
请求是否发出、是否收到响应;是否存在长时延/重传;响应码分布 |
| DNS 解析失败/慢 |
客户端或 DNS |
-f “udp.port == 53 or tcp.port == 53” |
请求是否发出;是否收到 SERVFAIL/REFUSED;响应时延是否异常 |
| 丢包/乱序 |
问题链路两端 |
-f “ip.addr == 192.168.1.10” |
是否存在重复 ACK、快速重传、乱序提示;窗口是否异常收缩 |
| 异常外联/可疑域名 |
疑似主机 |
-f “dns.qry.name contains example.com” 或 -f “ip.addr == 1.2.3.4” |
是否出现未知域名解析、异常 IP 通信、周期性 beacon 行为 |
说明:过滤器使用 BPF 语法;在命令行中建议使用单引号包裹表达式以避免 Shell 解析问题。
四、高效分析与自动化
- 用 tshark 快速查看关键字段
- HTTP 请求概览:tshark -r capture.pcap -Y “http” -T fields -e frame.number -e ip.src -e ip.dst -e http.host -e http.request.method -e http.request.uri
- 总体流量统计:tshark -r capture.pcap -qz io,stat,0
- 环形滚动与按时间切片
- 每 60 秒一个文件:dumpcap -i eth0 -G 60 -W bysec -w cap_%Y-%m-%d_%H-%M-%S.pcap
- 链路层信息
- 需要链路层头部时加 -e,便于排查 VLAN/以太网 相关问题。
五、性能与合规注意事项
- 性能与存储
- 高流量环境请使用环形文件(-C/-W)、合理设置快照长度(-s),必要时先缩小BPF 过滤范围以减少数据量。
- 权限最小化
- 优先使用 setcap 或 wireshark 组方式运行,避免长期以 root 抓包。
- 合规与安全
- 抓包可能包含敏感数据,务必在授权范围内进行,必要时脱敏后再外传分析。