手机仍连着热点,上行链路却什么都传不过去。Pi 仍在报告 Wi-Fi 关联,接入点仍在发送 beacon,而每个请求都超时。一个无线电同时承担两个角色,当另一个角色需要信道时,其中一个会赢。在动 VPN 之前,先确认已安装的驱动和固件是否接受这种角色配对。

症状指向无线电,而不是隧道

按顺序观察故障,它就不再像路由缺陷。客户端加入热点、拿到地址并加载一两个页面。随后站点接口在漫游、重密钥或短暂信号下降后重新关联到上游路由器。接入点要么重启自己的 beacon,要么让客户端失去通路,VPN 日志则塞满从来不是原因的重连尝试。

两个接口名不等于两个无线电。wlan0与接入点接口共享同一设备、同一信道状态机和同一固件调度器。内核准确列出了该设备支持的接口角色与信道组合,所以去读那份清单,而不是因为两个接口都起来了就假设配对可用。

改任何东西之前先读组合

无线协议栈在 iw list 的接口组合一节里声明了它自己的约定。每个编号组合列出允许的角色数量、可以存在多少个接口,以及这些接口能同时占用多少个不同信道。列出站点与接入点共用一条信道的组合,才是这套部署需要的。

iw list | sed -n '/valid interface combinations/,/^$/p'

要读数字,而不只看有没有那些词。驱动可能分别支持站点模式和接入点模式,可两者唯一的合法组合只允许一条信道、很少的接口数,或热点无法满足的 beacon 间隔。有些固件在扫描或重密钥期间还会丢掉一个角色,看起来像上行链路抖动,而不是能力上限。如果没有任何组合同时列出两个角色,那就说明这种配对不受支持,无论桌面的热点按钮怎么提示。

cfg80211 接口组合文档 描述了这些字段与 beacon 约束。一个适配器的值说明不了另一个,所以把输出和机器放在一起,不要一概而论。

信道与地址规划决定其余部分

接入点必须落在这块无线电能服务的信道上,站点上行链路则必须跟随上游接入点。当这两个决定不一致时,必须有一个角色重启。在许多单无线电适配器上,热点因此镜像站点信道,而上游换信道会顺带把热点短暂拖下去。

把 IP 侧和无线电分开规划。路由式热点通常使用 192.168.50.0/24 这样的私有子网,Pi 位于 192.168.50.1,该子网内有 DHCP 池,Pi 充当解析器转发。NetworkManager 的共享模式会为这个子网设置 转发与地址转换,但它不增加无线电容量,也不让隧道成为唯一出口。在争论 VPN 策略之前,先写下客户端是在第二层桥接还是在第三层路由。

把无线电与路由分开的测试顺序

从设备往外走,在第一个失败的步骤停下。这些读取在运行中的系统上是安全的,不改变任何配置。请在客户端已关联、上行链路处于你正在排查的状态时运行它们。

iw dev
iw dev wlan0 link
nmcli -t -f DEVICE,STATE,CONNECTION device status
ip -br addr show
sysctl net.ipv4.ip_forward

iw dev wlan0 link 没有显示任何关联时,无线电问题在先,隧道无关紧要。如果上行链路已关联而客户端没有地址,说明接入与 DHCP 授权有误。如果客户端有地址但不可达,缺的是转发、转换或解析器投递。只有当热点通路和上行链路通路都能工作时,失败的隧道才成为下一个要测的东西。

把适配器、驱动和固件连同被接受的组合与信道规则一起记录下来。之后的固件或内核更新可能改变支持列表,而正是这条记录把谜团变成已知限制。

相关文章