温馨提示×

Ubuntu Dumpcap如何进行流量统计和分析

小樊
33
2025-12-09 06:35:17
栏目: 智能运维

Ubuntu 下使用 Dumpcap 进行流量统计与分析

一 安装与权限配置

  • 安装工具:在 Ubuntu 上安装包含 Dumpcap 的 Wireshark 包即可使用 Dumpcap。
    • 命令:sudo apt update && sudo apt install wireshark
  • 权限与安全:
    • 推荐将当前用户加入 wireshark 组,避免使用 root 直接抓包:
      • sudo groupadd wireshark(若组不存在)
      • sudo usermod -aG wireshark $USER
      • 重新登录或重启会话后生效
    • 或给 Dumpcap 授予能力:sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
  • 说明:Dumpcap 是 Wireshark 的命令行抓包引擎,擅长高性能捕获,统计与深度分析建议配合 Wireshark 或 TShark 完成。

二 捕获流量与过滤器

  • 查看接口:dumpcap -D(列出可用网卡,如 eth0、wlan0、any
  • 基本捕获:sudo dumpcap -i <接口> -w <文件.pcapng>
    • 示例:sudo dumpcap -i any -w capture.pcapng
  • 捕获过滤器(BPF,减少无关流量,提升性能):
    • 仅 TCP:sudo dumpcap -i any -f "tcp" -w tcp_only.pcapng
    • 仅 80/443:sudo dumpcap -i any -f "tcp port 80 or tcp port 443" -w web.pcapng
    • 指定主机:sudo dumpcap -i any -f "host 192.168.1.100" -w host.pcapng
  • 常用控制:
    • 按包数停止:-c <数量>(如 -c 1000
    • 环形缓冲(避免磁盘打满):-b filesize:<MB> -b files:10
  • 提示:过滤器要用引号包裹,防止 Shell 解析错误。

三 统计与分析方法

  • 使用 Wireshark 图形界面(适合交互式统计)
    • 打开文件:File → Open → 选择 .pcap/.pcapng
    • 协议分层统计:Statistics → Protocol Hierarchy(按协议分布)
    • 会话与端点:Statistics → Conversations / Endpoints(按 IP/端口/会话 汇总流量、包数、字节数)
    • IO 图表:Statistics → IO Graphs(按时间维度观察吞吐、重传、丢包等趋势)
  • 使用 TShark 命令行(适合自动化统计与报表)
    • 基本字段导出:
      • tshark -r capture.pcapng -T fields -e frame.time -e ip.src -e ip.dst -e ip.len | head
    • 按条件统计(如 HTTP GET):
      • tshark -r capture.pcapng -Y "http.request.method == 'GET'" -q -z io,stat,0
    • 协议分布概览:
      • tshark -r capture.pcapng -q -z io,phs
  • 组合思路:先用 Dumpcap 高效捕获并落盘,再用 Wireshark/TShark 完成统计、图表与诊断。

四 实用命令清单

  • 捕获所有接口前 1000 个包到文件:
    • sudo dumpcap -i any -c 1000 -w top1000.pcapng
  • 环形缓冲,单个文件 100MB、保留最近 10 个文件:
    • sudo dumpcap -i any -b filesize:100 -b files:10 -w ring.pcapng
  • 仅抓取 80/443 并限制为 10 秒
    • sudo dumpcap -i any -f "tcp port 80 or tcp port 443" -a duration:10 -w web10s.pcapng
  • 统计 HTTP GET 请求数:
    • tshark -r web10s.pcapng -Y "http.request.method == 'GET'" -q -z io,stat,0
  • 查看协议分布:
    • tshark -r web10s.pcapng -q -z io,phs
  • 实时将抓包流转给 TShark 分析(不落盘):
    • sudo dumpcap -i any -w - | tshark -r - -Y "dns" -T fields -e dns.qry.name

五 注意事项

  • 合法合规:抓包可能涉及隐私与合规风险,务必在授权范围内操作,避免捕获敏感明文数据(如未加密口令)。
  • 性能与存储:高流量环境请使用 环形缓冲、合适的 snaplen(默认通常足够)、以及 BPF 过滤器减少负载;长时间运行需关注磁盘空间与 CPU 占用。

0