用 Dumpcap 在 Debian 上进行网络故障排查
一 安装与权限配置
sudo apt update && sudo apt install wireshark。安装过程中可选择是否允许非 root 用户抓包。建议在生产环境遵循最小权限原则。sudo groupadd wiresharksudo usermod -aG wireshark $USERsudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap/etc/sudoers 为特定用户配置 NOPASSWD: /usr/bin/dumpcap(仅在受控环境下使用)。二 快速定位流程与常用命令
ip addrping -c 4 <网关或目标IP>mtr <目标IP或域名>(持续采样更直观)ss -nltup | grep <端口>dig <域名> +short 或 nslookup <域名>。dumpcap -Dsudo dumpcap -i eth0 -w capture.pcapsudo dumpcap -i any -w all.pcapsudo dumpcap -i eth0 -c 100 -w sample.pcapsudo dumpcap -i eth0 -f "tcp port 80 or tcp port 443" -w web.pcapsudo dumpcap -i eth0 -f "host 192.168.1.100" -w host.pcap-s 0(抓取全帧)。.pcap 文件进行协议级分析(如重传、握手失败、超时、RST 等)。dumpcap -i any -w - | tcpdump -r -)。三 典型场景与命令示例
| 场景 | 关键命令 | 关注点 |
|---|---|---|
| 某主机访问异常 | sudo dumpcap -i any -f "host 192.168.1.100" -w host.pcap |
TCP 三次握手是否完成、是否存在大量重传/超时、是否有 ICMP 不可达 |
| Web 服务访问慢或失败 | sudo dumpcap -i any -f "tcp port 80 or tcp port 443" -w web.pcap |
握手耗时、TLS 握手是否成功、HTTP 状态码、响应是否异常截断 |
| 局域网 ARP 或二层问题 | sudo dumpcap -i eth0 -f "arp or (ether proto 0x88cc)" -w l2.pcap |
ARP 请求/响应是否成对、是否有异常 MAC、LLDP/CDP 信息 |
| DNS 解析异常 | sudo dumpcap -i any -f "udp port 53 or tcp port 53" -w dns.pcap |
请求是否发出、是否有响应、响应是否 SERVFAIL/REFUSED、响应延迟 |
| 高流量时段定位问题 | sudo dumpcap -i any -C 100M -W 5 -w rotate.pcap |
分片文件是否快速轮转、在峰值时段是否出现丢包/错误帧 |
四 排错技巧与注意事项
newgrp wireshark 或重新登录;或临时用 sudo 运行。-f)尽早过滤无关流量,降低 CPU 与磁盘压力。-C <大小> -W <文件数>,例如 -C 100M -W 10;必要时限制包长 -s 0 仅在需要全帧时开启。