参考链接:[OpenWrt Wiki]、[Github lemoeo]
想要咨询问题或者需要帮助的可以加我的QQ:1165960061
Redmi AX6000固件版本:1.0.60
默认网关:192.168.31.1
一、软件准备
1. 所需设备:一台电脑;一台Redmi AX6000,电脑与路由器之间使用网线或者无线wifi连接。
2. 所需软件:Windows Terminal(Win10用户在Microsoft Store下载即可)或其他终端软件,比如,Termius,MobaXterm,等等。本文以Windows Terminal为例;
3. 所需固件:Redmi AX6000 1.0.60,Redmi AX6000 1.0.48(备用);
4. 开启本机的telnet功能:控制面板——卸载程序——启用或关闭Windows功能——勾选telnet功能——确定。
5. 路由器初始密码的计算:找到Redmi AX6000的SN码,并在此计算初始密码。得到初始密码,将其永久保存下来,路由器恢复出厂设置后会用到;
6. 本机内网IP地址:有很多方法能查到本机的内网IP地址,这里不再赘述,以下都假设设备地址为:192.168.31.10。
7. 路由器的stok:打开路由器的web端管理界面,输入管理员密码,从上方地址栏即可获得stok。
例如,管理界面地址为:
http://192.168.31.15/cgi-bin/luci/;stok=030b24d39b1a4a549aa12dac23c52313/web/home#router
则stok=030b24d39b1a4a549aa12dac23c52313,也即stok为030b24d39b1a4a549aa12dac23c52313。
注:每次路由器重启,stok值都会改变。
二、固件降级
从web端的管理界面将Redmi AX6000的固件版本降级到1.0.60。
三、开启Redmi AX6000的开发者模式
1. 更改路由器的crash分区,使其进入到开发者模式
在浏览器地址栏输入:
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
其中,将stok=token中的token替换成路由器的stok。
例如,我的stok为030b24d39b1a4a549aa12dac23c52313,则我应输入到浏览器地址栏的链接为:
http://192.168.31.1/cgi-bin/luci/;stok=030b24d39b1a4a549aa12dac23c52313/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
2. 特殊方法重启路由器
在浏览器地址栏输入:
http://192.168.31.1/cgi-bin/luci/;stok=token/api/misystem/set_sys_time?timezone=%20%27%20%3b%20reboot%20%3b%20
其中,将stok=token中的token替换成路由器的stok即可。
四、设置Redmi AX6000的Bdata参数
1. 设置参数telnet_en、 ssh_en、uart_en
在浏览器地址栏输入:
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
其中,将stok=token中的token替换成路由器新的stok即可。
2. 特殊方法重启路由器
在浏览器地址栏输入:
http://192.168.31.1/cgi-bin/luci/;stok=token/api/misystem/set_sys_time?timezone=%20%27%20%3b%20reboot%20%3b%20
其中,将stok=token中的token替换成路由器新的stok即可。五、通过telnet开启ssh
在Windows Terminal中输入指令:
telnet 192.168.31.1
输入后会直接进入【ARE U OK】的界面,表示telnet成功。
进入telnet后,输入指令开启ssh并修改密码为admin:
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
echo -e 'admin\nadmin' | passwd root
六、永久开启 ssh
新开一个Windows Terminal窗口,ssh连接进去:
注:此处是新开一个窗口,不要从telnet界面进行ssh连接。
ssh [email protected]
输入密码admin,即可登入ssh。
目前从telnet开启的ssh,路由器重启会失效,因此添加一个开启自动运行的脚本,来实现自动开启 ssh。缺点就是恢复出厂设置或重新刷机后需要重新添加。
注:此处需要路由器联网才可以执行成功。
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
七、关闭Redmi AX6000的开发者模式
新开一个Windows Terminal窗口,ssh连接进去:
ssh [email protected]
输入密码admin,即可登入ssh。
输入指令清除crash分区并重启:
mtd erase crash
reboot
八、修复时区异常
用上述方法开启ssh后,可能会导致路由器时区异常,在ssh中执行以下指令即可:
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
九、注意事项
每次升级固件或重置固件都需要执行以下指令:
sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear
/etc/init.d/dropbear restart
echo -e 'admin\nadmin' | passwd root
新开一个Windows Terminal窗口,ssh连接进去:
注:此处是新开一个窗口,不要从telnet界面进行ssh连接。
ssh [email protected]
输入密码admin,即可登入ssh。
登入后输入以下指令:
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