1719 字
5 分钟

AP:AR9271 退休了

2026-09-07

宿舍为什么要开热点#

宿舍的校园网一个账号基本只能一台设备在线,想kdeconnect,localsend等等的局域网协作就难受至极,我总不能用frp或者有线慢慢传吧,反正我懒-所以.

手机、笔记本、台式机都想上网,只能让常年开机的台式机当网关,开个热点把网分出去就是个局域内网(反正平时用网也不大,而且我有协作的需求)

前提是热点不能碰台式机自己那条 WiFi,断了就全没外部访问了

第一张卡是 AR9271#

最早想偷懒,让主网卡 AX210 自己叠个虚拟 AP

iwlwifi 固件不给面子:接口建得起来,一 up 就 EBUSY,hostapd 能 open 但 beacon 发不出去,5G 还被 country 00 标了 NO-IR

用 NetworkManager 切热点模式更吓人,整个卡从现有 WiFi 切走,切回来失败跟网卡死了一样,2026-09-02 那次直接把我搞到重启

算了,双网卡:AX210 负责上网,USB 卡专职开热点
第一张是 AR9271(0cf3:9271),ath9k_htc 内核原生驱动,插上就能跑,2.4G only

坑一:手机一直转圈没 IP#

热点起来了,手机连上却一直转圈拿不到 IP

tcpdump 明明能抓到手机发的 DHCP 广播,dnsmasq 日志却干干净净,包到网卡就没了

查到最后是本机 1Panel 防火墙默认 udp 全 drop,把 DHCP 的 67/68 拦在 INPUT

iptables没开放是之前发现不了主机的牢问题(当时我还思索着系统没装防火墙怎么会连不上啊,结果是把它漏了)

放行 DHCP 以为完事了,手机能拿 IP 了,网页还是打不开

这回是 DNS 53 也被同一条规则拦,Windows 笔记本疯狂发 dns.msftncsi.com 探测,特征一眼就能认

老设备走 established 连接没事,新设备新连接全挂,这种有的好有的坏的状况最容易带偏排查方向

UDP 53 放行之后才算真能上网

坑二:速度天花板#

AR9271 只有 2.4G,纯 g 模式协商 54Mbps,实际 20-25M 开 802.11n HT20 后协商 72Mbps,实测 40-50M,翻倍了但也就到头了

想开 40MHz?ath9k_htc 固件直接说不:HT40+ 上扩 ch12/13 被 EEPROM 禁,HT40- 不报错但悄悄回退 20MHz

用久了还有一堆破事#

AR9271 插上第一天就差点翻车:NetworkManager 手快,先拿这张卡去连保存过的 WiFi 了,热点没开成卡先跑了 根治办法是按网卡的永久 MAC 写 unmanaged 配置,让 NetworkManager 别碰这张卡,它只管开热点

hostapd 偶尔也会自己挂,网卡抽风就断网 写了个 watchdog 常驻看着它,hostapd 死了自动 rebuild 拉起来,桌面还会弹通知,文案是AI写的,一股味

顺手还加了点功能:iptables 按设备 MAC 计数,每台设备每天跑了多少流量都有账,谁偷跑流量一目了然 笔记本给了固定 IP,方便我远程连它

emm,想换卡#

2026-09-06 拿热点下点更新,流量打满 40-50Mbps 一阵子,手机啪地断了(8Mbps=1MB/s应该没问题) 先怀疑过热,查内核莫有错误,卡还没有降频机制,全排除

结论是 HT20 的 72Mbps 就是物理上限,流量一打满固件忙到 beacon 都发不出,手机以为 AP 没了自己断开 重启 hostapd 能救回来,但一下大流量又断,这卡只能干点轻活

新卡 MT7921U#

选卡原则:查了下,驱动要内核主线自带,Realtek 那种要 dkms 编译的直接滚,之前折腾MT7902 的补丁地狱真受够了 所以就买了个:MediaTek MT7921U,USB WiFi6 双频 2x2,mt76 家族,mt7921u 主线驱动

插上 lsusb 就认:

Bus 007 Device 003: ID 0e8d:7961 MediaTek Inc. Wireless_Device

dmesg 里驱动固件自己加载完,Build Time 20260224

mt7921u 7-1:1.0: HW/SW Version: 0x8a108a10, Build Time: 20260224110909a
mt7921u 7-1:1.0: WM Firmware Version: ____010000, Build Time: 20260224110949
mt7921u 7-1:1.0 wlp13s0u1: renamed from wlan0

接口名还叫 wlp13s0u1,跟 AR9271 一样,udev 按 PCI 位置加 USB 口命名,我插的是同一个口罢了(3.2的口诶)

80MHz 还折腾了一下#

5G 配置:hw_mode=a,信道 36(ch149 有个 -46dBm 的强邻居,36-48 段最清净),country_code=CN

第一次启动完看 iw,只有 40MHz:

channel 40 (5200 MHz), width: 40 MHz, center1: 5190 MHz

hostapd 里明明写了 vht_oper_chwidth=1 和中心信道 42,hostapd_cli 一查就露馅:

vht_oper_chwidth=1
vht_oper_centr_freq_seg0_idx=42
he_oper_chwidth=0

vht 那套只管 ac 老设备,开了 ieee80211ax=1 之后实际带宽由 HE Operation 说了算,he_oper_chwidth 默认 0 就是 20/40MHz

补上:

he_oper_chwidth=1
he_oper_centr_freq_seg0_idx=42

重启,这次对了:

channel 40 (5200 MHz), width: 80 MHz, center1: 5210 MHz

center1 5210 是 36-48 块中心,primary 被驱动选成 40

country_code=CN 也不是白设的,非 self-managed 的 phy 才吃这套(AX210 那种设了没用),txpower 从 20dBm 涨到 23dBm,发射功率多点

顺手测测#

换完正好三台设备在线,station dump 看得清清楚楚:

  • 笔记本 ac 2x2,协商 780Mbps
  • 一台 ax 2x2 HE-MCS11,协商 1200.9Mbps
  • 还有台正在下 70 多 MB 的东西

三台并发,tx retries 和 tx failed 全是 0,下载那台信号 -44dBm 稳得很 同样的大流量场景,AR9271 早把手机断了,MT7921U还行 链路协商 1.2Gbps,校园网出口那点带宽根本喂不饱它,利用率顶不上去,也就没有 beacon 饿死这回事了(瓶颈卡入口了)

顺手把插卡自启也装了:udev 匹配 USB ID,插卡自动起 hostapd 加 watchdog,拔卡自动停

为什么用 udev 而不是 systemctl enable?开机没插卡的话 service 会空转失败,udev 等卡真的出现才触发,拔卡还能顺手停,安静得很

顺便说一句,这卡驱动声明支持 monitor 模式,但跟 AP 不在同一个接口组合里,想抓包得先把热点停了 AR9271 拔下来吃灰不亏,哪天想玩渗透还能插回去

对比#

AR9271(退役)MT7921U(现役)
驱动ath9k_htc(内核原生)mt7921u(内核原生)
频段2.4G-only2.4G + 5G
频宽HT20,72Mbps 封顶5G 80MHz 802.11ax
协商速率72Mbps1200.9Mbps(ax 2x2)
大流量打满 40-50M 就断下载零重传
USB2.03.2 SuperSpeed
功率20dBm23dBm(country CN)

折腾下来就一句话:热点下载不再断线,值 AR9271 已经拔下来吃灰了,哪天想玩的话再插回来,三卡应该没问题的吧


系统信息:

  • 系统:Arch Linux
  • 内核:Linux 7.2.2-zen1-1-zen
  • CPU:AMD Ryzen 7 9700X
  • 内存:32 GB DDR5
  • 主网卡:Intel AX210(连校园网,出口)
  • 热点网卡:MediaTek MT7921U(5G ch36, 80MHz, 802.11ax)
  • 热点栈:hostapd + dnsmasq + watchdog(udev 插卡即启)
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

AP:AR9271 退休了
https://text.lilystar.cn/posts/mt7921u-goooood/
作者
Lily
发布于
2026-09-07
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录

0:00 0:00