抓包工具Wireshark用法?

访客 网络编程 2

本文目录导读:

  1. 基础入门
  2. 核心功能:捕获过滤 vs 显示过滤
  3. 进阶与实用技巧
  4. 常见场景示例
  5. 注意事项

Wireshark 是一个非常强大且常用的网络协议分析器(抓包工具),它主要用于捕获和分析网络数据包,帮助排查网络故障、分析协议细节或进行安全审计。

以下是一份从入门到进阶的 Wireshark 核心用法指南


基础入门

安装与启动

  • 下载:官网 wireshark.org,选择对应操作系统版本。
  • 权限
    • Windows:安装时需要勾选安装 Npcap(抓包驱动),安装后通常需要以管理员身份运行
    • macOS/Linux:需要 root 权限,通常在终端使用 sudo wireshark 启动,或授予当前用户抓包权限。

选择捕获接口

启动后,你会看到一个界面列出所有网络接口(网卡)。

  • 常用接口
    • 以太网 (Ethernet):有线连接。
    • Wi-Fi:无线连接。
    • Loopback (lo):本机回环地址(用于分析访问 0.0.1 的流量)。
  • 操作:双击某个接口开始实时抓包;或右键选择“Start”。

主界面布局

捕获开始后,界面主要分为三个窗格:

区域 名称
顶部 数据包列表窗格 显示所有捕获的包摘要(编号、时间、源/目的IP、协议、长度、信息)。
中部 数据包详情窗格 点击某个包,这里会展开该包的协议层次结构(如:帧 -> 以太网 -> IP -> TCP -> HTTP)。
底部 原始字节窗格 以十六进制和ASCII码显示数据包的原始比特流。

核心功能:捕获过滤 vs 显示过滤

Wireshark 有两种过滤机制,非常关键且容易混淆

特性 捕获过滤 (Capture Filter) 显示过滤 (Display Filter)
作用时机 在抓包开始前设置,决定哪些包被丢弃 在抓包开始后设置,决定哪些包被显示
语法风格 类似 tcpdump 的古老语法(较简单)。 自定义的强大语法(与逻辑、协议字段相关)。
目的 减少磁盘/内存占用,抓取特定流量。 从海量数据中快速定位目标包。
常用场景 只抓 80443 端口流量。 抓取所有包,然后只显示 HTTPDNS

捕获过滤(抓包前)

在接口选择界面的“Capture Filter”输入框设置。

  • 常用语法
    • host 192.168.1.1:只抓与 168.1.1 通信的包。
    • port 80:只抓 HTTP 流量。
    • not arp:不抓 ARP 协议。
    • src net 192.168.1.0/24:仅抓取源地址为 168.1.x 的包。

显示过滤(抓包后)

在界面顶部 “Filter” 工具栏输入,输入时会有语法提示,按回车应用。这是日常使用最多的功能

  • 常用语法
    • 基本协议httpdnstcpudpicmparp
    • IP 地址ip.addr == 192.168.1.1(源或目的)、ip.src == 10.0.0.1(仅源)
    • 端口tcp.port == 443udp.port == 53
    • 逻辑组合
      • http and ip.addr == 192.168.1.1(与)
      • tcp.port == 80 or tcp.port == 8080(或)
      • !arp(非,等同于 not arp
    • 高级字段
      • http.request.method == "GET"(只看GET请求)
      • tcp.analysis.flags(标记TCP异常,如重传)
      • frame.len > 1000(查看大于1000字节的包)

进阶与实用技巧

追踪流 (Follow Stream)

这是分析应用层协议(如 HTTP、FTP、SMTP)内容的最实用功能。

  • 操作:在某个 HTTP 或 TCP 包上右键 -> Follow -> TCP StreamHTTP Stream
  • 效果:Wireshark 会重组整个会话,显示客户端和服务器的完整对话内容(如网页源代码、下载的文件数据等)。

专家信息 (Expert Info)

  • 位置:底部状态栏的圆形图标,或菜单 Analyze -> Expert Info
  • 作用:自动分析包并标记错误、警告、注意等,如 TCP 重传 (Retransmission)失序 (Out-of-Order)连接重置 (RST) 等,这是排查网络延迟和丢包的利器。

着色规则 (Coloring Rules)

  • 作用:不同协议默认显示不同颜色(如 HTTP 浅蓝色、DNS 浅黄色,TCP 错误深红色)。
  • 自定义View -> Coloring Rules,想高亮所有 Google 的流量,可以新建规则。

统计功能 (Statistics)

  • HierarchyStatistics -> Protocol Hierarchy,可以看到各类协议占用流量的比例,快速定位流量大户(是 HTTP 多还是 UDP 多?)。
  • ConversationsStatistics -> Conversations,查看所有通信双方的对话,按数据包数量或字节数排序,快速找出消耗带宽最大的 IP。
  • IO GraphStatistics -> IO Graph,生成吞吐量折线图,用于分析流量突增或周期性波动。

导出特定对象 (Export Objects)

  • 操作File -> Export Objects -> HTTP...SMB...
  • 作用:当抓到包含文件传输的流量时(如网页图片、下载的文件),可以直接导出这些文件,无需手动从十六进制中提取。

常见场景示例

场景1:网站打不开,是DNS的问题吗?

  1. 开始抓包
  2. 在浏览器访问网站。
  3. 停止抓包,在过滤栏输入:dns
  4. 检查
    • 是否有 Standard query response
    • 如果有响应,看 Answers 部分是否有IP地址?
    • 如果没有响应或响应失败,说明是 DNS 解析问题。

场景2:网页加载慢,是哪个环节卡了?

  1. 过滤栏输入:http or dns
  2. 计算时间差
    • DNS 耗时DNS Query 时间戳 到 DNS Response 时间戳。
    • TCP 连接耗时SYNSYN ACK(三次握手第一、二步)。
    • SSL/TLS 耗时Client HelloServer Hello Done
    • 传输耗时HTTP GET 请求发出 到 收到第一个 [TCP Segment of a reassembled PDU]

场景3:怀疑有人蹭网或电脑中毒发起攻击

  1. 过滤栏输入:arp,看是否有大量、高频、源IP不同的 ARP 请求(可能是扫描)。
  2. 过滤栏输入:icmp,看是否有大量 Echo (ping) 请求(可能是Ping Flood)。
  3. 查看 Statistics -> Endpoints,按数据包数量排序,看哪个 IP 流量异常大。

注意事项

  • 不要在生产环境长期抓包:尤其是高流量场景,Wireshark 占用内存和CPU较大。
  • 不要在公共网络抓他人密码:在未授权的情况下抓取 HTTPS 之前(明文)的密码是违法的,现代 HTTPS 环境下抓到的内容是加密的。
  • 磁盘空间:默认情况下,Wireshark 会把所有抓到的包暂存在内存中,停止后才会写入文件,如果抓包时间长,建议设置“自动停止”或“分片保存”(Capture -> Options -> Stop capture after)。
  • 使用显示过滤字段:在包详情窗格中,右键点击任一字段 -> Apply as Filter -> Selected,可以快速生成精确的显示过滤表达式。

总结一句话:捕获过滤 来限制抓取范围以节省资源,用 显示过滤 来灵活查找数据,用 追踪流 来查看应用层原始内容。

标签: Wireshark用法

抱歉,评论功能暂时关闭!