4、Wireshark 核心操作:界面布局与首选项设置。捕获过滤器与显示过滤器。着色规则与数据包导航。
Wireshark 这东西,说白了就是物联网抓包人的眼睛。界面都认不全,过滤器不会写,那抓到的包就是一锅粥。这一章我带你把这几个核心操作啃透,以后分析 Zigbee、BLE、Wi-Fi 的报文,你心里就有底了。
4.1 界面布局:别被密密麻麻的窗口吓到
第一次打开 Wireshark,很多人会懵。菜单栏、工具栏、过滤栏、包列表、包详情、包字节——六个区域挤在一起。别慌,我拆开讲。
| 区域 | 位置 | 核心作用 |
|---|---|---|
| 包列表区 | 上方主窗口 | 显示所有抓到的数据包,一行一个 |
| 包详情区 | 中间左侧 | 解析协议字段,树形展开 |
| 包字节区 | 中间右侧 | 原始十六进制 + ASCII 对照 |
| 过滤栏 | 工具栏下方 | 输入捕获/显示过滤表达式 |
| 状态栏 | 底部 | 显示捕获状态、包数量、配置文件 |
我个人习惯把包详情区拉宽一点。因为物联网协议(比如 Zigbee 的 APS 层、BLE 的 ATT 层)嵌套深,树形展开后字段多,窗口窄了根本看不全。
Ctrl + 1/2/3 可以快速切换预设布局。我常用 Ctrl + 2(详情区在下方),看长报文时更舒服。
4.2 首选项设置:先调好这三处,省一半时间
默认设置够用,但不够顺手。我建议你花两分钟改三个地方,后面几十章都能受益。
4.2.1 时间显示格式
默认是「秒数自抓包开始」,调试时根本对不上事件时间。改成 UTC 日期时间 或 相对时间。
路径:Edit → Preferences → Appearance → Columns
→ 双击「Time」列,选「Absolute date and time」
4.2.2 自动滚动与实时捕获
抓实时流量时,包列表会一直往下滚。我建议关掉自动滚动,除非你在做现场演示。
路径:Capture → Options → 取消勾选「Update list of packets in real time」
4.2.3 协议解析器开关
物联网环境里,有些协议 Wireshark 会误解析。比如把私有 2.4G 数据当成 802.11 管理帧。遇到这种情况,去 Protocols 里手动禁用对应解析器。
4.3 捕获过滤器 vs 显示过滤器:别搞混了
这两个名字像,但用法天差地别。我见过太多人把显示过滤器的语法写进捕获过滤器,结果抓了个寂寞。
| 对比项 | 捕获过滤器 | 显示过滤器 |
|---|---|---|
| 作用时机 | 抓包前,网卡驱动层 | 抓包后,Wireshark 应用层 |
| 语法基础 | BPF(Berkeley Packet Filter) | Wireshark 自己的表达式 |
| 能否恢复数据 | 不能,过滤掉的包永远丢失 | 能,只是隐藏,数据还在 |
| 典型场景 | 只抓 Zigbee 信道 11 的流量 | 只看某个 MAC 地址的 Beacon 帧 |
4.3.1 捕获过滤器常用写法
捕获过滤器用 BPF 语法,写在 Capture Options 里。我列几个物联网场景最常用的:
# 只抓 Zigbee 信道 11(2.405 GHz)
# 注意:需要配合硬件抓包器,Wireshark 本身不直接调信道
wpan
# 只抓特定 MAC 地址的 Wi-Fi 包
ether host 00:11:22:33:44:55
# 只抓 UDP 端口 5683(CoAP 协议)
udp port 5683
# 抓所有非本地回环的包
not host 127.0.0.1
4.3.2 显示过滤器常用写法
显示过滤器才是你日常分析的主力。语法灵活,支持协议字段直接访问。
# 只看 Zigbee 的 ZCL 数据
zbee_zcl
# 只看 BLE 的 ATT Write Request
btatt.opcode == 0x52
# 只看 Wi-Fi 的 Probe Request
wlan.fc.type_subtype == 4
# 组合条件:来自特定 MAC 且长度大于 100 字节
wlan.sa == 00:11:22:33:44:55 && frame.len > 100
你想想看,如果不用过滤器,在几千个包里找一个 Probe Request,眼睛都得看花。显示过滤器就是你的精准搜索。
4.4 着色规则:一眼看出异常包
Wireshark 默认会给不同协议上色。比如 TCP 是浅紫,UDP 是浅蓝。但物联网场景下,默认规则不够用。
我建议你自定义几组着色规则:
- 红色:重传包、CRC 错误包
- 橙色:Beacon 帧、广播包
- 绿色:你关心的特定命令(比如 Zigbee 的 On/Off 指令)
- 灰色:ACK 确认包(太多,视觉上淡化它)
路径:View → Coloring Rules → 新建规则
示例:给 Zigbee 的 ZCL 数据包上绿色
Name: Zigbee ZCL Data
Filter: zbee_zcl
Foreground: #ffffff
Background: #27ae60
4.5 数据包导航:在报文海洋里快速定位
包多了怎么翻?别用鼠标滚轮硬拉。Wireshark 提供了几个导航利器。
4.5.1 快捷键导航
| 快捷键 | 功能 |
|---|---|
Ctrl + ↑/↓ |
跳转到上一个/下一个包 |
Ctrl + G |
跳转到指定包号 |
Ctrl + F |
在当前显示结果中搜索 |
Ctrl + N |
跳转到下一个标记包 |
4.5.2 标记与注释
分析过程中,遇到关键包就按 Ctrl + M 标记。标记后的包会高亮,方便后续回看。
如果需要写分析笔记,右键包 → Packet Comment,可以添加文字备注。这个功能在团队协作时特别有用。
4.5.3 追踪流
想看一次完整的 CoAP 请求-响应?选中一个包,右键 → Follow → UDP Stream。Wireshark 会自动过滤出这个会话的所有包,并按时间排序。
4.6 本章知识体系
下面这张图把本章的核心逻辑串起来了。从界面布局开始,到首选项调优,再到过滤器的正确使用,最后用着色和导航收尾。每一步都是为高效分析服务的。
界面布局是基础,首选项是效率,过滤器是核心技能,着色和导航是辅助手段。把这套流程跑熟了,你抓包分析的速度至少快一倍。