记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

红米AX6000解锁SSH 刷机教程

红米AX6000解锁SSH 刷机教程
一、解锁SSH
1 升级到指定版本固件
在小米路由器后台,将路由器手动升级到 1.2.8 版本
2 获取路由器 stock
登陆小米路由器后台后,浏览器地址栏 stok= 后面的一段内容即是(选中部分),准备好备用。
3 开启调试模式
打开浏览器,复制下面的内容到地址栏,并替换 {STOK}
XML/HTML代码
  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
我的替换后如上。将替换好的值复制到浏览器请求,如果显示 {"code":0} 如上返回内容则表示成功。
4 通过浏览器请求重启
同样打开浏览器,复制下面的内容到地址栏,并替换 {STOK}
XML/HTML代码
  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
通过浏览器执行完这一步路由器会重启,等待重启完成。
5 设置 Bdata 永久开启 telnet
重启完成后打开路由器后台(注意:路由器重启你需要重新登陆获取下新的 stok ),然后同样打开浏览器,复制下面的内容到地址栏,并替换 {STOK} 。
XML/HTML代码
  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
然后再次执行第 4 小步的「通过浏览器请求重启」,等待重启完成。
6 telnet 连接开启 ssh
打开 Termius,可以选择不登录 Continue Without Account。
点击 New Host 添加
Address 填写:192.168.31.1
SSH:取消勾选
Telnet:勾选
然后点击向右的箭头,最后选择 Hosts 里的「192.168.31.1」开始 telnet 连接。(不用输入用户和密码)
7 永久开启并固化 ssh
XML/HTML代码
  1. echo -e 'admin\nadmin' | passwd root
  2. nvram set ssh_en=1
  3. nvram set telnet_en=1
  4. nvram set uart_en=1
  5. nvram set boot_wait=on
  6. nvram commit
  7. sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear
  8. /etc/init.d/dropbear restart
  9. mkdir /data/auto_ssh
  10. cd /data/auto_ssh
  11. curl -O https://fastly.jsdelivr.net/gh/lemoeo/AX6S@main/auto_ssh.sh
  12. chmod +x auto_ssh.sh
  13. uci set firewall.auto_ssh=include
  14. uci set firewall.auto_ssh.type='script'
  15. uci set firewall.auto_ssh.path='/data/auto_ssh/auto_ssh.sh'
  16. uci set firewall.auto_ssh.enabled='1'    
  17. uci commit firewall
  18. uci set system.@system[0].timezone='CST-8'
  19. uci set system.@system[0].webtimezone='CST-8'
  20. uci set system.@system[0].timezoneindex='2.84'
  21. uci commit
  22. mtd erase crash
  23. reboot
复制上面的命令到 termius 终端里执行,这会设置 ssh 密码为 admin、并永久开启 SSH、并从开发模式修改回正常的模式,并重启。重启完成后就能连上 ssh 了。
8 尝试 ssh 连接路由器
选择 Hosts-点击 New Host 添加
Address 填写:192.168.31.1
SSH 的用户名里填写:root
Password 是:admin
点击右上角箭头,再点击 Hosts 里的 192.168.31.1 就应该能连接上 SSH 了。(注意选择 ssh 不是 telnet)
选择 ADD AND CONTINUE,就会进入 ssh 连接。
二、安装ShellClash(已改名ShellCrash
安装
在 SSH 里复制此命令开始安装 ShellClash
路由设备使用curl安装:
XML/HTML代码
  1. #GitHub源(可能需要代理)
  2. export url='https://raw.githubusercontent.com/juewuy/ShellCrash/master' && sh -c "$(curl -kfsSl $url/install.sh)" && source /etc/profile &> /dev/null
  3. 或者
  4. #jsDelivrCDN源
  5. export url='https://fastly.jsdelivr.net/gh/juewuy/ShellCrash@master' && sh -c "$(curl -kfsSl $url/install.sh)" && source /etc/profile &> /dev/null
  6. 或者
  7. #作者私人源
  8. export url='https://gh.jwsc.eu.org/master' && sh -c "$(curl -kfsSl $url/install.sh)" && source /etc/profile &> /dev/null
路由设备使用wget安装:
XML/HTML代码
  1. #GitHub源(可能需要代理)
  2. export url='https://raw.githubusercontent.com/juewuy/ShellCrash/master' && wget -q --no-check-certificate -O /tmp/install.sh $url/install.sh  && sh /tmp/install.sh && source /etc/profile &> /dev/null
  3. 或者
  4. #jsDelivrCDN源
  5. export url='https://fastly.jsdelivr.net/gh/juewuy/ShellCrash@master' && wget -q --no-check-certificate -O /tmp/install.sh $url/install.sh  && sh /tmp/install.sh && source /etc/profile &> /dev/null
老旧设备使用低版本wget安装:
XML/HTML代码
  1. #作者私人http内测源
  2. export url='http://t.jwsc.eu.org' && wget -q -O /tmp/install.sh $url/install.sh  && sh /tmp/install.sh && source /etc/profile &> /dev/null
选择 1 正式版,然后选择 1 确认安装。
配置 Clash
输入 Clash 回车进行配置
选择 1 主机或旁路由
选择 1 不代理 UDP
选 1 安装 Dashboard 面板
选择 3 YACD 面板(选择你熟悉的都 OK)
选择 1 的路径
1 开始导入
1 在线生成
粘贴你的订阅链接(你的机场✈️后台有提供)
1 开始生成配置文件
1 立即启动 Clash 服务
选择 4 允许开机启动
最后选择 0 退出脚本即可
现在应该就能正常使用了,在浏览器里打开 http://192.168.31.1:9999/ui,就能访问控制后台。
测速性能
三、刷 openwrt
第一步:刷入过渡固件
XML/HTML代码
  1. cat /proc/cmdline
这一步需要路由器是正常联网的,首先 ssh 连接上红米 ax6000 ,执行上面的命令,查看返回的 firmware 等于 0 还是 1。 (我截图这里是 1 )
如果是 0 执行
XML/HTML代码
  1. nvram set boot_wait=on
  2. nvram set uart_en=1
  3. nvram set flag_boot_rootfs=1
  4. nvram set flag_last_success=1
  5. nvram set flag_boot_success=1
  6. nvram set flag_try_sys1_failed=0
  7. nvram set flag_try_sys2_failed=0
  8. nvram commit
  9. cd /tmp
  10. curl -L http://sebs.oss-cn-shanghai.aliyuncs.com/initramfs-factory.ubi -o initramfs-factory.ubi
  11. ubiformat /dev/mtd9 -y -f /tmp/initramfs-factory.ubi
  12. reboot -f
如果是 1 执行
XML/HTML代码
  1. nvram set boot_wait=on
  2. nvram set uart_en=1
  3. nvram set flag_boot_rootfs=0
  4. nvram set flag_last_success=0
  5. nvram set flag_boot_success=1
  6. nvram set flag_try_sys1_failed=0
  7. nvram set flag_try_sys2_failed=0
  8. nvram commit
  9. cd /tmp
  10. curl -L http://sebs.oss-cn-shanghai.aliyuncs.com/initramfs-factory.ubi -o initramfs-factory.ubi
  11. ubiformat /dev/mtd8 -y -f /tmp/initramfs-factory.ubi
  12. reboot -f
复制执行完就会重启进入过渡固件,过渡固件的
管理ip:192.168.5.1
用户名和密码:root/password
无线wifi名称:OpenWrt
无线wifi密码:password
第二步:从过渡固件刷入 openwrt
在刷写前需要设置下 ENV ,浏览器打开过渡固件后台 192.168.5.1,登录用户名 root,密码 password。然后打开服务里的终端,同样登录用户名 root,密码 password(输入密码不会显示输完回车即可)。
XML/HTML代码
  1. fw_setenv boot_wait on
  2. fw_setenv uart_en 1
  3. fw_setenv flag_boot_rootfs 0
  4. fw_setenv flag_last_success 1
  5. fw_setenv flag_boot_success 1
  6. fw_setenv flag_try_sys1_failed 8
  7. fw_setenv flag_try_sys2_failed 8
然后复制上面的命令到终端执行,从过渡固件刷入 openwrt 这步是必须做的。
然后打开系统-备份与升级,选择刷写固件。浏览里找到下载好的 openwrt 固件,选择上传。上传好后选择取消勾选保留当前配置然后选择继续。等待刷写完成自动重启,就会进入新的 openwrt 固件。
新的 openwrt 固件后台地址是 192.168.6.1 用户名和密码依然是 root 和 password,默认的网口 1 是 wan 口,剩下的都是 lan 口。
目前这个 openwrt 的固件已经集成了 hwnat,也就是硬件加速,这是我喜欢硬路由的地方,正常上网使用像是 NAT、PPOE 性能和效率都非常高,跑满正常 1000M 宽带 CPU 几乎不动。CPU 性能当然依然足够 1000M 外网,coremark 两万七千多分数,这个上篇也说过。
和官方固件对比测试了下无线 Wi-Fi 的性能,测试的手机是最低标配 Wi-Fi 6 的 iPhone 13 ,在近处能达到 700Mbps 多,隔了一堵墙后也有 500 Mbps 左右,基本能达到官方固件的水平。
如果你想从当前 openwrt 固件刷到别的版本,同样是在系统-备份与升级,下载好的 openwrt 固件,选择上传,然后选择刷写固件,不勾选保留当前配置即可。当然如果只是同一个作者的固件只是更新版本,一般也可以保留配置直接升级的。
刷回官方
如果不想使用 openwrt 固件了或者一不小心刷错了无法开机,都可以是使用官方的修复工具刷回原厂,当然前提是你没修改过路由器的分区。目前 openwrt 官方的固件会合并最后两个分区为大分区,个人不建议新手这么做,因为要是挂了刷回官方固件就需要拆机比较麻烦,ptpt52 也在 GitHub 发了使用官方分区 PR 等等看吧。
首先下载好官方修复工具官方固件,使用小米路由器修复工具需要提前退出 Windows 自带的杀毒,我更推荐大家去下载安装个火绒这样更安全方便。
路由器进入恢复模式,路由器先用针按住后面的 reset 恢复按钮,再插上电源,持续顶住大约 8s,等到黄色指示灯变为黄色闪烁,就可以松开 reset 按钮,然后用网线连接 Windows 电脑,路由器这边连接 lan 口就可以,红米 ax6000 没有标 lan wan ,接 234 都可以。
打开解压好的小米路由器修复工具,要是有防火墙提示选择允许即可,然后选择本地上传下载好的官方固件 ;然后网卡选择:请选择与路由器相连的以太网网卡; 现在再点下一步就会自动开始刷机,看到发送完成就说明刷机完成了。然后我们等待路由黄灯变为蓝灯闪烁。我们就可以拔下电源再重新插上路由器,这样就完成了,路由器就回到了官方的固件。
重置、升级、刷机后如何恢复 SSH
无论你是升级了系统、还是恢复了出厂、还是刷了别的版本的系统或 openwrt 再刷回来,telnet 其实都是打开的,因为已经写在了 bdata 分区。不过 telnet 密码会恢复成默认的,我们需要通过路由器后台右下角的 SN 号来计算。这里有两个网站直接在线计算(安全的离线计算):
telnet 连上以后,执行:
XML/HTML代码
  1. sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear /etc/init.d/dropbear restart
就开启了 ssh,ssh 默认密码就是上面计算出来的一样。
参考网址:
红米 AX6000 搭载的是 MTK 2021 年发布的 Filogic 830 平台,具体型号是 mt7986a,四核 ARM A53 的架构,主频更是高达 2.0GHz,制程也是极为先进的 12nm,对于路由器这个 CPU 已经是最强的之一了,另外还有 512M 内存和 128M 闪存。
注:实测最新固件版本为1.0.60,不用升级固件就可以破解,在线升级也不会改变默认密码。ShellClash没有正式版,只有测试版可以用。

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):