温馨提示×

如何使用Ubuntu Dumpcap进行网络故障排查

小樊
31
2025-12-05 08:10:56
栏目: 智能运维

Ubuntu 上使用 Dumpcap 进行网络故障排查

一 安装与权限配置

  • 安装工具:在 Ubuntu 上安装包含 DumpcapWireshark 包即可使用命令行抓包功能。执行: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

三 按故障场景的抓包策略

  • 丢包或重传高:抓取相关主机/端口流量并在 Wireshark 中检查 TCP Retransmission、Duplicate ACK 等。示例:sudo dumpcap -i any -f "host 192.168.1.10 and (tcp port 80 or 443)" -w loss.pcap
  • 高延迟或卡顿:同时抓取客户端与服务端(或网关)同网段接口,对比 RTT、窗口大小 变化。
  • DNS 解析异常:抓取 UDP/TCP 53 流量:sudo dumpcap -i any -f "udp port 53 or tcp port 53" -w dns.pcap
  • HTTP/HTTPS 访问异常:抓取 TCP 80/443 并配合应用日志定位请求失败阶段。
  • 仅链路层诊断:保留链路层头部信息:sudo dumpcap -i eth0 -e -w link.pcap
  • 实时查看(不落盘):sudo dumpcap -i any -w - | tcpdump -r -。以上过滤器均为 BPF 语法,可在 Wireshark 中进一步细化显示过滤表达式。

四 长时间抓包与文件分割

  • 按时间轮转:每 60 秒生成一个新文件,文件名含时间戳:sudo dumpcap -i any -G 60 -W bysec -w cap_%Y-%m-%d_%H:%M:%S.pcap
  • 按文件大小轮转:设置最大文件大小(单位 KB),到达上限自动新建文件:sudo dumpcap -i any -b filesize=10240 -w cap.pcap
  • 提升性能与稳定性:增大内核环形缓冲(单位 KB),如 sudo dumpcap -i any -B 1048576 -w cap.pcap;在高流量环境务必预估磁盘空间并关注 CPU/内存 占用。

五 分析与排错要点

  • 使用 Wireshark 打开 .pcap/.pcapng 文件进行解码与统计;命令行可用 tshark 快速查看:tshark -r capture.pcap
  • 常用检查:TCP 三次握手是否完成(SYN/SYN-ACK/ACK)、是否存在 重传/乱序/超时DNS 响应码HTTP 状态码、以及 ARP 解析是否异常。
  • 合规与安全:抓包可能触及敏感数据,务必确保对目标网络与主机具备合法授权,并遵守当地法律法规及公司合规要求。

0