小米AX3600路由器刷OpenWrt完整教程

2026-08-03 23:44:39 0点赞 2收藏 0评论

▲手上这台小米AX3600是20年到手的,当时算是很高端的路由器了,其硬件到现在也不过时,CPU是高通 IPQ8071A 6 核架构,包含4 核 A53 @1.4GHz和双核NPU 网络加速引擎@1.7GHz(硬件转发,千兆跑满低占用),内存 / 闪存:512MB DDR4 内存 + 256MB eMMC 闪存,1个千兆自适应 WAN,3个千兆自适应 LAN。

小米AX3600路由器刷OpenWrt完整教程

这款路由器最大的特点就是那7 根不可拆卸外置高增益天线(2 根 2.4G + 4 根 5G + 1 根 AIoT 蓝灯天线),看起来非常专业,直到现在的小米新款路由器还在沿用这个造型。但这个路由器原厂固件功能保守,缺少自定义多线、多播、高级分流等玩法,也无法安装自己想要的插件,所以我想把它刷成OpenWrt固件,解锁更多玩法。

但要注意的是,刷机失去小米官方保修,不过这款路由器2020 年初发布的很多年了,应该都已经过保了,也会失去小米路由器原厂的MESH功能,无法自动和其他小米路由器组MESH,操作失误有变砖或者丢失无线的可能。

一、需要准备的工具

1、硬件:网线、Windows 电脑

2、软件:PuTTY(SSH 登录)、WinSCP(文件上传)

3、官方 1.0.17 降级固件(可以自己去网上找miwifi_r3600_firmware_5da25_1.0.17.bin)、OpenWrt 官方适配固件,也可以用其他自己喜欢的固件,但要注意小米AX3600有两种固件,一种是用于原厂分区的固件,还有一种是改大分区后的固件,除非你已经改过大分区了,否则要下载原厂分区固件,不能用大分区固件。

这里要注意一下,小米后台悄悄对这个1.0.17固件分两批做了内部修订,2020 年 2 月原始初版可以正常开启SSH,但后期重新分发修订版小米悄悄加入安全校验,开启 SSH 之后会自动杀掉 dropbear 进程,出现Software caused connection abort报错,所以要下载早期版本固件,两个版本文件名完全一致,仅固件内部内核代码不一样,外部看不出差别,初版固件 MD5:5DA25377426528193728779967E38C650。

4、TTL 工具,救砖才需要用的,一般刷机过程不需要

二、降级固件

小米AX3600路由器刷OpenWrt完整教程

因为新版固件封堵了开SHH漏洞,所以高于1.0.17版本的固件必须降级到1.0.17 旧版固件开SSH,查看自己的是什么固件只需要登录小米路由器后台miwifi.com或者是192.168.31.1,我的是高版本的固件,所以需要降级。

1、网线一端插 AX3600 任意 LAN 口,一端插电脑网口,电脑网卡设置自动获取 IP,浏览器打开 miwifi.com或者是192.168.31.1,登录小米后台。

2、备份宽带账号密码、WiFi 名称密码,刷机后配置会清空,如果本来就不在这个路由器里拨号也不用备份。

3、进入常用设置‑系统更新‑手动升级,上传下载好的miwifi_r3600_firmware_5da25_1.0.17.bin,然后点击开始升级(实际上是降级)。

4、路由器会自动降级重启,等待 3‑4 分钟重启完毕,重新登录小米后台。这个过程中千万千万别断电,断电必变砖

三、开启 SSH

SSH全称Secure Shell安全外壳协议,它的作用是一套加密远程登录工具,主要用于通过网络远程登录另一台设备,从而实现执行命令、读写文件,全程加密,不会明文泄露账号密码,在路由器刷机中经常还会用到另一种工具Telnet,作用是一样的。

1、登录后停留在小米路由器后台页面,这时后台的地址栏非常长,一般如下:http://192.168.31.1/cgi-bin/luci/;stok=xxxx/web/home#router,里面包含stok=xxxx字样,这个stok值很重要,每次重新打开或者刷新后台都会变,所以不要关闭、重新打开或者刷新后台;

2、按下键盘 F12,切换到 Console(控制台);

3、将下面代码完整复制粘贴进控制台代码栏回车运行:

function getSTOK() {

let match = location.href.match(/;stok=(.*?)//);

return match ? match[1] : null;

}

function enableSSH() {

const stok = getSTOK();

if (!stok) return alert("未获取stok,请刷新后台页面");

const pwd = prompt("设置SSH登录密码(root用户)");

if (!pwd) return;

const cmd = nvram set ssh_en=1;nvram set telnet_en=1;nvram set boot_wait=on;nvram commit;sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear;/etc/init.d/dropbear start;echo "${pwd}" > /etc/shadow;

const url = /cgi-bin/luci/;stok=${stok}/api/misystem/set_config_iotdev?bssid=AX3600&user_id=root&ssid=-h%0A${cmd}%0A;

fetch(location.origin + url);

alert("SSH已开启,密码为你输入的内容");

}

enableSSH();

如果成功了,浏览器就会弹出输入框设置 SSH 密码,自设密码提交就可以了。

如果没有成功,那就在浏览器里新建一个标签页,把以下代码复制进去,把前面小米路由器后台页面地址里的stok值复制到这个代码的STOK这里,回车就可以了,如果是这种方式密码就是默认的admin。

http://192.168.31.1/cgi-bin/luci/;stok=STOK/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=-h%3B%20nvram%20set%20ssh_en%3D1%3B%20nvram%20commit%3B%20sed%20-i%20's%2Fchannel%3D.*%2Fchannel%3D%5C%22debug%5C%22%2Fg'%20%2Fetc%2Finit.d%2Fdropbear%3B%20%2Fetc%2Finit.d%2Fdropbear%20start%3B

四、PuTTY 登录路由器 SSH

小米AX3600路由器刷OpenWrt完整教程

1、打开PuTTY软件,主机名称填 192.168.31.1,端口 22,连接类型SSH,点打开

小米AX3600路由器刷OpenWrt完整教程

2、弹窗login as:输入用户名:root,password密码是上一步设置的密码,输入密码的时候界面上不会显示字符,这是正常的的。我第一次输入密码后显示Access denied也就是拒绝访问,能输入用户名了表示SSH服务已经启动了,但是通过 URL 远程写入/etc/shadow设置密码的方式失败,这是因为AX3600后期批次的1.0.17 固件,set_config_iotdev 可以修改 nvram 参数、启动 dropbear,但是写入 /etc/shadow 修改 root 密码的命令被系统拦截,前面设置的密码并没有生效,所以一直报 Access denied,解决方案就是下载早期版本固件,两个版本文件名完全一致,仅固件内部内核代码不一样,外部看不出差别,初版固件 MD5:5DA25377426528193728779967E38C650。

小米AX3600路由器刷OpenWrt完整教程

3、成功进入小米原厂shell,界面最下方出现 root@XiaoQiang:/#,这就说明成功开启了SSH连接上了路由器,接下来就可以通过在这里输入命令行来对路由器固件进行操作了。

五、备份原厂分区

为了防止后期刷固件的时候路由器变砖,需要对原厂的分区进行备份,特别是factory.bin无线校准分区一定要备份好,丢了即使救砖成功也无法正常用了

1、复制以下代码:

mkdir /tmp/bak

dd if=/dev/mtd0 of=/tmp/bak/mtd0.bin

dd if=/dev/mtd1 of=/tmp/bak/mtd1.bin

dd if=/dev/mtd12 of=/tmp/bak/sys1.bin

dd if=/dev/mtd13 of=/tmp/bak/sys2.bin

dd if=/dev/mtd14 of=/tmp/bak/bdata.bin

dd if=/dev/mtd15 of=/tmp/bak/factory.bin

复制代码后到前面的root@XiaoQiang:/#后面按Ctrl+V,有些不会立即复制过去,可以点一下鼠标右键就粘贴上去了,然后按回车键

小米AX3600路由器刷OpenWrt完整教程

代码自动运行,运行完就是备份成功了

小米AX3600路由器刷OpenWrt完整教程

2、打开 Win‑SCP软件,协议 SCP,登录root账号,端口号默认22

小米AX3600路由器刷OpenWrt完整教程小米AX3600路由器刷OpenWrt完整教程

Win‑SCP进入/tmp/bak,在这里可以看到刚刚备份好的bin文件,把里面备份的.bin文件都复制出来保存到电脑上,左边是电脑文件夹,右边是路由器文件夹,两边的文件可以相互复制粘贴。

六、刷临时固件

小米AX3600路由器刷OpenWrt完整教程

在固件下载页面一般会有3个固件,这3个固件的作用不一样,主要看后缀:

initramfs‑ulmage.itb:这是临时救机固件,只在救砖的时候用,这个固件是刷到闪存里的,无法保存设置,一般刷机的时候不用这个固件;

factory.ubi:这个是在原厂SSH或者 TTL‑U‑Boot下刷写的底包;

sysupgrade.bin:这个是刷好factory.ubi后直接在Openwrt里升级用的升级包。

1、WinSCP界面里把factory.ubi上传到路由器/tmp目录,直接复制粘贴过去,也可以拖过去。

2、因为小米AX3600的原厂固件是分了两个分区,原厂固件只存在于其中一个分区,每次OTA 在线升级轮流在备份分区里升级新固件,实现不停机更新,同时还能实现升级失败自动回滚防变砖,可以看出来小米路由器的固件一切以稳定为第一要素,两个系统分区完全独立,单分区容量只有约 30MB,这也是原厂固件体积限制的根源,所以也装不了什么插件,如果要装很多插件那就要改大分区,这次就不说了。

要在SSH查看当前启动分区,把以下代码复制到root@XiaoQiang:/#运行:

nvram get flag_boot_rootfs

如果返回 0 → 说明当前运行的是sys1 (mtd12)分区,那我们就要在mtd13备用分区刷新固件

ubiformat /dev/mtd13 -y -f /tmp/XXXXX-factory.ubi -s 2048 -O 2048

nvram set flag_boot_rootfs=1

nvram set flag_last_success=1

nvram commit

reboot

如果返回 1 → 说明当前运行的是sys2 (mtd13)分区,那我们就要在mtd12备用分区刷新固件

ubiformat /dev/mtd12 -y -f /tmp/XXXXX-factory.ubi -s 2048 -O 2048

nvram set flag_boot_rootfs=0

nvram set flag_last_success=1

nvram commit

reboot

把代码里的XXXXX-factory.ubi名称换成你前面通过WinSCP复制到/tmp目录的文件名,这样就刷好临时固件了。

七、刷完整固件

小米AX3600路由器刷OpenWrt完整教程

浏览器打开 http://192.168.1.1(如果进不去需要把电脑的IP改为192.168.1.X),账号:root,密码:password就能进入OpenWrt的后台了,临时固件只是一个过渡的固件,可以临时使用,但在这个固件里的修改设置没法保存,每次重启后都会恢复到原始状态,所以还需要刷完整固件。选择系统——备份 / 升级——更新固件,选择前面准备好的sysupgrade.bin完整固件升级包,等几分钟路由器重启后就能进入正式版OpenWrt的后台了,记住过程中还是千万不要断电。我这里刷的是BleachWrt,也是OpenWrt的一种,相比于原生的OpenWrt,还有很多诸如BleachWrt、NWrt、OWrt、QWrt、iStore这些分支,都是集成了各种插件和LUCI界面的定制化OpenWrt固件,拿来就能用,看自己的喜好来选择。

小米AX3600路由器刷OpenWrt完整教程

这个时候我们再用PuTTY软件连接路由器, 可以看到原厂固件下的root@XiaoQiang:~#变成了 root@BleachWrt:~#,这也能说明我们已经刷好固件了。

八、下集预告

小米AX3600路由器刷OpenWrt完整教程

▲我用的这个BleachWrt固件自带LUCI主题,不用自己安装了,也预装了一些常用的插件,我下一篇再来说说OpenWrt里有哪些好用的插件,这也是大家刷OpenWrt的最重要的目的。另外因为这次我刷机换其他固件的时候不小心刷砖了,后面再写一篇怎么TTL救砖,感兴趣的可以收藏关注。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
2
扫一下,分享更方便,购买更轻松