Ubuntu 上使用 Dumpcap 进行网络故障排查
一 安装与权限配置
sudo apt update && sudo apt install wireshark。为避免每次都使用 sudo,可将当前用户加入 wireshark 组:sudo usermod -aG wireshark $USER,然后重新登录;或保留使用 sudo 直接运行。抓包通常需要管理员权限。为降低安全风险,也可仅授予 Dumpcap 能力:sudo setcap 'cap_net_raw,cap_net_admin=eip' /usr/bin/dumpcap(路径以实际安装为准,可用 which dumpcap 确认)。二 快速上手与常用命令
dumpcap -D;抓取 eth0 保存到文件:sudo dumpcap -i eth0 -w capture.pcap。使用 BPF 捕获过滤器仅抓取 TCP 80 端口:sudo dumpcap -i eth0 -f "tcp port 80" -w http.pcap。捕获全部数据包(最大长度):sudo dumpcap -i any -s 0 -w all.pcap。限制只抓 100 个包:sudo dumpcap -i any -c 100 -w short.pcap。实时简要输出:sudo dumpcap -i any -l -q。停止捕获按 Ctrl+C。三 按故障场景的抓包策略
sudo dumpcap -i any -f "host 192.168.1.10 and (tcp port 80 or 443)" -w loss.pcap。sudo dumpcap -i any -f "udp port 53 or tcp port 53" -w dns.pcap。sudo dumpcap -i eth0 -e -w link.pcap。sudo dumpcap -i any -w - | tcpdump -r -。以上过滤器均为 BPF 语法,可在 Wireshark 中进一步细化显示过滤表达式。四 长时间抓包与文件分割
sudo dumpcap -i any -G 60 -W bysec -w cap_%Y-%m-%d_%H:%M:%S.pcap。sudo dumpcap -i any -b filesize=10240 -w cap.pcap。sudo dumpcap -i any -B 1048576 -w cap.pcap;在高流量环境务必预估磁盘空间并关注 CPU/内存 占用。五 分析与排错要点
tshark -r capture.pcap。