1. WiFi 基础与抓包原理
各位好,我是老周。干无线网络这行十几年了,今天咱们聊聊 WiFi 抓包这件事。
很多人觉得抓包就是装个 Wireshark,点一下开始就完事了。其实不然。你想想看,不懂底层协议,抓回来的包就是一堆乱码。我刚开始学的时候也吃过这个亏——抓了一整天,啥也没分析出来。
这一章,咱们把地基打牢。从无线网络协议栈开始,到 802.11 帧结构,再到工具选型。一步一个脚印。
1.1 无线网络协议栈
WiFi 的协议栈,说白了就是 OSI 模型在无线环境下的落地。但有个关键区别——无线比有线多了个「空气介质」的管理层。
我习惯把 WiFi 协议栈分成三层来看:
- 物理层(PHY):负责把 0 和 1 变成无线电波发出去。调制方式、频段、信道宽度都在这一层。
- MAC 层:这是 WiFi 的灵魂。CSMA/CA、帧确认、重传、分片——全在这层搞定。
- LLC 层:把 802.11 帧转换成上层能识别的数据,比如 IP 包。
嗯,这里要注意。WiFi 的 MAC 层和有线以太网完全不同。有线靠冲突检测(CSMA/CD),无线靠冲突避免(CSMA/CA)。为什么?因为无线环境下,你没法一边发一边听——自己发的信号太强,会把别人的信号淹没掉。
核心要点:WiFi 协议栈的 MAC 层是抓包分析的主战场。80% 的性能问题都出在这一层。
1.2 802.11 帧结构
802.11 帧,是咱们抓包分析的核心对象。我见过太多人盯着十六进制看半天,啥也看不出来。其实帧结构是有规律的。
一个标准的 802.11 帧,由三部分组成:
| 帧头 | 帧体 | FCS |
|---|---|---|
| 30-36 字节 | 0-2312 字节 | 4 字节 |
| 包含帧控制、时长、地址等 | 承载上层数据或管理信息 | 校验帧完整性 |
帧头里的 帧控制字段 是最关键的。它告诉你:这是管理帧、控制帧还是数据帧。
- 管理帧:Beacon、Probe Request/Response、Association——这些是 WiFi 建立连接时的握手包。
- 控制帧:RTS、CTS、ACK——负责协调介质访问。
- 数据帧:真正承载用户数据的帧。
我记得有一次排查一个 AP 频繁掉线的故障。抓包一看,Beacon 帧间隔忽大忽小,从 100ms 跳到 300ms。这就是 AP 芯片过热导致定时器漂移了。换了个散热片,问题解决。
个人技巧:抓包时先看帧类型分布。如果管理帧占比超过 30%,说明环境里存在大量重连或扫描行为,性能肯定好不了。
1.3 抓包工具选择与安装
工具选不对,努力全白费。我这些年用过不下十种抓包工具,最后常驻的就三个。
1.3.1 Wireshark
这是主力。跨平台、协议解析全、社区活跃。Windows、macOS、Linux 都能跑。
安装很简单:
# Ubuntu/Debian
sudo apt install wireshark
# macOS
brew install --cask wireshark
# Windows
# 去官网下载安装包,一路下一步
但有个坑——Wireshark 本身不抓无线包。它只是个分析器。抓包要靠底层的 libpcap 或 Npcap。
避坑指南:Windows 下安装 Wireshark 时,记得勾选「安装 Npcap」。否则你会发现抓不到任何无线网卡的数据。我曾经因为这个折腾了一下午。
1.3.2 tcpdump
命令行利器。适合远程抓包、脚本化抓包。资源占用小,嵌入式设备上也能跑。
# 抓取 wlan0 接口上的所有 802.11 帧
sudo tcpdump -i wlan0 -w capture.pcap
# 只抓 Beacon 帧
sudo tcpdump -i wlan0 type mgt subtype beacon -w beacon.pcap
我个人习惯先用 tcpdump 在 AP 上抓个几分钟,再把 pcap 文件拖回本地用 Wireshark 分析。这样不占图形界面资源。
1.3.3 Aircrack-ng 套件
这个工具集里的 airodump-ng 是专门抓无线包的。它能开启网卡的监听模式(Monitor Mode),抓到所有经过的 802.11 帧。
# 开启监听模式
sudo airmon-ng start wlan0
# 开始抓包
sudo airodump-ng wlan0mon
嗯,这里要提醒一句。监听模式需要网卡支持。不是所有无线网卡都能切到 Monitor Mode。我踩过的坑是——买了个 USB 网卡,号称支持监听,结果驱动不完善,一开监听就断连。
| 工具 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| Wireshark | 本地分析、协议解码 | 图形化、功能全面 | 资源占用高 |
| tcpdump | 远程抓包、嵌入式设备 | 轻量、可脚本化 | 无图形界面 |
| Aircrack-ng | 无线审计、监听模式抓包 | 支持 Monitor Mode | 需要兼容网卡 |
1.4 本章知识体系
下面这张图,是我自己总结的 WiFi 抓包知识框架。每次带新人,我都先让他们看这个。
这张图把本章的三个核心模块串起来了。协议栈是理论基础,帧结构是分析对象,工具是实战手段。三者缺一不可。
我的建议:初学者别急着装工具。先把 802.11 帧结构背下来——至少要知道帧控制字段里哪几位是类型、哪几位是子类型。这比会操作 Wireshark 重要十倍。