一、抓包基础:无线抓包到底是个啥?

各位同学好,我是老周。干无线通信这行十几年了,抓包这件事几乎天天都在做。今天咱们就聊聊无线抓包的基础——说白了,就是把空中飞来飞去的无线电波给“截住”,然后解析成我们能看懂的数据包。

你可能会问:为啥要抓包?嗯,我举个例子。有一次我在调试一个智能家居网关,设备明明连上了Wi-Fi,但就是收不到指令。折腾了半天,最后抓包一看——好家伙,网关在发ARP请求,路由器根本不回。原来是路由器的DHCP池满了,新设备拿不到IP。这种问题,不看包你永远猜不到。

1.1 无线抓包的概念

无线抓包,本质上就是监听无线信道上的数据帧。和有线抓包不同,无线环境里信号是广播的——只要你的网卡处在某个AP的覆盖范围内,理论上就能收到它发出的帧。

但这里有个坑:普通网卡默认只收发给自己的帧。想抓别人的包,得把网卡设成混杂模式(Promiscuous Mode),甚至监控模式(Monitor Mode)。监控模式下,网卡不关联任何AP,只管收空中的所有802.11帧——管理帧、控制帧、数据帧,一个不落。

⚠️ 注意: 监控模式不是所有网卡都支持。我踩过这个坑——买了个USB网卡,芯片是RTL8188EU,死活进不了监控模式。后来换了Atheros AR9271的芯片才搞定。所以选抓包硬件时,先查芯片型号支不支持monitor mode。

1.2 应用场景:什么时候需要抓包?

我总结下来,无线抓包主要有三大场景。你想想看,是不是都遇到过?

场景 典型问题 抓包能发现什么
调试 设备连不上网、吞吐量低、频繁断连 重传率过高、认证失败、信道干扰
安全审计 怀疑有非法AP、Deauth攻击、密码破解 伪造的Beacon帧、大量Deauth包、PMKID泄露
性能分析 视频卡顿、游戏延迟高、下载速度慢 信道利用率、冲突、TCP窗口问题

我个人习惯,遇到无线问题先抓三分钟包。很多时候,问题就藏在那些重复出现的帧里。

调试场景

调试是最常见的。比如你写了一个IoT设备的Wi-Fi驱动,上电后它连不上路由器。抓包一看——设备发了Association Request,AP回了Association Response,但状态码是17(拒绝)。这说明AP的关联表满了,或者设备不支持AP要求的加密方式。这种问题,看日志是看不出来的。

安全审计

安全审计这块,我印象最深的是有一次帮客户排查“Wi-Fi时不时掉线”的问题。抓包抓了半小时,发现有个MAC地址在疯狂发Deauth包——每秒几百个。这就是典型的Deauth攻击。后来定位到是楼下商铺的老板搞了个信号干扰器。嗯,报警处理了。

性能分析

性能分析更依赖抓包。你感觉网络慢,但慢在哪?是AP处理不过来,还是信道干扰太大?抓包看几个指标:重传率(Retry)、信道占用时间(Channel Utilization)、帧间隔(IFS)。重传率超过10%基本就有问题了。

1.3 常用抓包工具介绍

工具不在多,顺手就行。我常用的就三个:Wireshark、tcpdump、OmniPeek。各有各的适用场景。

1.3.1 Wireshark

Wireshark是图形化工具里的王者。支持上千种协议解析,过滤功能极其强大。我个人习惯在Windows或macOS上用Wireshark做离线分析——把抓好的pcap文件导进去,慢慢看。

Wireshark的过滤语法是必学的。比如:

wlan.fc.type_subtype == 0x08  // 只看Beacon帧
wlan.fc.retry == 1            // 只看重传帧
wlan.addr == 00:11:22:33:44:55 // 只看某个MAC地址的帧

💡 小技巧: 在Wireshark里右键一个帧,选“Follow → TCP Stream”,可以直接看到TCP会话的完整内容。调试HTTP或MQTT协议时特别有用。

1.3.2 tcpdump

tcpdump是命令行工具,适合在嵌入式设备或服务器上直接抓包。资源占用小,可以后台运行。我在调试Linux嵌入式设备时,经常SSH进去跑tcpdump:

tcpdump -i wlan0 -w /tmp/capture.pcap
tcpdump -i wlan0 -e -n -vvv  // 实时查看,显示链路层信息

tcpdump的缺点是不太直观,过滤语法比Wireshark复杂。但胜在轻量——有些嵌入式设备内存才64MB,跑Wireshark是不可能的,tcpdump完全没问题。

1.3.3 OmniPeek

OmniPeek是商业工具,价格不便宜,但功能确实强。它最大的优势是实时解码和专家分析——抓包的同时就能告诉你“这里有异常”。比如它会自动标记出重传率高的节点、检测到Deauth攻击、分析信道利用率。

我曾经在做一个大型场馆的Wi-Fi覆盖项目时,用OmniPeek配合多块网卡同时抓多个信道的数据。它的“信道扫描”功能可以轮询所有信道,帮你找到干扰源。不过说实话,日常调试我还是用Wireshark多——毕竟免费,社区也活跃。

工具对比

工具 平台 价格 适合场景
Wireshark Win/Mac/Linux 免费 离线分析、协议解析、教学
tcpdump Linux/嵌入式 免费 远程抓包、资源受限设备
OmniPeek Windows 商业付费 大规模部署、实时专家分析

1.4 无线抓包知识体系

下面这张图是我自己整理的无线抓包知识框架。你把它记在心里,后面每章都会用到。

无线抓包知识体系 无线抓包 核心概念 应用场景 常用工具 监控模式 混杂模式 802.11帧类型 信道与频段 调试 安全审计 性能分析 Wireshark tcpdump OmniPeek 核心:理解802.11帧结构 + 掌握过滤语法 + 熟悉工具特性 = 快速定位无线问题的能力

这张图把无线抓包分成了三个维度:概念、场景、工具。你从任何一个维度切入都能学会,但真正用的时候得三个维度结合起来。比如你知道了监控模式(概念),遇到设备连不上网(场景),用Wireshark抓包(工具)一看——哦,是认证帧丢了。这就是实战。

📌 本章要点:

  • 无线抓包的核心是监听空中802.11帧,需要监控模式支持
  • 三大应用场景:调试、安全审计、性能分析
  • Wireshark适合离线分析,tcpdump适合嵌入式,OmniPeek适合大规模部署
  • 抓包前先确认网卡芯片是否支持监控模式——这个坑我替你们踩过了