插件窝 干货文章 Linux 网络抓包分析工具

Linux 网络抓包分析工具

流量 示例 分析 特点 381    来源:    2025-04-13

Linux 系统中有多种强大的网络抓包和分析工具,以下是常用工具的分类介绍及使用场景:


一、基础抓包工具

  1. tcpdump

    • 特点:命令行工具,轻量级,支持过滤表达式,可保存为 pcap 文件。
    • 常用命令bash tcpdump -i eth0 -w capture.pcap # 抓取 eth0 接口流量并保存 tcpdump host 192.168.1.1 and port 80 # 过滤特定主机和端口 tcpdump -nn -v -X 'tcp port 443' # 详细输出 HTTPS 流量
  2. tshark(Wireshark 命令行版)

    • 特点:支持 Wireshark 的所有协议解析,适合脚本化分析。
    • 示例bash tshark -i eth0 -f "tcp port 22" -w ssh.pcap # 抓取 SSH 流量 tshark -r capture.pcap -Y "http.request" # 读取文件并过滤 HTTP 请求

二、图形化分析工具

  1. Wireshark

    • 特点:功能最全面的 GUI 分析工具,支持协议解码、流量统计、图形化展示。
    • 常用功能
      • 过滤器:ip.src==192.168.1.1 && http
      • 统计:流量图(IO Graph)、端点统计(Endpoints)。
    • 安装bash sudo apt install wireshark # Debian/Ubuntu sudo yum install wireshark # RHEL/CentOS
  2. Ettercap

    • 特点:支持 MITM(中间人攻击)和 ARP 欺骗检测,用于安全审计。
    • 示例bash ettercap -T -i eth0 -M arp // // # ARP 欺骗检测模式

三、高级分析与监控工具

  1. ngrep

    • 特点:类似 grep,但针对网络流量,支持正则表达式匹配。
    • 示例bash ngrep -q 'password' port 21 # 捕获 FTP 中的密码字段
  2. tcpflow

    • 特点:重组 TCP 流,适合分析 HTTP/FTP 等应用层数据。
    • 示例bash tcpflow -i eth0 port 80 -c # 捕获并显示 HTTP 流量
  3. NetHogs

    • 特点:按进程实时监控网络带宽占用。
    • 安装bash sudo apt install nethogs # Debian/Ubuntu nethogs eth0 # 实时监控
  4. iftop

    • 特点:实时监控网络接口流量(类似 top 命令)。
    • 示例bash iftop -i eth0 -n # 显示 IP 而非域名

四、专用场景工具

  1. dnsmasq/dnstop

    • 用途:DNS 流量分析。
    • 示例bash dnstop -l eth0 # 监控 DNS 查询
  2. ssldump

    • 用途:解密和分析 SSL/TLS 流量(需私钥)。
    • 示例bash ssldump -i eth0 -k private.key port 443
  3. Driftnet

    • 用途:从流量中提取图片(如 HTTP 传输的图片)。
    • 示例bash driftnet -i eth0 -d ./captured_images

五、性能诊断组合

  • 带宽监控iftop + nload
  • 连接分析ss -tulnp + netstat
  • 深度抓包tcpdump → 导出为 pcap → Wireshark 分析

六、注意事项

  1. 权限问题:抓包需 root 权限(或 sudo/cap_net_raw 能力)。
  2. 过滤技巧
    • 减少噪音:tcpdump -i eth0 'not arp and not port 22'
    • 捕获 SYN 包:tcpdump 'tcp[tcpflags] & tcp-syn != 0'
  3. 存储管理:大流量时限制文件大小(-C 参数)。

根据需求选择工具:
- 快速排查tcpdump
- 协议分析 → Wireshark
- 实时监控iftop/nethogs
- 安全审计ettercap/ssldump