资讯动态

WLAN工作流程与抓包实战:从入门到无线排障

发布时间:2026/10/21 20:59:13 来源:尧图企业网站定制
做无线网络这个行当最常被技术群里的朋友问的一句话就是“无线连着好好的怎么一到晚上就这么卡是不是有人蹭网”以前我也靠猜后来才明白猜是效率最低的排障方式。无线链路看不见摸不着唯一能还原现场的就是抓包而抓包之前不把WLAN工作流程吃透满屏报文摆在面前你根本不知道该看哪个字段更不知道哪一步断了。这篇文章就把WLAN工作流程、抓包这两件事串起来讲一遍适合刚接触无线抓包的读者也适合那些被无线怪问题折磨了很久的朋友。1. 抓包之前先把WLAN工作流程这条主线搭起来1.1 很多无线排障是“瞎抓”我见过太多人一打开Wireshark就开始点捕获抓三秒钟看到满屏的报文来回滚动然后说“包太多了看不懂”。不是包太多是没有主线。WLAN设备之间的通信不是一锅粥而是一条严格的流水线从手机或笔记本打开WiFi开关到真正能上网中间每一步都有固定报文、固定字段、固定顺序。抓包的价值就在这里——把无线这条看不见的链路变成一本可回放、可检索的“聊天记录”。可前提是你得知道正常情况下这本聊天记录长什么样。不知道正常就没法判断异常。很多无线问题排查不出来不是工具不够好而是脑子里没有流程。比如你看到一堆Beacon帧不知道它是“广播自己的存在”看到EAPOL帧不知道它是四步握手的一部分。这些报文对你来说就是一堆乱码。所以我的建议是在动Wireshark之前先把WLAN工作流程从头到尾走一遍把每个阶段对应到具体的帧类型上。流程有了抓包才有方向。1.2 一次完整接入的七个环节把一次WLAN接入拆开你会发现它是有严格阶段的。为了方便记忆我喜欢用“酒店入住”来做类比你打开WiFi列表相当于站在酒店门口看招牌这是扫描Scan你从前台拿到房卡前要出示证件这是认证Authentication前台确认你身份后把房卡递给你这是关联Association你进门时输入房间门锁密码确认无误这是密钥协商的四步握手4-Way Handshake前台告诉你房间号和楼层相当于DHCP分配IP地址之后你在房间里自由活动对应正常数据通信退房离开或者被管理员请出去对应去认证与去关联。把这个流程记牢了后面所有报文都不会迷路。为了方便对照我把各阶段的关键报文列成一张表这是整篇文章的地图阶段关键报文帧类型/协议最值得看的字段扫描Beacon / Probe Request / Probe Response管理帧SSID、信道、能力信息认证Authentication Request / Response管理帧 subtype 11状态码、认证算法关联Association Request / Response管理帧 subtype 0/1状态码、客户端能力密钥协商EAPOL-Key Message 1~4EAPOLANonce、SNonce、MIC、GTK地址分配DHCP Discover / Offer / Request / ACKDHCP源地址、Option 55、Option 54数据传输Data 帧数据帧重传位、地址字段断开Deauth / Disassoc管理帧 subtype 12/10原因码1.3 抓包其实是给流程“拍监控”把工作流程理解成流水线抓包就是在关键路口架监控摄像头。你说AP能连、也能认证但就是拿不到IP那监控该架在DHCP这一段你说密码肯定没问题但就是连不上监控应该回放到四步握手这一拍。如果连问题发生在那一段都不知道抓再多的包都是在浪费时间。我经常跟人讲一个比喻无线抓包就像是给飞机装黑匣子。飞机出事了把黑匣子拿出来回放数据很快就能知道是发动机、液压还是操作问题。无线网络也一样用户说“卡”“掉线”都是主观描述只有报文是客观证据。带着流程去抓包你手里就有了一台提前录好的黑匣子而不是一团乱麻。2. 抓包前的准备监听模式、工具选型和抓包位置2.1 监听模式无线抓包的第一道坎很多新手第一次抓无线拿笔记本自带的WiFi网卡打开Wireshark选了WiFi接口结果抓出来的包少得可怜而且全是发给自己的数据。原因很简单普通网卡默认工作在受控模式Managed驱动只把发给本站的帧交到上层协议栈空中的管理帧、别人的数据帧它根本不收。要让网卡真正“旁听”空中的所有802.11帧必须把网卡切到监听模式Monitor相当于把无线网卡变成一台只听不说的无线电收音机。Linux下设置监听模式的命令很直白sudo ip link set wlan0 down sudo iw dev wlan0 set type monitor sudo ip link set wlan0 up sudo iw dev wlan0 set channel 6这里的channel必须和你准备观测的AP所在信道一致。如果信道不对要么什么都抓不到要么只能抓到零星的几个包丢帧严重。如果网卡驱动不支持监听模式第二条命令会直接报错或者设置了也收不到任何报文。用iw list查看“Supported interface modes”里有没有monitor这一项可以先避免大半的弯路。Windows下很多内置网卡驱动干脆不支持监听模式我的建议是直接用Linux环境要么用一台轻量虚拟机要么准备一个支持Linux驱动的USB网卡专门用来抓包。抓包是个体力活工具顺不顺手直接影响效率。2.2 无线抓包的硬件与工具工具层面Wireshark加上tcpdump基本就够用了。tcpdump适合在远程设备或者无人值守的场景下抓包抓完保存成pcap文件再拉到本地用Wireshark分析sudo tcpdump -i wlan0 -w wifi_capture.pcapng不过tcpdump默认抓无线接口时输出数据的链路层格式可能不带Radiotap头部Wireshark打开后识别不了802.11管理帧。一般要配合-y IEEE802_11_RADIO参数让pcap带上Radiotap头Wireshark才能完整还原Beacon、Probe等一干管理帧信息。硬件上最稳妥的方案是USB无线网卡挑一颗对监听模式支持良好的芯片不推荐用笔记本内置网卡。内置网卡在监听模式下经常丢帧、掉信道而且抓包期间这张网卡没法同时联网会打乱你自己的测试环境。如果条件允许最好准备两块网卡一块正常联网做业务一块专门做旁听。抓包地点如果离AP或终端太远天线灵敏度不够关键帧可能收不到这时候宁可把抓包设备放到目标设备旁边也不要图省事隔着一堵墙抓。提示抓包属于正当的网络诊断手段请确保你只在自己拥有管理权限或已经获得明确授权的网络环境中进行。2.3 三个抓包位置看到的画面完全不同这是无线抓包最容易踩的坑。同样的故障站在不同位置抓包结论可能完全相反。空中抓包Over-the-Air拿一台笔记本装好监听模式放在被测客户端或AP附近抓的是无线电波覆盖范围内的所有802.11帧。能看到Beacon、Probe、四步握手、管理帧重传信息最全是无线问题排障的首选位置也是本文讨论的重点。AP有线侧抓包通过AP的调试功能或接入交换机端口镜像看到的是802.11到802.3转换之后的数据帧纯无线管理帧基本看不到但能看到RADIUS、DHCP、VLAN等后端交互。如果空中抓包显示无线链路正常但业务还是不通就要在这里补一刀。AC或核心侧抓包适用于大型组网往往配合AP上报的无线控制器日志一起看用于排查漫游、负载均衡、策略下发等集中管控层面的问题。我个人的习惯是先空中抓包判断无线链路是否正常再有线侧抓包判断后端服务是否正常两边一对照问题范围立刻缩小一大半。只做一侧抓包很容易得出片面的结论。2.4 掌握过滤表达式别被报文淹没无线抓包的数据量非常大。一个繁忙的AP周边每秒可能蹦出一两百个Beacon再加上周围邻居AP、其他终端的报文抓十分钟文件就可能上GB。所以抓前一要想清楚观察目标抓完要善用显示过滤器。最常用的几个显示过滤器Wireshark Display Filter我列在这里只看某个APwlan.bssid aa:bb:cc:dd:ee:ff只看某个终端wlan.sa xx:xx:xx:xx:xx:xx || wlan.da xx:xx:xx:xx:xx:xx只看管理帧wlan.fc.type 0只看Beaconwlan.fc.type_subtype 8只看四步握手eapol只看DHCPbootp想抓全量数据的时候我不建议在抓包阶段就把过滤条件卡得很死因为一旦漏掉关键帧是无法事后补抓的。最稳的做法是先把相关阶段的报文全量落盘然后用显示过滤器去做二次分析。抓包阶段只要把握好频道、位置和时长后面有的是时间慢慢看。3. WLAN工作流程各阶段的抓包特征详解3.1 扫描阶段Beacon与Probe的“打招呼”打开WiFi列表时你的设备其实就在做扫描。设备默认两种扫描方式都做被动扫描是坐在那里听BeaconAP默认每100ms广播一次BeaconBeacon里带着SSID、支持的速率、信道、认证能力等信息主动扫描是客户端主动发出Probe Request问“附近有没有我要找的SSID”AP收到后再回复Probe Response。抓包时看扫描阶段能挖出几个特别有价值的信息点。第一隐藏SSID的APBeacon里SSID字段为空但Probe Response里会把SSID带出来前提是客户端主动喊出这个SSID。换句话说如果怀疑某个AP隐藏了SSID又找不到它空中抓包比站在AP旁边看管理界面更直接。第二Probe Request里如果带了一长串SSID说明这个终端在“回忆”它配置过的网络列表这是判断终端侧行为的重要线索。第三如果终端一直在发Probe Request却没有任何Probe Response回来基本可以断定覆盖不行或者射频链路有问题问题出在连接建立的最前面后续根本还没开始。3.2 认证与关联阶段状态码里藏着拒绝原因认证和关联经常被混为一谈其实是两个独立的管理帧交互。认证Authentication是身份确认使用的是Authentication Request/Response关联Association才是把终端正式“挂”到AP上使用的是Association Request/Response。抓包时看到认证状态码是0只说明第一关过了关联响应里的状态码才是AP最终是否接纳终端的关键。关联响应里的状态码Wireshark会直接翻译成可读文字。常见的有这么几类状态码0成功不再多说。状态码12左右的“资源不足”AP已经挂满了终端无法再接纳新客户端常见于小AP扛大并发。状态码13这种“速率集不支持”AP和终端的物理速率协商不上多见于老AP遇到新终端或者终端网卡驱动带了些AP不认识的速率。状态码10“能力不匹配”终端要求的能力AP不支持常见于802.11协议版本不匹配或漫游协议没开齐。遇到这类问题不要停留在“终端连不上”这个层面有状态码在手该扩容就扩容该升驱动就升驱动动作会精确很多。3.3 四步握手EAPOL帧与密钥协商现场个人WPA/WPA2网络里关联成功后紧跟的是四步握手。这是无线抓包最有含金量的环节几乎所有“密码明明没问题却连不上”的悬案都发生在这里。四步握手中的四个消息在Wireshark里显示为EAPOL帧Message 1AP把ANonce发给终端。这个随机数相当于一把临时锁。Message 2终端把SNonce和MIC发回AP。MIC是用PMK、ANonce、SNonce、双方MAC地址等一起算出来的消息完整性校验值一旦密码不对AP侧校验MIC过不了就不会继续发Message 3。Message 3AP确认终端身份后把组临时密钥GTK加密后发给终端同时宣布双方安装成对临时密钥PTK。Message 4终端回一个确认AP最终安装PTK单播数据加密通道才算建立。抓包判断密码错误的最直接特征看到Message 1发出后终端回了Message 2但AP一直不再回Message 3而Message 1还在周期重发。看到这个序列基本上可以断定是密码错误或者PMK不匹配这时候再去路由器管理页面重敲一遍密码才有意义。反过来如果连Message 2都没出现说明终端压根没收到Message 1问题出在无线链路的第一跳而不是密钥本身。3.4 DHCP与数据面从获取地址到正常通信四步握手完成之后才是DHCP。这个阶段抓包有个非常经典的“断案”逻辑终端发出DHCP Discover源地址0.0.0.0目的地址255.255.255.255如果之后没有下文说明DHCP请求根本没出无线网要么射频链路有故障要么AP在转换时丢弃了报文。Discover和Offer都正常但Request丢了或者ACK丢了多半是终端在拿到Offer之前链路断开或者AP/VLAN隔离策略拦截了后续交互。完整看到Discover/Offer/Request/ACK四步说明无线链路和有线链路都正常剩下的问题不在IP分配而在域名解析、网关、上层应用。正常数据通信阶段最值得盯的是数据帧里的重传位。Wireshark里帧控制字段的retry位为1就代表这是一个重传帧。偶尔重传一两次很常见但重传率长期高于15%甚至20%就要怀疑信号覆盖不足、同邻信道干扰严重、或者老旧的速率集拖累了整体链路。想量化看可以直接用wlan.fc.retry 1把所有重传帧筛出来看它们集中在哪个终端、哪个频段再用“统计→WLAN流量”看整体分布比肉眼翻包高效得多。3.5 漫游与去关联拆包看清“搬家”与“被踢”漫游本质上是终端从关联一个AP切换到另一个AP的过程。如果网络支持802.11k/v/r终端会借助邻居报告、BSS Transition管理帧、快速BSS切换动作帧来加速切换抓包时会看到Reassociation Request/Response以及FT Action帧这些新面孔。漫游抓包最有用的场景是判断切换是否出现长时间上下行中断或者终端发起了重关联但AP迟迟不回响应。去关联Disassociation和去认证Deauthentication这两个管理帧是判断终端掉线原因的关键。它们都带一个原因码几个高频的我直接列在这里原因码3或8站点离开BSS通常是终端主动断开属于正常现象。原因码4终端不活动超时被AP清理常见于IoT设备长时间不通信。原因码7未关联站点发了数据帧属于关联状态机异常。原因码9站点还没完成认证就想关联经常是加密配置不匹配导致反复协商。原因码15四步握手超时被AP踢下线密码错误或PMK过期都有可能。原因码23802.1X认证失败企业网络里最常见。看到原因码15别在终端上瞎折腾了直接去后端看密钥协商相关配置。看到原因码23就要把视野转向RADIUS服务器和账号体系。原因码是无线抓包里最有“指向性”的字段熟练解读它掉线问题的排查时间能缩短一半。4. 基于抓包的WLAN典型故障排查实战4.1 实战一终端反复报关联失败某办公室的一台笔记本能搜到SSID但一点连接就弹“无法连接到此网络”。空中抓包后发现Authentication响应正常Association Request发出后Association Response里返回了速率集不支持的状态码。查AP的固件已知问题发现是AP的固件对这批网卡驱动里的某个扩展速率集兼容不好升级AP固件后问题消失。整个过程从抓包到定位不到半小时如果只靠重启路由器这个概率型的故障可能永远复现不了。这个例子想说明的很简单状态码把模糊的“连不上”转化成了具体的“该看哪里”。以后在群里帮人分析无线问题第一句话别老问“密码输对了吗”而是可以问问“抓包看关联响应的状态码是多少”。很多社区里的无线问题靠的就是这一步定位。4.2 实战二DHCP断在哪一拍某店面终端能连上WiFi信号但浏览器一直打不开网页。第一轮空中抓包看到终端在反复发送DHCP Discover重传间隔从1秒开始逐步拉长但Offer一次都没回来。这说明终端和AP之间的无线链路是通的问题出在AP之后的有线侧。于是转去AP有线侧抓包看到AP确实把Discover转发出去了可回程的Offer在AP侧始终进不来。继续往交换机和网关注最终定位到接入交换机上的VLAN划分错误导致DHCP广播被隔离。这就是典型的“无线侧正常、有线侧异常”的抓包分工。只做空中抓包的人会一直卡在“Offer为什么没回来”这个问题上甚至误判成AP覆盖问题白白换掉一台AP。所以无线抓包从来不能只看一边空中和有线侧对一下“口供”才能把责任划定清楚。4.3 实战三频繁掉线的原因码线索一家连锁门店反馈晚上8点到10点WiFi集体掉线白天一切正常。空中抓包蹲守半小时发现AP在大量发送Deauthentication原因码清一色是15四步握手超时并且伴随大量数据帧重传和Beacon间隔抖动。进一步看Beacon时间戳发现这家门店的AP是用无线桥接方式做回程的晚间回传链路过载后管理帧优先级被压得很低终端在周期性重新协商密钥时迟迟等不到握手消息最终触发AP的踢人保护机制。这个案例的经典之处在于原因码15把“掉线”从用户体验翻译成了技术机制再顺着机制回查很快锁定了无线桥接回传带宽不足这个根因。如果没有抓包光靠“晚上人多带宽不够”这个表面判断很难意识到掉线其实是握手中断引起的而不是数据带宽不足引起的。4.4 实战四信号满格但速度只有几十兆所谓“满格信号”只能说明接收信号强度不差不能说明无线链路干净。判断无线链路质量最硬的指标其实是抓包看数据帧重传率。记忆里有一次用户反馈某个区域无线速率上不去终端协商速率显示400Mbps但实际下载只有几十兆。空中抓包后发现重传率飙到30%多数据帧在反复重传协商速率再高也没有意义。把抓包文件导入Wireshark统计重传集中在特定信道最后用频谱设备确认是附近某个无关设备持续占用了同频段。处理这类问题我会同时抓Beacon和空口数据帧。干扰不光影响数据帧也会让Beacon的发送时间间隔出现明显抖动这个信息在Wireshark的“专家信息”面板里会以警告形式直接标出来。信号强度只是表象重传率才是能直接量化链路健康度的依据。4.5 企业无线无法认证802.1X阶段抓什么企业WPA2-Enterprise网络抓包重点跟个人网络完全不同。空中抓包主要看EAPOL链路EAP Request/Response里的Identity是否正常EAP方法协商是否成功隐藏了具体认证协议最后是否看到EAP Success。一旦出现EAP Failure代表认证服务器在某个环节拒绝了认证请求具体原因要看AP到RADIUS服务器之间的有线抓包和服务器日志。四步握手阶段则涉及PMK的下发AP收到RADIUS下发的PMK后才会发起真正的四步握手。遇到企业网络大面积认证失败我一般先在AC侧确认RADIUS服务器状态再在空中抓包看EAP阶段是否完成。两个位置配合可以在几分钟内分辨出是证书过期、账号错误还是AP和RADIUS服务器之间的网络不通。这种双层定位思路靠单点抓包很难做到。把上面的实战经验再浓缩成一张表方便以后当速查手册用故障现象抓包特征高概率根因连接不上Probe Response无回应 / 认证状态码非0覆盖不足 / MAC过滤 / 加密不匹配连上但拿不到IPDHCP Discover反复重发无OfferAP后有线侧不通 / DHCP配置异常频繁断开Deauth原因码15或23四步握手超时 / 802.1X认证失败速度慢数据帧重传率高同邻频干扰 / 弱信号 / 老旧速率集企业网无法认证EAP Failure证书 / 账号 / RADIUS链路问题5. 抓包排障的几条个人心得5.1 抓包前先问自己“我要看哪一步”我现在带人排障第一步不是开Wireshark而是把问题翻译成流程阶段是扫描找不到SSID认证被拒绝关联失败四步握手起不来拿不到IP还是数据阶段卡顿先把问题定性到某一个阶段再决定抓包位置和过滤条件。这样做的好处是一次抓包往往就能出结论而不是像无头苍蝇一样抓一小时然后看着几百MB的文件不知道从哪看起。5.2 不要用手机测速软件完全替代抓包手机上那些测速App能告诉你“现在快不快”但不会告诉你“为什么”。快与慢之间到底差在哪一步只有把报文拉出来才能确认。我见过太多人拿测速结果当无线健康度的唯一依据结果换了好几台路由器都没解决最后抓包才发现是DHCP地址池快满了新终端根本拿不到地址。测速是结果指标抓包才是过程证据两者不是替代关系。5.3 学会用Wireshark的统计视角单看一个帧容易陷进去排障到一定阶段要切换视角。Wireshark的“统计→协议分级”“统计→会话”“统计→WLAN流量”这些功能可以帮你快速给整个抓包文件做体检。尤其是“专家信息”面板会自动把带重传、丢包、异常字段的包标成警告或错误相当于先给你一份自动化的重点清单但最终判定还是要回到报文本身别完全依赖颜色。抓包这件事入门不难难的是把802.11协议流程和工具配合起来形成肌肉记忆。这篇文章没有打算把协议栈从头到尾讲一遍而是希望你把“先定阶段、再定位置、最后看报文”这个习惯带进日常排障。下次再遇到无线怪问题不妨先问一句这一步的工作流程正常吗

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑