简述

基于红米ax6000路由器刷机immortalwrt
1.确定光猫选择的是桥接方式
2.选择路由器刷机对应版本
3.获取路由器的ssh
4.刷机过程
5.刷机版本参数对比
6.刷机变砖处理

一.确定光猫选择的是桥接方式

体现结果为路由器使用的是pppoe拨号上网,需要账号密码才能上网

二.选择路由器刷机对应版本

当前红米ax6000路由器版本在1.0.60到1.0.67都是支持刷机的

过渡固件
hanwckf 大佬的 uboot
下载bl-mt798x-release-20241115.7z获取里面的
获取mt7986_redmi_ax6000-fip-fixed-parts-multi-layout.bin 备用

寻找合适的ImmortalWrt版本
immortalwrt 固件版本查询

ImmortalWrt 上的对应关系

  • stock layout 对应 stock 固件
  • custom U-Boot layout 对应 uboot 固件(我选择的是这个)
  • OpenWrt U-Boot layout 对应 ubootmod 固件
    image.png

备注:注意路由器版本是不是支持刷机的版本

三.获取ssh过程

1.获取stock

登录红米ax6000管理后台获取url的stock的值做为token

1
http://192.168.31.1/cgi-bin/luci/;stok=c17d8a1331dc9e7c8c5e8fbb414ca319/web/home#router

2.解锁开发者模式(注意token)

1
http://192.168.31.1/cgi-bin/luci/;stok=token/api/misystem/set_sys_time?timezone=%20%27%20%3B%20zz%3D%24%28dd%20if%3D%2Fdev%2Fzero%20bs%3D1%20count%3D2%202%3E%2Fdev%2Fnull%29%20%3B%20printf%20%27%A5%5A%25c%25c%27%20%24zz%20%24zz%20%7C%20mtd%20write%20-%20crash%20%3B%20

3. 特殊方法重启路由器(注意token)

1
http://192.168.31.1/cgi-bin/luci/;stok=token/api/misystem/set_sys_time?timezone=%20%27%20%3b%20reboot%20%3b%20

4.重新登录获取stock

登录红米ax6000管理后台获取url的stock的值做为token

5.设置参数telnet_en、 ssh_en、uart_en(注意token换成新的stock)

1
http://192.168.31.1/cgi-bin/luci/;stok=token/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%20set%20uart_en%3D1%20%3B%20bdata%20commit%20%3B%20

6. 特殊方法重启路由器

1
http://192.168.31.1/cgi-bin/luci/;stok=token/api/misystem/set_sys_time?timezone=%20%27%20%3b%20reboot%20%3b%20

7.telnet开启ssh

1
telnet 192.168.31.1

8.修改密码

1
echo -e 'admin\nadmin' | passwd root

9.固化ssh

1
2
3
4
5
6
7
8
9
bdata set boot_wait=on
bdata commit
nvram set ssh_en=1
nvram set telnet_en=1
nvram set uart_en=1
nvram set boot_wait=on
nvram commit
sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear
/etc/init.d/dropbear restart

10.永久开启ssh (需要网络)

1
2
3
4
5
6
7
8
mkdir /data/auto_ssh && cd /data/auto_ssh
curl -O https://cdn.jsdelivr.net/gh/lemoeo/AX6S@main/auto_ssh.sh
chmod +x auto_ssh.sh
uci set firewall.auto_ssh=include
uci set firewall.auto_ssh.type='script'
uci set firewall.auto_ssh.path='/data/auto_ssh/auto_ssh.sh'
uci set firewall.auto_ssh.enabled='1'
uci commit firewall

11.修改时区

1
2
3
4
uci set system.@system[0].timezone='CST-8'
uci set system.@system[0].webtimezone='CST-8'
uci set system.@system[0].timezoneindex='2.84'
uci commit

12.关闭开发者模式

1
mtd erase crash

13.重启路由器

1
reboot

四.刷机过程

切记刷入 uboot 过程中,不要去切断电源之类的

1.ssh登录

密码为之前设置的密码

1
ssh root@192.168.31.1

报错可以执行带sshrsa配置的

1
ssh -oHostKeyAlgorithms=+ssh-rsa root@192.168.31.1

2.备份文件(winscp)

1
2
3
4
5
6
7
8
9
# 备份分区命令,后面使用 scp 之类的协议将文件拷贝下来

dd if=/dev/mtd1 of=/tmp/mtd1_BL2.bin
dd if=/dev/mtd2 of=/tmp/mtd2_Nvram.bin
dd if=/dev/mtd3 of=/tmp/mtd3_Bdata.bin
dd if=/dev/mtd4 of=/tmp/mtd4_Factory.bin
dd if=/dev/mtd5 of=/tmp/mtd5_FIP.bin
dd if=/dev/mtd8 of=/tmp/mtd8_ubi.bin
dd if=/dev/mtd9 of=/tmp/mtd9_ubi1.bin

3.上传过渡固件(winscp)

上传mt7986_redmi_ax6000-fip-fixed-parts-multi-layout.bin
校验(可省略)
md5sum /tmp/mt7986_redmi_ax6000-fip-fixed-parts-multi-layout.bin

4.将 uboot 写入 FIP 分区

1
mtd write /tmp/mt7986_redmi_ax6000-fip-fixed-parts-multi-layout.bin FIP

5.校验数据,输出 Success 说明刷入完成

1
mtd verify /tmp/mt7986_redmi_ax6000-fip-fixed-parts-multi-layout.bin FIP

6.清除 crash 分区并重启

1
2
mtd erase crash
reboot

7.进入 uboot webui,刷入 ImmortalWrt

  • 关闭路由器电源,重新通电
  • 按住路由器的 RESET 按钮等待 15 秒后松开 RESET(uboot 未支持 LED 指示灯,指示灯不会亮)
  • 打开 uboot webui 页面:192.168.31.1
  • 在 webui 页面选择 110MB 大分区固件
  • 然后选择自己下载的 custom U-Boot layout 版的 ImmortalWrt 固件
  • 等待刷入完成后自动重启,重启后打开 192.168.1.1,默认密码为空
  • 在 系统 - 软件包 里,先更新列表,过滤器搜索 argon,安装 luci-theme-argon 换个界面
    **

1. 更换国内镜像源(解决连接超时)

参考:https://help.mirrors.cernet.edu.cn/immortalwrt/

1
sed -e 's,https://downloads.immortalwrt.org,https://mirrors.cernet.edu.cn/immortalwrt,g' \ -e 's,https://mirrors.vsean.net/openwrt,https://mirrors.cernet.edu.cn/immortalwrt,g' \ -i.bak /etc/opkg/distfeeds.conf

2. 强制使用 HTTP(绕过 HTTPS 证书问题)

1
sed -i 's|https|http|g' /etc/opkg/distfeeds.conf

五.刷机版本参数对比(来自deepseek查询)

红米AX6000选择 OpenWrt官方版 与 ImmortalWrt 的深度对比分析,基于2024年实测数据和硬件特性:


1.核心差异全景图

特性 OpenWrt官方版 ImmortalWrt
无线驱动 开源mt76驱动(性能限制) 闭源MTK驱动(全性能解锁)
NAT加速 软件加速(最高1.2Gbps) 硬件HWNAT(满血2.5Gbps)
多拨支持 需手动配置mwan3 预装负载均衡插件+智能QoS
内存管理 原生Linux内存机制 针对256MB RAM深度优化
中文支持 需手动安装语言包 原生中文UI+本土化插件
软件源 国际源(偶尔被墙) 内置阿里云镜像源
更新频率 每日构建(激进更新) 月度稳定版(企业级验证)
特性 hanwckf uboot 官方ImmortalWrt固件
编译目标 针对MTK平台深度优化 通用设备适配
无线驱动 使用MTK闭源驱动(mt76/mt7915) 开源mac80211驱动
分区布局 支持1.5MB超大可写分区 标准128KB布局
超频支持 可调CPU至2.2GHz(风险自担) 锁定官方1.6GHz
安全启动 完全绕过Secure Boot 遵循官方签名验证
WEB恢复 集成TFTP应急恢复界面 依赖TTL串口操作
更新频率 随Git提交实时更新(平均2天/次) 季度稳定版发布

2.性能实测对比

1. 网络吞吐量

场景 OpenWrt 23.05 ImmortalWrt 23.05-SP1
有线NAT转发 1.8Gbps 2.5Gbps(HWNAT启用)
5G WiFi吞吐 987Mbps(开源驱动) 2164Mbps(闭源驱动)
多拨叠加效率 73%带宽聚合 92%带宽聚合
连接数极限 12,000并发 24,000并发(CTF加速)

2. 资源占用

1
2
3
4
5
`# OpenWrt空闲状态
Mem: 128M used / 256M total
# ImmortalWrt空闲状态
Mem: 89M used / 256M total
# 优化了38%内存占用`

3.功能扩展对比

1. 特色插件

插件类型 OpenWrt ImmortalWrt
多拨 mwan3(手动配置) syncdial(一键智能多拨)
游戏加速 GameBoost AI引擎
科学上网 需自行编译 预装PassWall2/SSR-plus
物联网支持 基础MQTT 深度适配HomeAssistant

2. 特殊功能

  • ImmortalWrt专属
    ✅ 小米智能设备免密接入
    ✅ 广东电信IPTV组播转单播
    ✅ 微信远程管理插件

  • OpenWrt优势
    ✅ 支持WIFI6E(需硬件改造)
    ✅ 最新Linux 6.1内核


4.刷机方案推荐

1. 家用全能型(推荐ImmortalWrt)

BASH

1
2
`# 使用ImmortalWrt+闭源驱动 
opkg install mt7986-firmware-ax6000 luci-app-syncdial

优势

  • 直接解锁160MHz频宽
  • 游戏流量自动优先
  • 手机APP远程管理

2. 极客开发型(选OpenWrt)

1
2
3
# 自行编译支持Docker的版本
git clone https://github.com/openwrt/openwrt make menuconfig
# 选中kmod-usb-core kmod-fs-ext4

``

优势

  • 可外接USB硬盘组建NAS
  • 支持KVM虚拟化
  • 最新安全补丁

5.刷机风险对照

风险类型 OpenWrt ImmortalWrt
无线失效 概率45%(驱动问题) 概率5%
5G信号衰减 -8dBm(开源驱动限制) 原生强度
救砖难度 需TTL拆机 Web直刷恢复
保修失效 100% 可通过刷回原厂固件恢复

6.终极选择建议

**选择ImmortalWrt

  • 需要开箱即用的WiFi6性能
  • 实现多拨叠加+游戏加速
  • 看重本土化服务(微信提醒/IPTV)

**选择OpenWrt

  • 需要Docker/虚拟化等高级功能
  • 参与开源社区开发
  • 使用非中国大陆频段(如WIFI6E)

六.刷机变砖处理

问题:刷机过程中把设备弄成砖了
原理:路由器的reset建可以重置的情况下,会有一瞬间恢复到重写固件的页面,“进入 uboot webui,刷入 ImmortalWrt”,利用这一特性,实现瞬时连接ssh,然后配置写入修改内容。
案例:比如我把192.168.1.1的默认网关改为了192.168.31.1导致管理界面进不去,ssh也进不去,只有路由器重置的瞬间的几秒内,能通过原来的192.168.31.1 访问(几秒),但几秒后又无法使用了。

重连测试方法(循环ping看是否能够瞬时ping得通)

1
ping -t 192.168.31.1

4.具体方案(能够瞬时ping得通,在能连的几秒内执行命令修改错误配置)
关键是记录自己每个步骤,然后给deepseek分析,知道自己为什么错。

编写文档 C:\path\to\flash_fix.sh,修改错误的ip配置

1
2
3
4
5
6
7
#!/bin/bash  
sshpass -p "之前设置ssh的密码" ssh -o StrictHostKeyChecking=no root@192.168.31.1 << EOF
uci set network.lan.ipaddr='192.168.1.1'
uci set network.lan.gateway='192.168.1.1'
uci commit
reboot
EOF

在powershell循环执行

1
2
3
4
5
6
7
while(1) {
if (Test-Connection -TargetName 192.168.31.1 -Count 1 -Quiet) {
& "C:\path\to\flash_fix.sh"
break
}
Start-Sleep -Milliseconds 100
}