红米 AC2100 刷 OpenWrt 实战全记录:从原厂到实现 Mesh 组网与 Wi-Fi 无感切换漫游,附完整踩坑、配置与答疑
从原厂 2.0.23 刷入 OpenWrt,到两台 AC2100 组成有线回程多 AP 漫游网络,这里把步骤、概念和踩坑一次讲清楚
前言
这篇文章记录的是我把两台 Redmi AC2100 刷成 OpenWrt,再把它们配置成有线回程多 AP 漫游网络的完整过程。
我会把下面这些内容全部写清楚:
- 为什么要刷 OpenWrt
- Windows 下从原厂刷入 OpenWrt 的完整步骤
- 刷机过程中遇到的报错和解决方法
- 为什么有些教程先刷 Breed
- Mac 和 Windows 能不能刷
- 必须用网线吗
- 什么是 AP、NAT、双重 NAT、Mesh、802.11k/v/r、usteer
- 两台 AC2100 如何配置成有线回程漫游网络
- 哪些问题是“配置错了”,哪些问题其实是“概念搞混了”
如果你和我一样,一开始对这些词一头雾水,这篇文章应该能帮你少走很多弯路。
一、我的目标是什么
我最初的目标其实很简单:
- 把
Redmi AC2100从原厂系统刷成OpenWrt - 后续把两台路由器做成覆盖更好的家庭 Wi-Fi
- 让手机在家里走动时,Wi-Fi 切换尽量自然一点
最开始我并不是为了“折腾而折腾”,而是因为原厂同名 Wi-Fi 的漫游效果不太理想,所以才想试试 OpenWrt。
后来真正搞懂之后,我发现这件事其实可以拆成两层:
- 第一层:把路由器刷进 OpenWrt
- 第二层:把两台路由器组成一个更合理的家庭网络
如果这两层混在一起看,就很容易乱。
二、为什么是红米 AC2100
这台设备的优点是:
- 价格便宜
- 社区资料多
- OpenWrt 有正式支持
- 对家庭场景来说性能够用
- 做 AP、做多点覆盖都很有性价比
但一定要先确认型号:
- 我这里说的是
Redmi AC2100 / RM2100 - 不要和
小米 AC2100 / R2100混淆
刷机时镜像下错型号,后面所有步骤都会出问题。
三、为什么很多人会先问:要不要先刷 Breed
我一开始也有这个疑问。
1. Breed 是什么
Breed 不是 OpenWrt,本质上是一个第三方 bootloader。
有些教程推荐先刷 Breed,是因为它后面刷固件、救砖、恢复原厂会更方便。
2. 为什么又不建议新手先刷
因为刷 Breed 改的是 bootloader,风险比刷普通固件更高。
普通刷机失败,通常还有机会恢复;
bootloader 真写坏了,恢复难度就会上一个台阶。
3. 我的结论
如果你只是想:
- 稳稳地刷进 OpenWrt
- 后续正常用
- 暂时不折腾各种恢复和多固件切换
那一开始没必要先刷 Breed。
对红米 AC2100 来说,按照官方推荐的思路:
- 原厂降到可利用版本
- 开 SSH
- 写入
kernel1和rootfs0
就已经够了。
四、刷机前我最先问的几个问题
1. Mac 能不能刷
可以。
Mac 自带:
sshscp- 浏览器
理论上很适合刷。
但我最后是用 Windows 操作的,因为当时更方便接网线和做后续调试。
2. Windows 的 PowerShell 是什么,要不要下载
不用下载。
PowerShell 是 Windows 自带的命令行环境,类似:
- 更现代一点的
cmd - 或者 Windows 版的终端命令窗口
这次刷机主要就是用它执行:
sshscp- 后面的远程命令
3. 必须接有线网线吗
基本要。
原因很简单:
- 开 SSH 要稳定
- 上传镜像要稳定
mtd write这种关键步骤不能靠 Wi-Fi 碰运气
所以这类路由器刷机,正确思路是:
- 电脑接路由器
LAN口 - 不走 Wi-Fi
如果你用的是 MacBook,没有网口,那就准备一个 USB-C 转 RJ45。
五、我实际使用的刷机路径
我最后走的是这条路:
原厂 2.0.23 -> Web Exploit 开 SSH -> 上传 kernel1/rootfs0 -> mtd 写入 -> 重启进 OpenWrt
这条路线的优点是:
- 风险比先刷 Breed 小
- 步骤相对清晰
- 官方和社区资料都比较多
六、刷机前的准备
1. 固件版本
我刷的时候,原厂版本是:
2.0.23
这个很关键,因为后面的 SSH 开启方式和这个版本有关。
2. OpenWrt 文件
第一次从原厂刷,只需要这两个文件:
openwrt-25.12.2-ramips-mt7621-xiaomi_redmi-router-ac2100-squashfs-kernel1.binopenwrt-25.12.2-ramips-mt7621-xiaomi_redmi-router-ac2100-squashfs-rootfs0.bin
我当时补全成了下面这组地址,后面如果只是从原厂首次刷入,前两个就够了:
kernel1.binhttps://downloads.openwrt.org/releases/25.12.2/targets/ramips/mt7621/openwrt-25.12.2-ramips-mt7621-xiaomi_redmi-router-ac2100-squashfs-kernel1.binrootfs0.binhttps://downloads.openwrt.org/releases/25.12.2/targets/ramips/mt7621/openwrt-25.12.2-ramips-mt7621-xiaomi_redmi-router-ac2100-squashfs-rootfs0.binsysupgrade.binhttps://downloads.openwrt.org/releases/25.12.2/targets/ramips/mt7621/openwrt-25.12.2-ramips-mt7621-xiaomi_redmi-router-ac2100-squashfs-sysupgrade.bin
注意:
- 第一次从原厂刷,
不用sysupgrade.bin sysupgrade.bin是以后在 OpenWrt 里升级用的
如果想自己找目录,也可以直接打开官方目录:
https://downloads.openwrt.org/releases/25.12.2/targets/ramips/mt7621/
另外,小米原厂固件的官方入口是:
https://www.miwifi.com/miwifi_download.html
我这里刷机时用的是 2.0.23。OpenWrt 官方 Redmi AC2100 设备页也明确写了:
Web Exploit方法要求原厂是2.0.23- 这个方法也兼容
2.0.503
如果你的机器本身已经是 2.0.23,通常就不用再额外下载原厂固件了。
3. 硬件准备
- Windows 电脑
- 一根网线
- 路由器通电
- 电脑连接路由器
LAN口
七、Windows 下从原厂刷入 OpenWrt 的完整过程
下面这部分,是我实际可走通的一整套步骤。
第一步:登录原厂后台
浏览器打开:
http://192.168.31.1
完成初始化,设置原厂管理员密码。
第二步:获取 stok
登录后台后,浏览器地址栏里会有类似:
http://192.168.31.1/cgi-bin/luci/;stok=xxxxxxxxxxxx/web/home#router
这个 stok 后面要用。
第三步:开启 SSH
先准备一个 SSH 密码,建议:
- 8 位以上
- 先别用特殊字符
然后在浏览器地址栏访问用于开启 SSH 的链接,并设置 root 密码。
这一步完成后,路由器就会开放 22 端口。
第四步:SSH 登录测试
在 Windows Terminal / PowerShell 里执行:
ssh root@192.168.31.1
我这里第一次遇到的不是密码错,而是算法问题。
报错是:
Unable to negotiate with 192.168.31.1 port 22: no matching host key type found. Their offer: ssh-rsa
这说明:
- 路由器 SSH 实际上已经开成功了
- 只是 Windows 自带的新版 OpenSSH 默认不接受它提供的旧
ssh-rsa
解决命令:
ssh -o HostKeyAlgorithms=+ssh-rsa root@192.168.31.1
第五步:执行保护性命令
我后来把所有“必须先登录 SSH 再手敲”的步骤,都改成了本地直接远程执行,因为 Windows 旧控制台里 SSH 登录后经常不好粘贴。
推荐直接在本地终端执行:
ssh -o HostKeyAlgorithms=+ssh-rsa root@192.168.31.1 "nvram set uart_en=1 && nvram set boot_wait=on && nvram set bootdelay=5 && nvram set flag_try_sys1_failed=1 && nvram commit"
这一组命令的作用主要是:
- 打开 UART
- 开启 boot_wait
- 给后面恢复和排错留一点余地
第六步:上传固件
把两个文件传到路由器 /tmp:
scp -O -o HostKeyAlgorithms=+ssh-rsa .\openwrt-25.12.2-ramips-mt7621-xiaomi_redmi-router-ac2100-squashfs-kernel1.bin root@192.168.31.1:/tmp
scp -O -o HostKeyAlgorithms=+ssh-rsa .\openwrt-25.12.2-ramips-mt7621-xiaomi_redmi-router-ac2100-squashfs-rootfs0.bin root@192.168.31.1:/tmp
确认文件存在:
ssh -o HostKeyAlgorithms=+ssh-rsa root@192.168.31.1 "cd /tmp && ls"
第七步:正式刷写
因为文件名太长,手输容易出错,所以后来我总结出两种方式:
方式 A:先改短文件名
在 SSH 中改成:
kernel1.binrootfs0.bin
再刷:
mtd write kernel1.bin kernel1
mtd -r write rootfs0.bin rootfs0
方式 B:直接在本地终端远程执行长命令
我最后更推荐这种:
ssh -o HostKeyAlgorithms=+ssh-rsa root@192.168.31.1 "cd /tmp && mtd write openwrt-25.12.2-ramips-mt7621-xiaomi_redmi-router-ac2100-squashfs-kernel1.bin kernel1"
ssh -o HostKeyAlgorithms=+ssh-rsa root@192.168.31.1 "cd /tmp && mtd -r write openwrt-25.12.2-ramips-mt7621-xiaomi_redmi-router-ac2100-squashfs-rootfs0.bin rootfs0"
注意:
- 第一条刷
kernel1 - 第二条刷
rootfs0 - 第二条命令带
-r,会自动重启 - 这一步开始不要断电
第八步:进入 OpenWrt
刷完后等待几分钟,然后访问:
http://192.168.1.1
第一次进入 OpenWrt 时,我问过“默认密码是什么”,实际情况是:
- 很多 OpenWrt 首次进入时是
空密码 - 有时会直接提示你设置密码
- 如果弹登录框,常见是:
- 用户名:
root - 密码:留空
- 用户名:
第九步:第一次进入 OpenWrt 时我看到的两个提示
刷完第一次进后台时,我还遇到过两个很容易让人误会的弹窗。
1. 是否在线检查固件更新
OpenWrt 会弹出一个提示,大意是:
- 要不要去下载站点检查有没有新固件
- 以后每次打开状态页时都可以检查
这不是报错,也不是刷机失败,只是一个设置确认。
我当时的选择是:
No, disable checking
原因很简单:
- 刚刷完最重要的是先确认系统正常
- 这个功能只是“检查是否有新版本”
- 不是必须功能
2. Configuration / Changes 弹窗
如果你在上一个弹窗里点了关闭检查更新,OpenWrt 会再弹一次配置变更确认。
看到类似:
uci set attendedsysupgrade.client.login_check_for_upgrades='0'
意思其实就是:
关闭登录后自动检查固件更新
这时直接点:
Save & Apply
就行。
这同样不是错误,只是保存配置。
八、刷机过程中我遇到的实际问题
这一部分是我认为最有价值的,因为大部分时间不是花在“官方步骤”上,而是花在这些坑上。
1. SSH 登录报 no matching host key type found
报错:
Unable to negotiate with 192.168.31.1 port 22: no matching host key type found. Their offer: ssh-rsa
原因:
- 路由器只提供旧的
ssh-rsa - Windows OpenSSH 默认不接受
解决:
ssh -o HostKeyAlgorithms=+ssh-rsa root@192.168.31.1
上传文件时也要这样写:
scp -O -o HostKeyAlgorithms=+ssh-rsa ...
2. SSH 登录后无法粘贴命令
这在 Windows 旧 PowerShell 控制台里很常见。
我试过:
Ctrl + V- 右键粘贴
Shift + Insert
都有不稳定的时候。
后来最有效的办法是:
不要先进 SSH 黑框里粘贴,而是在本地终端直接执行远程命令。
也就是这种形式:
ssh root@192.168.1.2 "uci show wireless"
这种写法后来几乎贯穿了我的整个配置过程。
3. 第二台路由器 SSH 提示 REMOTE HOST IDENTIFICATION HAS CHANGED
这是因为:
- 第一台和第二台在刷机前都用默认地址
192.168.31.1 - Windows 把第一台的 SSH 指纹记到了
known_hosts - 现在第二台也用了同一个 IP,但指纹不同
报错看起来很吓人,但对刷第二台来说通常是正常现象。
解决:
ssh-keygen -R 192.168.31.1
然后再重新连接。
4. 网线插上后提示 Media disconnected
这个问题我也遇到了。
它不是 IP 配置问题,而是:
Windows 根本没检测到有线链路。
最后我的原因很简单:
- 某个
LAN口不工作或者接触不好
解决方法是:
- 换一个
LAN口
换口之后立刻就好了。
5. 刷完 OpenWrt 后能进 192.168.1.1,但有线访问不通
我后面又遇到一个很绕的问题:
- 无线能访问
192.168.1.1 - 有线却不能访问
192.168.1.1
这通常说明:
- 主路由本身是活的
- 电脑有线网卡配置有问题
最常见原因是:
- 刷机时给 Windows 有线网卡设过静态 IP
- 后来忘了改回自动获取
如果有这种情况,重点检查:
- 以太网 IPv4 是否设成 DHCP
- 有没有残留
192.168.31.x - 有没有和
192.168.1.2 / 192.168.1.3冲突
6. 在 OpenWrt 里执行命令时误把 findstr 丢进路由器
我还遇到过一个典型的“Windows 思维”问题。
比如我在 Windows 本地是想筛选输出,结果写成:
ssh root@192.168.1.3 "uci show wireless | findstr ..."
OpenWrt 里没有 findstr,所以会报:
ash: findstr: not found
这时候要改成 Linux 风格命令:
grep
也就是:
ssh root@192.168.1.3 "uci show wireless | grep -E '...'"
九、刷完 OpenWrt 后我问过的几个关键问题
下面这些问题,是我在真正开始配置网络后一点点搞明白的。
1. AP 是什么
AP 是 Access Point,中文就是无线接入点。
可以简单理解成:
-
主路由负责:
- 拨号
- DHCP
- NAT
- 防火墙
-
AP 负责:
- 发 Wi-Fi
- 把无线设备桥接到现有网络
也就是说,AP 更像“负责覆盖”,不是“负责上网控制”。
2. NAT 是什么,双重 NAT 是什么
NAT 本质上是把家里多个私网设备,通过一个公网 IP 出去上网。
如果数据经过两层路由器、做了两次地址转换,那就是双重 NAT。
例如:
光猫(做路由) -> OpenWrt(又做路由) -> 终端设备
这会带来:
- 端口映射更复杂
- 远程访问更麻烦
- 某些游戏或服务更容易出问题
所以如果只是做家庭多点覆盖,通常更推荐:
- 只保留一个主路由
- 其他设备都做 AP
3. 光猫做主路由行不行
可以,而且对大多数家庭来说,不是什么问题。
如果你的诉求只是:
- 家里多人正常上网
- 两台 OpenWrt 做 AP 覆盖
- 减少双重 NAT
那完全可以:
- 光猫继续拨号、DHCP、NAT
- 两台 AC2100 都做 AP
真正不够用,通常是当你开始需要:
- 更高级的 QoS/SQM
- VPN
- 广告过滤
- 复杂端口转发
- 更强的路由控制
这时才值得考虑让 OpenWrt 设备做主路由。
4. 现在的网络是不是有线回程 Mesh
严格说,不是传统意义上的 802.11s Mesh。
更准确的说法是:
有线回程多 AP 漫游网络
也就是:
- 路由器之间用网线互联
- 终端在多个 AP 之间漫游
从效果上讲,这种方案往往比无线 Mesh 还更稳。
5. 企业 AP 是不是也是靠 K/V/R
是,但不只是靠这个。
企业 AP 的漫游通常是:
802.11k802.11v802.11r- 控制器协同
- 射频调优
- 负载均衡
- 厂商自己的算法
所以我们家庭里用 OpenWrt 做 K/V/R + usteer,是在尽量接近企业 AP 的思路,但不能简单理解成“一模一样”。
6. usteer 是不是必须
不是必须,但很值得加。
如果只有两台 AP、而且你已经正确做到了:
- 有线回程
- AP 模式
- 同 SSID
- 同密码
- 同加密
- K/V/R 都开
那即使不装 usteer,也已经会比“只是同名 Wi-Fi”好很多。
但如果你想进一步改善:
- 客户端黏在远处 AP
- 2.4G / 5G 选择不合理
- 多 AP 协作不够聪明
那 usteer 很有价值。
更准确地说:
K/V/R是标准能力usteer是 OpenWrt 里的漫游辅助协调工具
所以我最后的结论是:
不是非装不可- 但如果你都已经刷到
wpad-mbedtls了,装上通常更完整
7. 只有 802.11r 够不够
通常不够。
这是我后来最重要的理解之一。
802.11r 只负责:
客户端已经决定切换之后,怎么让认证更快。
它不负责:
- 什么时候切
- 切到谁
而家庭漫游体验最常见的问题恰恰是:
- 设备黏在弱信号 AP 上不肯走
- 设备不知道附近还有更合适的 AP
所以在家用场景里,很多时候:
K/V决定“要不要切”R决定“切的时候快不快”
这也是为什么我最后选择的是:
K/V/R + usteer
而不是只开 R。
8. 家用路由器改 AP 和专用 AP 有什么区别
我后面还专门弄明白了这个问题。
很多人会以为:
- AP 是更专业的设备
- 所以一定更便宜
其实不一定。
家用路由器改 AP 的特点是:
- 性价比高
- 家庭里很够用
- 手上已有设备时最省钱
- OpenWrt 可玩性强
专用 AP 的特点是:
- 设计目标更偏“只负责无线覆盖”
- 常见于企业、商铺、吸顶部署、PoE 供电
- 更重视并发、管理、统一部署
但专用 AP 并不一定比路由器便宜。
对普通家庭来说,如果手里已经有两台能刷 OpenWrt 的路由器,拿来做 AP 通常是很划算的方案。
十、这些概念到底是什么意思:无缝漫游、有线 Mesh、无线 Mesh、AP、K/V/R、NAT
如果你和我一样,前期最容易被这些词绕晕,那这一节就是专门用来“先把词讲明白”的。
1. 无缝漫游是什么
无缝漫游 不是某一个单独协议,它更像是一种体验目标。
它指的是:
- 手机、平板、电脑在多个 AP 之间移动时
- 能自动切换到更合适的 AP
- 尽量不断网,或者只轻微顿一下
需要特别注意的是:
无缝漫游不是“绝对 0 卡顿”。
家庭场景里更现实的目标是:
- 不长时间黏在远处 AP
- 切换时不明显卡住
- 刷视频、直播时只轻微抖一下
2. 有线 Mesh 是什么
很多厂商会把“多个节点用网线互联”的方案也叫 有线 Mesh。
从用户体验角度,这种说法没问题。
但从 OpenWrt 和技术实现角度,更准确的说法通常是:
有线回程多 AP 漫游
也就是:
- 路由器之间靠网线互联
- 终端在多个 AP 之间漫游
它的优点:
- 更稳
- 回程带宽损失小
- 延迟更低
- 更适合家庭长期使用
它的缺点:
- 需要布网线
- 布线位置不合理时,优势发挥不出来
3. 无线 Mesh 是什么
严格说,大家常说的 无线 Mesh 更接近:
- 厂商自家的节点组网协议
- 或 OpenWrt 里的
802.11s
也就是:
- 路由器和路由器之间通过无线互联
- 不需要在节点之间拉网线
它的优点:
- 施工简单
- 对不能布线的家庭更友好
它的缺点:
- 回程链路会受墙体、干扰、距离影响
- 稳定性通常不如有线回程
- 带宽和延迟一般也不如有线回程
4. 现在我这套到底算什么
我最后这套更准确的名字应该是:
有线回程多 AP 漫游网络
而不是严格意义上的:
802.11s 无线 Mesh
从效果上说,这种方案通常比无线 Mesh 更适合家庭。
5. AP 是什么
AP 是 Access Point,中文就是无线接入点。
你可以把它理解成:
- 主路由负责上网控制
- AP 负责发 Wi-Fi 和扩大覆盖
主路由通常负责:
- 拨号
- DHCP
- NAT
- 防火墙
AP 通常负责:
- 发无线网络
- 桥接终端到主网络
6. NAT 是什么
NAT 可以简单理解成:
把家里多台私有 IP 设备,通过一个公网 IP 去上网。
比如:
- 手机是
192.168.1.10 - 电脑是
192.168.1.20 - 平板是
192.168.1.30
它们通过主路由转换成公网地址访问互联网,这个过程就是 NAT。
7. 双重 NAT 是什么
双重 NAT 就是地址转换做了两次。
例如:
光猫(做路由) -> OpenWrt 路由器(又做路由) -> 手机/电脑
这时:
- 光猫做一次 NAT
- OpenWrt 又做一次 NAT
它的缺点主要是:
- 端口映射更麻烦
- 某些游戏和远程访问更容易出问题
- 排错更复杂
所以家庭多 AP 覆盖时,通常更推荐:
- 保留一个主路由
- 其他设备都当 AP
8. 802.11s 是什么
802.11s 是 OpenWrt 里典型的无线 Mesh标准。
它的作用不是让手机直接连,而是让:
- 路由器和路由器之间用无线互联
如果你真用 802.11s,通常每台路由器还得额外再开一个普通 AP,给手机和电脑上网。
所以:
802.11s是节点之间的无线回程- 不是普通的“家里手机连的 Wi-Fi 模式”
9. 802.11k / 802.11v / 802.11r 分别是什么
这三个协议最容易混在一起。
可以用一句话分别记:
802.11k给客户端一张“附近 AP 地图”802.11v给客户端一个“切换建议”802.11r让客户端在决定切换后,认证更快
它们分别负责的阶段不一样:
K负责发现候选 APV负责辅助决策R负责加快切换认证
10. 为什么很多人说 K/V 比 R 更重要
因为家庭里最常见的问题不是“认证太慢”,而是:
- 设备黏在弱信号 AP 上
- 设备不愿意切
- 设备不知道该切到谁
这时候:
K和V更关键R更像锦上添花
所以如果你问:
只有 R 行不行?
通常答案是:
不太够。
11. usteer 是什么
usteer 是 OpenWrt 的多 AP 漫游辅助和频段引导工具。
你可以把它理解成:
K/V/R是标准能力usteer是把这些能力更好组织起来的协调员
它会帮助多个 AP 之间互相知道:
- 哪些客户端在连谁
- 另一台 AP 的情况
- 哪个 AP 更值得引导客户端过去
12. flow offloading 是什么
flow offloading 是 OpenWrt 里的转发加速能力。
简单理解:
无不开加速软件流量卸载软件方式加速硬件流量卸载硬件方式加速
家用里更稳的做法通常是:
- 先试
软件流量卸载 - 不要一上来就直接开
硬件流量卸载
13. Breed 是什么
Breed 不是 OpenWrt 固件本体,而是一个第三方 bootloader。
它的优点是:
- 后续刷机和恢复更方便
它的缺点是:
- 刷它本身风险比刷普通固件更高
所以对第一次刷红米 AC2100 的人来说,我更建议:
- 先按官方稳妥路线刷进 OpenWrt
- 后面真有需要再研究 Breed
14. 这些方案怎么选
如果你只看家庭场景,可以这样快速选:
想最稳选:有线回程多 AP 漫游不能布线选:无线 Mesh / 802.11s / 厂商 Mesh只想先把 OpenWrt 装上选:先别折腾 Breed只想减少网络层复杂度选:一个主路由 + 其他全做 AP
一句话总结:
无线 Mesh解决“没法拉线”有线回程多 AP 漫游解决“既要稳定又要体验”K/V/R + usteer解决“多个 AP 怎么更聪明地协作”
十一、术语对照表:一眼看懂这些词
为了方便快速查阅,我把这篇文章里最容易混淆的词做成一个简表。
| 名词 | 简单解释 | 更接近解决什么问题 |
|---|---|---|
| AP | 负责发 Wi-Fi 的接入点 | 扩大无线覆盖 |
| 主路由 | 负责拨号、DHCP、NAT、防火墙 | 负责上网控制 |
| NAT | 私网设备通过公网 IP 上网的地址转换 | 多设备共享公网 |
| 双重 NAT | 地址转换做了两次 | 结构复杂、远程访问麻烦 |
| 无缝漫游 | 终端在多个 AP 之间自动切换时体验更顺 | 走动时尽量不断网 |
| 有线回程多 AP 漫游 | AP 之间靠网线互联,终端做漫游 | 家庭最稳的多点覆盖 |
| 无线 Mesh | 路由器之间通过无线互联 | 不能布线时扩展覆盖 |
| 802.11s | OpenWrt 里典型的无线 Mesh 标准 | 节点间无线回程 |
| 802.11k | 给客户端“附近 AP 地图” | 帮客户端发现候选 AP |
| 802.11v | 给客户端“切换建议” | 帮客户端做漫游决策 |
| 802.11r | 加快切换时的认证 | 减少切换瞬间卡顿 |
| usteer | OpenWrt 的多 AP 协调工具 | 让 K/V/R 更好发挥 |
| flow offloading | OpenWrt 转发加速 | 提升 NAT/转发性能 |
| Breed | 第三方 bootloader | 后续刷机/恢复更方便 |
十二、方案优缺点对比:到底选哪种
这一节是把最容易混淆的几种家庭网络方案拉平来看。
方案 1:单路由 + 一个 Wi-Fi
最简单的家庭结构:
- 一个主路由
- 一个无线网络
优点:
- 最简单
- 最省心
- 最少出错
缺点:
- 覆盖有限
- 大户型或隔墙环境下体验容易变差
- 无法真正解决“屋里某些区域信号差”的问题
适合:
- 小户型
- 设备不多
- 对漫游没有明显要求
方案 2:多个路由器只是同名 Wi-Fi
这是很多人最先想到的做法:
- 两台路由器都发差不多的 Wi-Fi 名称
- 但没有认真做 AP 规划和漫游优化
优点:
- 上手门槛低
- 看起来像是“实现了全屋覆盖”
缺点:
- 终端容易黏在远处 AP
- 体验常常并不自然
- 很容易以为“同名 Wi-Fi = 无缝漫游”
适合:
- 临时凑合用
- 先试试覆盖效果
不适合:
- 对走动时体验有明显要求
- 经常刷视频、直播、视频通话
方案 3:有线回程多 AP 漫游
这就是我最后实际采用的方案:
- 一个主路由
- 其他节点全部做 AP
- 节点之间用网线互联
- 配置 K/V/R 和可选的 usteer
优点:
- 稳定
- 回程带宽损失小
- 延迟低
- 体验通常优于无线 Mesh
- 最适合家庭长期使用
缺点:
- 需要布线
- 需要稍微懂一点网络结构
- 不是“插上就自动最优”,仍然需要基础调试
适合:
- 有条件拉网线的家庭
- 希望覆盖和体验都更稳
- 想尽量减少无线回程带来的不确定性
方案 4:无线 Mesh
包括厂商宣传的“Mesh”以及 OpenWrt 里的无线节点组网。
优点:
- 不用拉线
- 部署方便
- 对老房或临时环境很友好
缺点:
- 回程链路受环境影响大
- 稳定性和吞吐通常不如有线回程
- 墙多、距离远时效果波动更明显
适合:
- 真的没法布线
- 更看重施工方便
方案 5:双重 NAT 下的多路由
比如:
- 光猫在做路由
- 后面的 OpenWrt 也做路由
- 两台设备不在同一网段
优点:
- 表面上也能“都上网”
缺点:
- 漫游体验很难做好
- 网络结构复杂
- 端口映射、远程访问、游戏更麻烦
- 排错难度明显更高
适合:
- 只在很特殊、明确知道自己为什么这么配时使用
大多数家庭:
- 不推荐
十三、家庭场景选型建议表
如果你只想快速判断自己该用哪种方案,可以直接看这个。
场景 1:小户型,主路由已经够用
建议:
- 先别折腾多 AP
- 一个主路由先跑稳
场景 2:大户型或隔墙多,但能布网线
建议:
- 直接选
有线回程多 AP 漫游 - 这是家庭最推荐的方案
场景 3:大户型,但完全没法布线
建议:
- 选
无线 Mesh - 接受它的稳定性和带宽会受环境影响
场景 4:已经有两台能刷 OpenWrt 的路由器
建议:
- 优先拿来做 AP
- 不一定要再额外买专用 AP
场景 5:主要目标是减小走动时卡顿
建议:
- 不要只停留在“同名 Wi-Fi”
- 至少做到:
- AP 模式
- 有线回程
- 信道错开
K/V/R- 需要时加
usteer
场景 6:主要目标是插件、QoS、VPN、端口控制
建议:
- 再考虑让 OpenWrt 设备做主路由
- 如果光猫仍是路由模式,要注意双重 NAT
十四、如果只记住 5 句话,我希望是这 5 句
同名 Wi-Fi不等于无缝漫游。- 家庭里如果能布线,
有线回程多 AP通常优先于无线 Mesh。 802.11k / 802.11v常常比802.11r更决定“会不会切”。802.11r不是没用,但它更多是在“已经决定切换后”让过程更快。- 真正决定体验的,往往不是某一个神秘参数,而是整体结构对不对。
十五、802.11k / 802.11v / 802.11r 到底是什么
这是我后面最困惑,也最容易被各种教程讲乱的部分。
1. 802.11k
可以理解成给客户端一张“附近 AP 地图”。
它告诉手机:
- 周围还有哪些 AP
- 大概在哪些信道
这样客户端就不用自己全世界乱扫。
2. 802.11v
可以理解成给客户端一个“切换建议”。
最典型的就是:
BSS Transition
AP 会对客户端说:
- 你可以考虑切到另外那台更合适的 AP 了
但这是建议,不是强制。
3. 802.11r
这是“快速切换认证”。
它不负责决定“要不要切”,
它负责的是:
既然要切了,那认证过程能不能更快。
4. 为什么很多教程说 K/V 比 R 更重要
因为家庭环境里,很多时候问题不是“切换太慢”,而是:
- 客户端根本不愿意切
- 客户端不知道切到谁
这时候:
K帮它发现候选 APV帮它做切换决策
只有在客户端已经决定切换之后,R 才开始发挥作用。
所以:
只有 R,通常不够K/V/R一起上,体验才更完整
十六、为什么我还折腾了 wpad-mbedtls 和 usteer
1. 为什么一开始看不到 802.11k / 802.11v
因为 OpenWrt 默认装的往往是:
wpad-basic-mbedtls
这是精简版。
它通常不带完整的 802.11k / 802.11v 能力。
2. 怎么换成完整版
我最后执行的是:
apk update
apk del wpad-basic-mbedtls
apk add wpad-mbedtls usteer luci-app-usteer
reboot
3. usteer 是什么
可以把它理解成:
OpenWrt 多 AP 漫游辅助和频段引导工具
它会让多个 AP 之间互相知道:
- 哪些客户端连着谁
- 信号情况如何
- 哪个 AP 更适合当前客户端
它不是替代 K/V/R,而是把 K/V 的效果更好地组织起来。
4. usteer 最值得关注的 3 个参数
我最后真正保留下来的核心参数其实不多,最值得关注的是这 3 个:
roam_scan_snr='-65'signal_diff_threshold='8'assoc_steering='1'
它们大概分别代表:
- 当信号掉到
-65附近时,更积极开始考虑漫游 - 只有目标 AP 明显更好时,才更积极引导切换
- 在关联阶段做引导,减少设备黏在不理想 AP 上
对于家庭环境来说,我最后的体会是:
- 先别追求把参数调得很激进
- 默认的保守值加上这几个关键项,通常就已经够用了
十七、两台 AC2100 最终怎么组成有线回程漫游网络
我最后采用的是下面这种结构。
1. 接线方式
光猫 LAN -> AC2100-1 的 LAN
光猫 LAN -> AC2100-2 的 LAN
注意:
- 两台 AC2100 的
WAN口都不用 - 如果光猫口不够,可以中间加交换机
2. 地址规划
假设光猫地址是:
192.168.1.1
那两台 OpenWrt AP 我设成:
AC2100-1:192.168.1.2AC2100-2:192.168.1.3
3. AP 模式的关键设置
每台都要:
- 关闭 DHCP
- 禁用
dnsmasq - 禁用
odhcpd - 禁用
firewall
4. 无线配置
我最后的思路是:
- 2.4G SSID:
yaoyao - 5G SSID:
yaoyao_5G
两台保持:
- 同一频段同名
- 同密码
- 同加密
信道错开:
- 第 1 台 2.4G:
1 - 第 2 台 2.4G:
11 - 5G 也错开
5. K/V/R 配置
每个无线接口都要开:
802.11k802.11v802.11r
其中 802.11r 还要注意:
Mobility Domain一致,比如1234NAS ID每个接口唯一FT over DS先关闭
6. usteer 配置
我最后用的核心设置是:
uci set usteer.@usteer[0].network='lan'
uci -q delete usteer.@usteer[0].ssid_list
uci add_list usteer.@usteer[0].ssid_list='yaoyao'
uci add_list usteer.@usteer[0].ssid_list='yaoyao_5G'
uci set usteer.@usteer[0].roam_scan_snr='-65'
uci set usteer.@usteer[0].signal_diff_threshold='8'
uci set usteer.@usteer[0].assoc_steering='1'
uci commit usteer
/etc/init.d/usteer enable
/etc/init.d/usteer restart
7. 怎么判断 usteer 工作了
执行:
ubus call usteer remote_info
如果每台都能看到另一台的:
- 2.4G
- 5G
- SSID
- BSSID
就说明多 AP 协作已经建立起来了。
十八、刷完后如果感觉无线变慢怎么办
这个问题我也遇到过。
刷成 OpenWrt 后,如果感觉:
- Wi-Fi 没原厂快
- 刷抖音直播更容易卡
- 明明已经连上了 5G,但体感还是不顺
不要急着怀疑“是不是刷坏了”,很多时候只是默认配置更保守。
1. 先区分是“有线慢”还是“无线慢”
最先做的不是乱调参数,而是先分清楚:
- 电脑用网线测速,快不快
- 手机连 Wi-Fi 测速,快不快
如果:
- 有线也慢
那更可能是路由/NAT 转发问题。
如果:
- 有线正常
- 只有无线慢
那更可能是 Wi-Fi 参数问题。
2. 手机怎么测速
最简单的办法是:
- 用手机打开
Speedtest - 或访问测速网站
测速时建议分开测:
- 只连
2.4G - 只连
5G
这样更容易看出到底是哪一层的问题。
3. 无线基础参数要合理
我后面总结下来,家用最稳的是:
2.4G- 信道
1 / 6 / 11选一个 - 带宽
20MHz
- 信道
5G- 优先选非 DFS 信道
- 带宽
80MHz
不要轻易把:
- 2.4G 开成
40MHz - 发射功率直接拉满
这常常会适得其反。
4. flow offloading 是什么,在哪里开
如果你发现:
- 有线测速都不理想
- 一多人上网,直播延迟就明显高
那就值得看看 flow offloading。
OpenWrt 页面里一般在:
网络 -> 防火墙
它可能显示成:
路由/NAT 卸载软件流量卸载硬件流量卸载
我最后的建议是:
- 先开
软件流量卸载 - 不要一上来就直接开
硬件流量卸载
因为:
- 软件卸载更稳
- 硬件卸载虽然可能更快,但兼容性和稳定性更看具体设备和功能组合
5. 这件事和抖音直播为什么关系特别大
因为抖音直播这类应用不只是吃带宽,更吃:
- 延迟
- 抖动
- 切换时的稳定性
也就是说,有时候看起来“测速挺快”,实际刷直播还是卡,问题可能出在:
- 漫游切换
- Wi-Fi 频段选择
- NAT/转发延迟
而不只是单纯的下载速度。
十九、最后我的配置状态是什么
当我把所有配置检查完之后,可以确认:
802.11k已开802.11v已开802.11r已开Mobility Domain一致NAS ID唯一FT over DS已关闭usteer双向发现正常
也就是说,从配置层面看:
K/V/R + usteer 这一套已经搭好了。
二十、这套方案的真实预期应该是什么
这里我最后也想说一句实话。
很多人一开始听到:
- Mesh
- 802.11k/v/r
- 企业 AP
就会以为最后一定能做到“绝对无缝、零卡顿”。
但家庭环境里,真实情况通常是:
- 客户端仍然自己决定是否切换
- 手机品牌不同,漫游策略差异很大
- 5G 覆盖、摆位、发射功率都会影响结果
所以更合理的目标是:
- 不再长时间黏在远处 AP
- 切换时最多轻微顿一下
- 日常刷视频、走动时体验明显比“只是同名 Wi-Fi”好
如果达到这个程度,其实就已经很值了。
二十一、我这次最大的经验总结
1. 先把“刷机”和“组网”分开看
刷进去 OpenWrt,只是第一步。
真正决定体验的,是后面的网络结构。
2. 家庭里优先考虑“有线回程 AP 漫游”
如果能拉网线:
- 不要优先追求无线 Mesh
- 有线回程通常更稳
3. 只开同名 Wi-Fi,不等于就能有好漫游
真正决定漫游体验的,往往是:
- AP 摆位
- 信道规划
- K/V/R
- usteer
- 客户端本身的策略
4. Windows 下远程一条命令执行,真的比 SSH 后手敲舒服
像这种形式:
ssh root@192.168.1.2 "uci show wireless"
对 Windows 用户来说,常常比先进入 SSH 再粘贴要省心很多。
5. 不要把所有问题都归结到“OpenWrt 配置错了”
很多看起来像配置问题的东西,最后其实是:
- 网线问题
- LAN 口问题
- Windows 静态 IP 残留
- 地址冲突
- 把 Windows 命令误丢给 OpenWrt 执行
二十二、给准备刷红米 AC2100 的人的建议
如果你也准备刷这台机器,我会给你下面这些建议。
建议 1:第一次别先刷 Breed
先按稳妥路线刷进 OpenWrt,等以后真有需求再考虑 Breed。
建议 2:第一次从原厂刷,只用 kernel1.bin + rootfs0.bin
不要上来就拿 sysupgrade.bin 去刷原厂。
建议 3:一定用有线
这一步不要省。
建议 4:Windows 用户尽量用“本地远程命令”方式
不要太依赖在 SSH 黑框里粘贴长命令。
建议 5:后续如果做双路由漫游,优先做 AP 架构
如果你的主目标是:
- 覆盖
- 漫游
- 简化网络结构
那就让:
- 光猫当主路由
- 两台 OpenWrt 都做 AP
这通常比双重 NAT 更适合家庭。
二十三、结语
这次折腾最大的感受是:
刷 OpenWrt 其实不难,真正难的是搞清楚自己想要的网络结构。
如果你的目标只是让家里 Wi-Fi 更稳、更顺、更好漫游,那最后决定体验的往往不是某个“神秘参数”,而是:
- 接线对不对
- 主路由/AP 分工对不对
- 信道和摆位对不对
- K/V/R 和 usteer 有没有配完整
红米 AC2100 不是什么高端设备,但用得对、配得对,依然能做出一套很实用、很有性价比的家庭网络。
如果你正准备刷,建议你先把这篇文章从头看到尾,再开始动手。
很多坑你完全可以不用自己再踩一遍。