最适合刷OpenWrt的路由器:红米AX6000刷机指南

前言

在上一篇文章已经介绍了在普通路由器上使用ShellCrash实现科学上网的办法,使用也是没有一点问题。

说来也巧,正好家里老人说家里网络信号不是很好,我就说不是宽带的问题,是因为路由器信号覆盖的原因导致他们一直觉得网络不好,最好的办法就是加一台路由器实现全屋覆盖。

于是查阅了一番资料,计划找一台信号还行的,而且最好是能够刷OpenWrt的路由器,于是就决定选择:红米AX6000

维度 优势 (Pros) 劣势 (Cons)
处理器性能 MT7986A (Filogic 830) 四核 2.0GHz,算力极其强悍,AES 跑分极高,适合高带宽插件运行。 暂无明显短板,但在处理极重度的 Docker 应用时,仍不如 X86 架构的软路由。
OpenWrt 兼容性 社区宠儿。拥有极其成熟的开源驱动,刷机后无线信号(WiFi)强度几乎无损。 刷机过程需要先开启 SSH,对纯小白有一定门槛(虽然教程已经非常多)。
网络规格 满血 WiFi 6。支持 4×4 160MHz,无线总速率达 6000Mbps,多设备连接非常稳定。 缺少 2.5G 网口。所有网口均为千兆,如果家里有 2000M 宽带或万兆 NAS,会有瓶颈。
内存/存储 512MB RAM + 128MB Flash。在同价位中属于高配,能同时运行多个大型插件。 128MB 闪存虽够用,但如果要安装大量软件,可能需要通过挂载虚拟内存或分区调整。
散热与做工 散热格栅设计合理,发热控制极佳,夏天长时间高负载运行也不易降频。 体积大。外壳塑料感较强,且天线不可拆卸,非常占用弱电箱或桌面空间。
性价比 价格比较亲民,硬件规格直逼千元级竞品。 二手市场非常保值,价格波动小。

选购事项

新机好像已经买不到了,淘个二手就行,目前市场价大概在300元。

特别注意:

  1. 不是小米AX6000,必须是红米AX6000

  2. 背面的型号是 RB06,不是 RB04

特别声明

1.刷机有风险,请务必了解相关风险后再决定是否刷机!

2.刷机前建议对购买的设备进行初始化

3.本教程基于官方文档进行操作,文档可能会更新,请优先阅读官方文档:[OpenWrt Wiki] Xiaomi Redmi AX6000

4.刷机有2种方式,Stock 和 U-Boot ,优劣见下表,官方先通过刷stock,再刷U-Boot,可以有效过渡,更加安全。不建议新手直接学论坛的一步到位刷U-Boot!

项目 Stock Layout U‑Boot Layout
是否保留原厂分区 ✔ 是 ✘ 否
是否能恢复原厂固件 ✔ 可以 ✘ 无法直接恢复
是否修改 bootloader ✘ 不修改 ✔ 会替换 BL2/FIP
OpenWrt 可用空间 较小 最大化
安装难度 较低 较高
恢复方式 原厂 TFTP / Recovery Tool OpenWrt U‑Boot 自动 TFTP
风险 高(可能变砖)

5.目前最新的stable版本为 24.10.5,下文相关链接均使用该版本的固件,如不同版本,请访问官方相关链接进行下载。

为什么建议官方文档?

各路大神的固件虽好,但是相应的刷机教程其实不尽完善,而且OpenWrt版本非常多,刷不同版本的可能方法也有些许不同,况且刷机本身也有风险,我们选择刷纯净的官方版本,需要的插件可以后续自行安装。

前期准备

1. 设备

1.红米AX6000路由器

2.一台电脑(能插网线的各系统都行)

2. 固件应用

1.访问 Index of /releases/24.10.5/targets/mediatek/filogic/,搜索 ax6000 ,找到相关的8个文件,下载下来。

2.下载路由器降级程序:miwifi_rb06_firmware_847e9_1.0.48.bin

3.下载kmod-mtd-rw.ipk

建议分类整理好:stock的3个文件,u-boot的5个文件,降级的1个文件以及 1个kmod-mtd-rw.ipk

连接

将电脑与路由器的LAN口进行连接,确保能够访问 http://192.168.31.1,如果不行,修改电脑的IPv4地址为此网段的其他任一地址。

降级

降级的目的是为了获得 root / telnet / ssh 权限。

在路由器后台,上传固件,选择下载的 miwifi_rb06_firmware_847e9_1.0.48.bin,默认会阻止降级,将URL中的downgrade=0改为downgrade=1回车,我这边是downgrade=1改为downgrade=2,强制继续降级。

获取token

降级完成后访问路由器后台进行初始化设置,正常下一步即可。

设置完成后回到路由器后台,URL中可以看到 token 的值,不需要保存,这个值每次重启后都会变,在下一步打开开发者/调试模式时,要稍微注意。

Root

1. 启用开发者/调试模式

在URL的 token 值后面粘贴以下代码并回车:

/api/misystem/set_sys_time?timezone=%20%27%20%3B%20echo%20pVoAAA%3D%3D%20%7C%20base64%20-d%20%7C%20mtd%20write%20-%20crash%20%3B%20

得到输出: "code":0

添加的URL就相当于执行了 echo pVoAAA== | base64 -d | mtd write - crash,也就是把特定字节写入 crash 分区,从而让路由器进入开发者模式,为后续开启 telnet/ssh 和刷机做准备

接着还是在 token 值后面粘贴以下代码并回车:

/api/misystem/set_sys_time?timezone=%20%27%20%3b%20reboot%20%3b%20

重启设备的意思

2. 修改Bdata

修改 bdata 分区中的 telnet_enssh_enuart_en 字段,可以永久获得设备的访问权限。

刷新浏览器, stock 已经变更了,在其后面继续输入:

/api/misystem/set_sys_time?timezone=%20%27%20%3B%20bdata%20set%20telnet_en%3D1%20%3B%20bdata%20set%20ssh_en%3D1%20%3B%20bdata%20commit%20%3B%20

还是输出: "code":0

相当于执行了:

  • bdata set telnet_en=1 → 在 bdata 分区里把 telnet 开关设为 1(开启)

  • bdata set ssh_en=1 → 把 ssh 开关设为 1(开启)

  • bdata commit → 保存修改到 bdata 分区(写入闪存)

3. 关闭开发者/调试模式

重新进入路由器后台, stock 后输入:

/api/misystem/set_sys_time?timezone=%20%27%20%3b%20mtd%20erase%20crash%20%3b%20

即运行 mtd erase crash 命令,擦除 crash 分区。其实这一步也可以不做,后续要刷OpenWrt,不再打算回到 OEM 系统了。

4. 修复SSH

现在这个版本的SSH是坏的,要修复它,通过telnet命令连接路由器进行修复。

在电脑的终端输入:telnet 192.168.31.1 ,密码为空或者路由器管理密码。

系统终端如果不带telnet工具,自行搜索安装方法即可。

进入终端后修复 dropbear 文件:

vi /etc/init.d/dropbear

找到并删除下面3行代码:

if [ "$flg_ssh" != "1" -o "$channel" = "release" ]; then
  return 0
fi

因为没有联网,所以无法直接使用官方的一行代码方式修复:

## 联网可用
cd /etc/init.d/ && rm -rf dropbear && curl https://gist.githubusercontent.com/AmirulAndalib/4046f133f66b100d9bf2156dfd84afe8/raw/dropbear >> dropbear && chmod +x dropbear && cd ~

接着输入 /etc/init.d/dropbear start 启动dropbear。

顺带着输入 passwd root 设置root账户密码,后面上传文件需要。

5. 修复ssh-rsa算法(根据实际情况)

据说Windows端的 MobaXterm 工具可以跳过这一步,直接连接。(未验证)

MacOS的 Tabby 以及 Termius ,能连接SSH,但是无法连接SFTP,建议就乖乖使用系统自带的终端通过 scp 命令上传。

系统自带的终端,一般其 SSH 客户端太新,不兼容小米原厂固件里的旧 dropbear。

需要在自己电脑上修改 SSH 配置,让它接受旧算法。在自己电脑的终端上修改:

vi ~/.ssh/config  ## Windows的目录可能是C:\Users\<你的用户名>\.ssh\config

添加以下内容:

Host 192.168.31.1
  HostKeyAlgorithms=+ssh-rsa
  PubkeyAcceptedAlgorithms=+ssh-rsa

安装OpenWrt(stock)

上传 openwrt-{version}-mediatek-filogic-xiaomi_redmi-router-ax6000-stock-initramfs-factory.ubi 到路由器的 /tmp 目录。

用系统自带终端的话就用 scp 命令上传:

scp -O openwrt-{version}-mediatek-filogic-xiaomi_redmi-router-ax6000-stock-initramfs-factory.ubi root@192.168.31.1:/tmp

后面上传就不多赘述了,命令格式都是一样的 scp -O <本地文件路径> root@<路由器IP>:/tmp

1. 查看系统信息

cat /proc/cmdline

输出大致为:

console=ttyS0,115200n1 loglevel=8 firmware=1 uart_en=1

确认 firmware=0 还是 1

2. 刷initramfs

一、如果是:firmware=1,输入下面的代码:

nvram set boot_wait=on
nvram set uart_en=1
nvram set flag_boot_rootfs=0
nvram set flag_last_success=0
nvram set flag_boot_success=1
nvram set flag_try_sys1_failed=0
nvram set flag_try_sys2_failed=0
nvram commit

接着刷入固件:

ubiformat /dev/mtd8 -y -f /tmp/openwrt-{version}-mediatek-filogic-xiaomi_redmi-router-ax6000-stock-initramfs-factory.ubi

二、如果是:firmware=0,输入下面的代码:

nvram set boot_wait=on
nvram set uart_en=1
nvram set flag_boot_rootfs=1
nvram set flag_last_success=1
nvram set flag_boot_success=1
nvram set flag_try_sys1_failed=0
nvram set flag_try_sys2_failed=0
nvram commit

接着刷入固件:

ubiformat /dev/mtd9 -y -f /tmp/openwrt-{version}-mediatek-filogic-xiaomi_redmi-router-ax6000-stock-initramfs-factory.ubi

这一步可以直接跳到刷写U-Boot的OpenWrt,为了演示我们还是按照官方流程走

最后,重启路由器:reboot

3. 固定启动分区

这一步已经刷完了initramfs,重启后已经是openwrt的网关:192.168.1.1

为了“锁定 OpenWrt 启动分区”,防止路由器回滚到小米原厂系统。继续登陆SSH,输入以下命令:

fw_setenv boot_wait on
fw_setenv uart_en 1
fw_setenv flag_boot_rootfs 0
fw_setenv flag_last_success 1
fw_setenv flag_boot_success 1
fw_setenv flag_try_sys1_failed 8
fw_setenv flag_try_sys2_failed 8
fw_setenv mtdparts "nmbm0:1024k(bl2),256k(Nvram),256k(Bdata),2048k(factory),2048k(fip),256k(crash),256k(crash_log),30720k(ubi),30720k(ubi1),51200k(overlay)"

4. 刷sysupgrade

上传 openwrt-{version}-mediatek-filogic-xiaomi_redmi-router-ax6000-stock-squashfs-sysupgrade.bin/tmp 目录,输入以下命令:

sysupgrade -n /tmp/openwrt-{version}-mediatek-filogic-xiaomi_redmi-router-ax6000-stock-squashfs-sysupgrade.bin

这边特别注意的是,上传使用的 scp 命令是在电脑自带终端执行的,刷固件的sysupgrade是在路由器的终端界面执行的。

等待重启,这一步已经可以正常使用stock的OpenWrt了。

但是为了最大化合理分配空间,我们接下来继续刷 U-Boot 的OpenWrt。

安装OpenWrt(U-Boot)

0. 删除host key

由于之前连接过 192.168.1.1 的SSH,现在刷完后重新连接,会出现验证失败的提示:

需要先修改删除 host key,让终端认为这是新的设备:

vi ~/.ssh/known_hosts

找到并删除相关的 192.168.1.1 的信息:

1. 备份系统

cat /dev/mtdblock0 > /tmp/BL2.bin
cat /dev/mtdblock1 > /tmp/Nvram.bin
cat /dev/mtdblock2 > /tmp/Bdata.bin
cat /dev/mtdblock3 > /tmp/Factory.bin
cat /dev/mtdblock4 > /tmp/FIP.bin

将这几个文件下载下来保存到本地。

2. 刷initramfs

上传 openwrt-{version}-mediatek-filogic-xiaomi_redmi-router-ax6000-ubootmod-initramfs-factory.ubi/tmp 目录,然后输入以下命令:

ubiformat /dev/mtd7 -y -f /tmp/openwrt-{version}-mediatek-filogic-xiaomi_redmi-router-ax6000-ubootmod-initramfs-factory.ubi

接着reboot重启路由器,查看分区信息:

root@OpenWrt:~ cat /proc/mtd

dev:    size   erasesize  name
mtd0: 00100000 00020000 BL2
mtd1: 00040000 00020000 Nvram
mtd2: 00040000 00020000 Bdata
mtd3: 00200000 00020000 Factory
mtd4: 00200000 00020000 FIP
mtd5: 07a80000 00020000 ubi

mtd5分区 的名字应该为 ubi

3. 加载kmod-mtd-rw

上传之前下载的 kmod-mtd-rw.ipk/tmp并安装:

opkg install /tmp/kmod-mtd-rw.ipk

接着加载:

insmod /lib/modules/$(uname -r)/mtd-rw.ko i_want_a_brick=1

4. 清空日志

清空 pstore(持久化崩溃日志)里的所有 crash dump,不清空的话可能会触发自动恢复机制

rm -f /sys/fs/pstore/*

5. 创建环境变量分区

这两个分区是:OpenWrt U-Boot 的环境变量存储区

  • ubootenv 是主环境变量

  • ubootenv2 是备份环境变量

ubidetach -p /dev/mtd5; ubiformat /dev/mtd5 -y; ubiattach -p /dev/mtd5
ubimkvol /dev/ubi0 -n 0 -N ubootenv -s 128KiB
ubimkvol /dev/ubi0 -n 1 -N ubootenv2 -s 128KiB

错误信息: ubidetach: error!: cannot detach "/dev/mtd5" error 19 (No such device) 的意思是,命令试图把 mtd5 分区从系统里“卸载”掉,但系统发现它本来就没挂载。

这边就应该提示这个错误信息,可以忽略,其实已经成功了。

6. 创建恢复系统(可以跳过)

不想占用空间的话,可以不创建。

我这边也是没有创建的。

ubimkvol /dev/ubi0 -n 2 -N recovery -s 10MiB
ubiupdatevol /dev/ubi0_2 /tmp/ax6000-ubootmod-initramfs-recovery.itb

7. 刷U-Boot

最后就是刷系统了,上传 ax6000-ubootmod-preloader.binax6000-ubootmod-bl31-uboot.fip/tmp 目录,输入以下命令:

mtd write /tmp/ax6000-ubootmod-preloader.bin BL2
mtd write /tmp/ax6000-ubootmod-bl31-uboot.fip FIP

8. 刷sysupgrade

上传 openwrt-{version}-mediatek-filogic-xiaomi_redmi-router-ax6000-ubootmod-squashfs-sysupgrade.itb/tmp 目录,输入以下命令:

sysupgrade -n /tmp/openwrt-{version}-mediatek-filogic-xiaomi_redmi-router-ax6000-ubootmod-squashfs-sysupgrade.itb

等待系统自动重启。

完成

重启后应该就能正式使用OpenWrt了。

最后

说来本来想写个文章,但是写着写着发现完全就是照抄官方的文档,期间也没有遇到任何问题。搞得这篇文章好像是个翻译文一样,😮‍💨😮‍💨😮‍💨😮‍💨😮‍💨😮‍💨。

不过第一次尝试刷系统,还挺有意思的,就是简单了点。

另外就是这个路由器无法外接USB,也就是无法进行扩容,稍微装2个插件,感觉已经不剩多少空间了,稍微有点焦虑。。。

扩展:使用udpxy播放IPTV

这个可以说是非常搞的一件事情,稍微记录一下。

之前因为华硕路由器只需在路由器后台的IPTV页面开启并且设置单播的端口即可,现在换到OpenWrt需要自行设置,而且由于接口比较多,有点绕,研究了好一会儿才搞定。

1. 安装luci-app-udpxy

在系统-软件包,搜索并安装 luci-app-udpxy

2. 建立IPTV专用接口(最关键的一步)

udpxy 需要一个有 IP 地址的接口来和运营商通信。物理 WAN 口默认没 IP,所以我们需要新建一个,不然就是网络是通的,但是没有IP与其通信,它不会发送任何数据到本地。

  1. 位置网络 -> 接口 -> 添加新接口

  2. 基本设置

    • 名称IPTV_WAN (名字随意)。

    • 协议DHCP 客户端 (从光猫获取内网 IP)。

    • 设备:选择 wan (即连接光猫的那个物理接口,不要pppoe-wan)。

  3. 高级设置 (防止断网的关键):

    • 使用默认网关❌ 取消勾选 (必须取消,否则会抢占宽带网关导致上不了网)。

    • 使用对端通告的 DNS❌ 取消勾选

  4. 防火墙设置

    • 选择 wan 区域 (为了方便管理,和宽带接口放在一起即可)。
  5. 保存:保存后,确保该接口获取到了 IP (如 192.168.1.310.x.x.x)。

3. 配置防火墙

  1. 位置网络 -> 防火墙 -> 通信规则

  2. 添加规则 1 (IGMP)

    • 名称Allow-IGMP

    • 协议IGMP

    • 源区域wan

    • 目标区域此设备 (Device/Input)

    • 动作接受 (Accept)

  3. 添加规则 2 (UDP)

    • 名称Allow-UDP-Multicast

    • 协议UDP

    • 源区域wan

    • 目标区域此设备 (Device/Input)

    • 目标地址224.0.0.0/4 (可选,填了更精准)

    • 动作接受 (Accept)

  4. 保存并应用

4. 配置 udpxy

  1. 位置服务 -> udpxy

  2. 启用:勾选。

  3. Respawn:勾选。

  4. 端口4022 (或者自定义)。

  5. 组播订阅源接口 (Source Interface)

    • 手动输入IPTV_WAN (填你在第二阶段新建的那个接口名)。
  6. 绑定 IP/接口0.0.0.0br-lan。(默认未指定也行)

  7. 保存并应用

5. 验证

假设组播地址是:rtp://239.1.1.1:8000

那么单播地址就是: http://<路由器IP>:<udpxy端口>/rtp/239.1.1.1:8000

应该就可以正常播放了。

扩展:Wi-Fi信号增强

OpenWrt 为了“守法”和“通用性”,默认把发射功率限制得很低(通常限制在 100mW / 20dBm 甚至更低)。我这边默认安装好之后是 20dBm,信号强度真的一般般。

要释放满血信号,需要简单设置。

1. 修改国家代码

  1. 进入 “网络” (Network) -> “无线” (Wireless)

  2. 分别编辑 2.4GHz 以及 5GHz

  3. 找到 “国家代码” (Country Code)

    • 建议改为: AU - Australia (澳大利亚)

    • 理由: 澳大利亚标准允许的发射功率非常高(通常被称为“澳大利亚模式”),且频道限制较少。

2.锁定信道

5G 频段:

5G Wi-Fi 的频段对功率也有影响。在某些地区标准下,低频段(36-48)的功率限制比高频段(149-161)要严格。

建议先将频段设置为 149频宽选择 80 MHz

频宽不能选择160 MHz。在 149频段,160MHz频宽的时候,配置是不合法的,要么5G直接崩溃,要么触发合规性屏蔽,设备无法搜到该信号。

2.4G 频段:

2.4G 频段讲究比较少,建议将频段设置为 11或者13频宽选择 40 MHz

3. 调整发射功率

前两步保存应用后,再回到Wi-Fi的设置界面,应该就能看到原本最大 20 dBm的发射功率,选择可以选择到 30 dBm

保存并应用即可。

4. 使用感受

调整了发射功率后,确实比我之前华硕TUF-AX3000的信号还要好一点,相同的位置,原本手机只有2格信号,现在80%以上的时间都是满格信号。看视频的时候,也没有提示“当前正在使用手机流量播放”的提示。

0 0 投票数
文章评分
订阅评论
提醒
guest
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
滚动至顶部
0
希望看到您的想法,请您发表评论x