当前位置: 首页 > news >正文

用 Wireshark 嗅探 ESP32 通信数据,教你看懂“WiFi 的语言”

🕵️ 用 Wireshark 嗅探 ESP32 通信数据,教你看懂“WiFi 的语言”

很多做 ESP32 的工程师都会遇到一个瓶颈:

  • 代码看起来没问题
  • 日志也没有明显报错
  • WiFi 连接就是不稳定 / 偶尔失败 / 延迟巨大

这时候,继续“猜”已经没意义了。
真正工程级的调试手段只有一个:抓包,看数据在“空中”到底发生了什么。

今天这篇文章,手把手带你用Wireshark嗅探 ESP32 的通信数据,让你真正“听懂 WiFi 在说什么”。


一、为什么一定要学会抓 WiFi 包?

日志只能告诉你结果,而抓包能告诉你过程

通过 Wireshark,你可以直接看到:

  • ESP32 是否真的发出了 Probe / Auth / Assoc
  • WPA2 / WPA3 四次握手是否完整
  • DHCP 为什么失败
  • 是否存在大量重传(Retry)
  • ACK 丢失、信道拥塞、RTS/CTS 行为

一句话总结:

WiFi 调试,不看包就是盲人摸象。


二、抓 WiFi 包的前置条件(非常关键)

⚠️ 先说结论:
普通笔记本电脑,默认是抓不到 WiFi 空口数据的。

你需要满足以下条件之一:


✅ 方案一:支持 Monitor Mode 的无线网卡(最推荐)

  • USB WiFi 网卡

  • 芯片推荐:

    • RTL8812AU
    • RTL8821CU
    • Atheros AR9271

系统支持情况:

  • Linux:最好(原生支持监听模式)
  • Windows:需要特殊驱动
  • macOS:部分型号支持

✅ 方案二:ESP32 本身开启 Sniffer(进阶)

ESP32 可以工作在Promiscuous Mode,用于监听周围 WiFi 帧(适合分析环境,但抓不到加密数据内容)。


三、Wireshark 基础设置(一步到位)

1️⃣ 开启监听模式(Linux 示例)

iplinksetwlan0 down iw dev wlan0settypemonitoriplinksetwlan0 up

启动 Wireshark,选择wlan0接口。


2️⃣ 设置监听信道(否则什么都抓不到)

iw dev wlan0setchannel6

⚠️必须和 ESP32 所连 AP 的信道一致


四、先抓一个“完整的 ESP32 入网过程”

推荐测试流程:

  1. 关闭 ESP32
  2. 开始抓包
  3. 上电 ESP32
  4. 停止抓包

你会看到以下典型帧序列:


🔍 阶段 1:扫描(Discovery)

关键帧:

  • Beacon
  • Probe Request
  • Probe Response

Wireshark 过滤器:

wlan.fc.type_subtype == 0x08 # Beacon wlan.fc.type_subtype == 0x04 # Probe Request

你可以确认:

  • ESP32 是否在主动扫描
  • AP 是否正常回应

🔐 阶段 2:认证 & 关联

关键帧:

  • Authentication
  • Association Request / Response

过滤器:

wlan.fc.type_subtype == 0x0b # Auth wlan.fc.type_subtype == 0x00 # Assoc Req

如果卡在这里,通常是:

  • 加密模式不匹配
  • AP 不支持 ESP32 的能力集

🔑 阶段 3:WPA2/WPA3 四次握手

你会看到:

  • Message 1 / 2 / 3 / 4
  • Key Information 字段

过滤器:

eapol

重点观察:

  • 是否 4 条消息都齐全
  • 是否频繁重传
  • Message 3 丢失最常见

🌐 阶段 4:DHCP 获取 IP

典型序列:

DHCP Discover DHCP Offer DHCP Request DHCP ACK

过滤器:

bootp

如果你看到:

  • Discover 发出但没 Offer
    👉 路由器 DHCP 表满 / 忙

五、看懂 WiFi 帧的几个关键字段

1️⃣ RSSI(信号强度)

在 Radiotap Header 中:

  • -30 ~ -60 dBm:很好
  • -70 dBm:开始不稳定
  • < -80 dBm:必丢包

2️⃣ Retry 位(判断是否拥塞)

过滤重传帧:

wlan.fc.retry == 1

大量 Retry =
👉 信道拥塞 / 干扰严重 / ACK 丢失


3️⃣ Duration / NAV(虚拟占用)

Duration 值越大,说明信道被占用时间越长
在 IoT 密集场景中非常常见。


4️⃣ ACK 是否正常返回

ACK 帧过滤:

wlan.fc.type_subtype == 0x1d

无 ACK =
👉 数据可能白发了


六、抓包分析 ESP32 常见问题案例


❌ 案例 1:ESP32 偶尔连不上 WiFi

抓包现象:

  • Probe 正常
  • Auth 正常
  • Message 3 重发多次

结论:
👉 WPA2 四次握手中丢包
👉 信号弱 / 干扰


❌ 案例 2:已连 WiFi 但无 IP

抓包现象:

  • DHCP Discover 重复
  • 无 Offer

结论:
👉 DHCP 服务问题
👉 路由器连接数已满


❌ 案例 3:MQTT 延迟巨大

抓包现象:

  • TCP 重传多
  • Retry 位频繁
  • ACK 延迟

结论:
👉 CSMA/CA 退避严重
👉 2.4GHz 拥堵


七、ESP32 抓包调试黄金法则

✔ 先抓入网包
✔ 再抓业务包
✔ 用过滤器缩小范围
✔ 不要一上来就看 TCP
✔ 永远关注 Retry 和 RSSI


八、推荐 Wireshark 过滤器速查表

目的过滤器
Beaconwlan.fc.type_subtype == 0x08
Probewlan.fc.type_subtype == 0x04
Authwlan.fc.type_subtype == 0x0b
WPA 握手eapol
DHCPbootp
重传wlan.fc.retry == 1
ACKwlan.fc.type_subtype == 0x1d

九、总结:看懂 WiFi 的语言,你就赢了一半

一句工程真理送给你:

WiFi 问题的答案,不在代码里,而在数据包里。

当你真正学会用 Wireshark 看 ESP32 的通信行为:

  • 掉线不再是玄学
  • 连接失败有据可查
  • 网络优化有明确方向

这也是从“能写代码”到“能做产品”的分水岭。


http://www.jsqmd.com/news/216993/

相关文章:

  • 题解:AT_iroha2019_day3_f 闇のカードゲーム
  • Day60 PythonStudy
  • 【机械臂】基于Sawyer机械臂的多目标 RRT 路径规划 + 轨迹跟踪控制+ 数据生成附matlab代码
  • AI产品经理VS普通产品经理:AI思维才是核心竞争力,程序员必学技能
  • 【Hadoop+Spark+python毕设】近8年软科中国大学排名数据可视化分析系统、计算机毕业设计、包括数据爬取、数据分析、数据可视化、实战教学
  • MySQL--》深入理解视图、存储过程与触发器的强大功能
  • 【法学专业论文写作模版】未成年人犯罪低龄化问题及对策研究
  • 计算机网络必看:信道的极限容量,408真题常考!
  • AI大模型开发学习指南:助你实现90%就业率和年薪72w+_AI爆了!最高年薪72w!
  • 手机变+Linux+控制台?JuiceSSH+++cpolar远程连接让运维随时随地搞定
  • 【无人机三维路径规划】基于鳄鱼伏击算法CAOA多无人机协同路径规划(自定义:无人机数量)附Matlab代码
  • 华为HCCDP-GaussDB工作级开发者题库(带详细解析)
  • 2026 GEO落地真相:SHEEP-GEO 98.7%续约率背后,12亿月活平台的优化实战报告
  • MySQL--》理解锁机制中的并发控制与优化策略
  • LeetCode 2080 区间频率查询详解(哈希表 + 二分法)
  • 彻底搞懂浏览器原生录制:MediaRecorder API 深度解析
  • AI大模型架构师必学指南:从知识储备到高薪前景,一篇收藏就够了!
  • IoT 场景中的 DHCP、ARP、ICMP 到底在干嘛?
  • MySql-9.1.0安装详细教程(保姆级)
  • AI产品经理转型与大模型学习路线图,附赠全套学习资源_月薪3W的AI产品经理学习路线
  • 大模型学习宝典:从小白到专家的进阶之路,建议收藏反复阅读
  • 【ITK手册006】itk::Point 深度解析与实用指南
  • 主流AI平台用户占55%,SHEEP-GEO凭五维模型成企业AI搜索战略伙伴
  • MySQL 时区参数 time_zone 详解
  • 量化交易脚本开发:DeepSeek生成技术指标计算与信号触发代码
  • MySQL 数据增删改查
  • RAG Agent记忆功能完全指南:3种方法解决长对话上下文丢失问题
  • Ehercat代码解析中文摘录<8>
  • 太流批了,老牌软件,数据对比神器
  • 个性化旅游行程规划系统-计算机毕业设计源码+LW文档