Linux iwd 连 WPA3-SAE 反复掉线:SA Query timed out 降级 WPA2 解决

Arch Linux 使用 iwd 连接 WPA3-SAE 网络时频繁断连,日志显示 'SA Query timed out',根源在于光猫与 iwd 在 SAE 握手及强制 PMF(802.11w)协商中存在兼容性超时。解决方法是将路由器 5G 认证降级为 WPA/WPA2-PSK 混合模式,并清理 iwd 本地 SAE 配置残留。该方案规避了 SAE/PMF 实现差异,恢复连接稳定性。

现象:无线每隔几分钟就被踢一次

一台跑 Arch Linux 的笔记本,用 iwd 作为无线后端(不是 wpa_supplicant,也不是 NetworkManager),通过 Wi-Fi 把麦克风音频以 UDP 推到局域网另一台机器。表现是:信号很强、距离很近,却每隔几分钟就断一次,推流程序报 Network is unreachable 后被 systemd 自动拉起,一天下来自动重启了上千次。

最开始容易往几个方向想:

  • 信号差、距离远、隔墙太多
  • 无线网卡省电模式把链路关了
  • 被人用工具强制踢下线(伪造解除关联帧攻击)

逐个排除后发现都不是,真正的原因藏在加密协议协商里。

先看日志,别凭感觉猜

无线后端是 iwd,所有连接、协商、断开事件都进了 systemd 日志,直接实时跟踪:

sudo journalctl -u iwd -f

反复出现两类记录:

SA Query timed out, connection is invalid. Disconnecting
unprotected disconnect (reason=3 DEAUTH_LEAVING)

其中 SA Query timed out 是关键线索。它不是信号问题,也不是省电,而是无线协商阶段的一个"安全查询"在规定时间内没等到回应,iwd 判定这条连接无效,主动断开。

这条线索指向 WPA3-SAE

SA Query 和 SAE 是绑定在一起的。SAE(同时对等认证)是 WPA3 的握手方式,替代 WPA2 的 PSK 四次握手。WPA3 默认还强制开启 PMF(802.11w,受保护管理帧),用来防止伪造的解除关联帧把设备踢下去。

问题就出在这台家用光猫和 iwd 之间的 WPA3 兼容协商上:

  • 光猫 5G 频段认证方式是 WPA3-SAE,加密 AES
  • iwd 在和光猫做 SAE / PMF 交互时,偶发 SA Query 超时
  • 超时后 iwd 主动断开,随即自动重连,于是形成"连上—几分钟—被踢—重连"的循环

可以用下面这句统计当天这类报错的规模,确认是不是高频反复:

sudo journalctl -u iwd --no-pager | grep -c "SA Query timed out"

数字如果是几百上千,且时间均匀分布,基本就是这个问题,而不是偶发掉线。

PMF 是什么,跟这次有没有关系

PMF(Protected Management Frames,受保护管理帧,标准号 802.11w)本意是安全功能:给解除关联、解除认证这类管理帧加上密码学保护,防止第三方伪造帧把别人从网上踢下去、再跑包破解。它是防守锁,不是攻击手段。

这次不是有人攻击,而是光猫在 WPA3-SAE 下强制 PMF,与本机 iwd 的协商实现存在兼容超时。很多家用光猫的后台并不单独暴露 PMF 开关,5G 的基本配置和高级配置里只有信道、带宽、功率、WMM 这些,找不到独立的"管理帧保护 / 802.11w"选项,所以没法单独把 PMF 关掉。

解决:把 5G 从 WPA3-SAE 降到 WPA/WPA2-PSK

既然根因是 SAE/PMF 协商,最直接的办法就是绕开 SAE:在光猫后台把该 SSID 的认证方式从 WPA3-SAE 改成 WPA/WPA2-PSK,加密算法保持 AES。

  • WPA/WPA2-PSK 是混合模式,走传统 PSK,不带 SAE,也不强制 PMF,新旧设备都能连,容错最好
  • 不要选 WPA3-SAE Transition,它是过渡模式,里面仍然带 SAE,问题可能还在
  • 也可以直接选纯 WPA2-PSK,但混合模式更保险

改完之后,连这个 Wi-Fi 的设备都要重新输一次密码。安全性从 WPA3 降到 WPA2,家用自用足够,换来的是稳定不掉线。

顺手清理本机 iwd 的 SAE 残留

只改路由还不够,iwd 本地保存的配置里会残留上次 WPA3 生成的 SAE 材料。配置文件在:

/var/lib/iwd/<你的SSID>.psk

里面可能有两行 SAE 专用的密钥派生记录:

SAE-PT-Group19=...
SAE-PT-Group20=...

把这两行删掉,只保留密码段,IP 地址交给 networkd 管理即可:

[Security]
Passphrase=你的Wi-Fi密码

改完重启无线后端让它重新按 PSK 关联:

sudo systemctl restart iwd

重启后用 networkctl status wlan0(把 wlan0 换成自己的无线接口名)确认:

  • State 是 routable / configured
  • Wi-Fi access point 显示目标 SSID
  • 拿到了正确的 IPv4 地址

再统计一次改完之后的 SA Query timed out 数量,应该归零,推流服务也不再刷 Network is unreachable。

备选方案

如果不方便改路由认证,还有两条路:

  • 让这台设备改连 2.4G 的 SSID。多数家用光猫的 2.4G 默认就是 WPA/WPA2-PSK,没有 SAE 问题,推单声道语音带宽绰绰有余,代价只是网速变慢,对录音零影响
  • 在本机无线后端侧微调 SAE/PMF 参数缓解,但属于兼容问题,效果不保证,不如直接绕开 SAE 来得干净

排障小结

遇到 Linux 无线反复掉线,先别默认是信号或省电:

  • 抓 journalctl -u iwd(或 wpa_supplicant 对应日志)看断开原因
  • 看到 SA Query timed out 这类字样,往 WPA3-SAE / PMF 兼容方向查
  • 光猫找不到独立 PMF 开关时,直接把认证降到 WPA/WPA2-PSK 绕开 SAE
  • 路由改完,记得清理本机保存的 SAE 残留再重启无线后端

稳定的家庭内网,比追最新加密协议更重要。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值