简述 基于红米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 固件
备注:注意路由器版本是不是支持刷机的版本
三.获取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
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_sshcurl -O https://cdn.jsdelivr.net/gh/lemoeo/AX6S@main/auto_ssh.sh chmod +x auto_ssh.shuci 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.关闭开发者模式
13.重启路由器
四.刷机过程 切记刷入 uboot 过程中,不要去切断电源之类的
1.ssh登录 密码为之前设置的密码
报错可以执行带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 分区并重启
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. 特殊功能
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得通)
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 }