本文最后更新于2023年5月30日,已超过 6 个月没有更新,内容可能不兼容或已失效

前两年搬家时布置家里的网络,因为户型的原因,从卧室到客厅要经过几堵承重墙,为了保证全屋都能有较快的WiFi网速,选择了Mesh组网。当时红米AX3000刚出,支持WiFi6和无线Mesh,而且价格比较便宜,就买了两台组网。

过了一阵子因为想用路由器代理,就想试着刷OpenWrt,但找教程的时候发现网上的“AX3000教程”实际上说的是红米AX6,型号RA69,按照规格本来应该叫AX3000;但没想到猴米真的出了个更丐的“AX3000”,也就是我手上这台,型号是RA81。尝试了解锁AX6 SSH的url stok方法,没有成功;当时恩山论坛上有一种借助另一台刷了OpenWrt的路由器拷贝固件的办法,但手里没有别的路由器,遂放弃。

这两天又想起来折腾路由器,在恩山论坛搜到了新的方法:TTL线硬刷固件(参考链接),按照此方法成功安装了OpenWrt,但苦于型号过于冷门,网上能找到的固件没有编译另外的插件和功能;而路由器的架构又不兼容大部分opkg/ipk包,无法Mesh组网,也无法使用Clash,失去了刷OpenWrt的意义。但转念一想,不用OpenWrt,就用原厂固件,开启SSH后是否可以用ShellClash?网上没有找到完整的教程,但通过TTL进入MiWiFi终端后的操作应该是通用的,是不是可以试着用别的型号的方法?

首先,要给路由器接上TTL线。

按照图中红圈位置撕掉贴纸,拧开螺丝;

翻到正面,图中红色位置为前面板的固定卡扣,用一字螺丝刀从面板和边框的缝隙伸进去,撬开前面板;再拧掉蓝圈标注的螺丝,取下均热板。可以注意到图中主板右上角螺丝旁边有四个孔,那就是稍后要连接的TTL脚位。

图中脚位从左到右依次为VCC,RX,GND,TX。千万注意此处不可接VCC脚位,否则会烧掉芯片,彻底变砖!按照我买的TTL线,依次将绿色、黑丝和白色的线接到脚位上,如果黑屏或者乱码就把RX和TX换一下。为了防止出现意外反复拆机浪费时间,我就用杜邦线焊到TTL脚位上,引出机器方便调试。

打开设备管理器,找到自己TTL线连接的COM端口;

打开PuTTY,如图设置连接,记得把端口改为刚刚在设备管理器里看到的端口,暂时不连接。

此时初步的连接已经完成,下一步是开启路由器的U-Boot,类似进入系统前的引导。小米路由器默认是关闭进入U-Boot的,也就是利用小米路由器修复软件恢复固件后第一次重启可以进入U-Boot的特性,设置每次重启都可以进入U-Boot。恢复软件下载链接 原厂固件下载链接

在软件中选择原厂固件,点击下一步,再选择连接路由器Lan口的网卡,开始刷机。等待软件提示刷机成功后,按照上面的教程用PuTTY连接TTL,拔掉路由器电源,等待几秒后插上。此时TTL会开始跑码,立即反复按回车,直到出现以下界面:

这个界面代表已经成功进入U-Boot,接下来是设置开机等待,以便每次开机都能进入U-Boot调试。输入以下代码:

setenv uart_en 1
setenv boot_wait on
saveenv

输入代码有可能会报找不到命令的错,可以尝试交换前两行命令的顺序。完成后输入reset重启,也可以直接重新插拔电源。保持TTL连接,第二次重启时会看到开机跑码有五秒的倒计时,在这五秒内按回车可以进入U-Boot。我们不进入U-Boot,等待路由器自己启动系统,路由器前面板System灯变为蓝色后访问MiWiFi默认后台地址192.168.31.1,按照正常流程设置上网。此处必须连上网才能进行下一步操作,否则无法固化SSH。

设置完成后回到TTL界面,按回车就进入MiWiFi的Shell了,界面如下:

成功进入Shell后,下一步就是开启并固化SSH,代码和操作是MiWiFi系统通用的,参考恩山论坛链接。首先输入以下代码设置root密码:

echo -e 'admin\nadmin' | passwd root

接下来开启SSH,报错的处理办法和之前一样,尝试交换命令顺序。

nvram set ssh_en=1
nvram set telnet_en=1
nvram set uart_en=1
nvram set boot_wait=on

保存更改:

nvram commit

下一步固化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

此处有可能无法建立连接下载脚本,可以尝试在进行操作的电脑上使用chfs搭建http文件服务器,将脚本下载到本地后使用chfs共享,把原代码中“https://cdn.jsdelivr.net/gh/lemoeo/AX6S@main/auto_ssh.sh”改为自己共享的地址。

改回时区设置:

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

关闭开发/调试模式:

mtd erase crash

重新启动使设置生效:

reboot

此时SSH就成功开启并固化了。如有需要,可以在MiWiFi后台页面更改网段等设置,此处我改成了192.168.2.1。

使用Windows终端或者Xshell连接路由器SSH,终端输入:

ssh [email protected]

此处注意IP地址更改为你设置的IP地址,初次连接会询问你要不要保存连接指纹,输入yes并回车,输入之前设置的密码admin,成功连接SSH。

接下来就是安装ShellClash,详情参考GitHub项目主页。此处我们使用curl方法安装。由于GFW的不可抗力,经测试使用私人源速度最快:

export url='https://gh.jwsc.eu.org/master' && sh -c "$(curl -kfsSl $url/install.sh)" && source /etc/profile &> /dev/null

输入后按照提示进行操作,建议选择公测版,可以更好支持AX3000。具体操作如图:

安装完成后输入命令“clash”打开软件菜单,进行代理设置。

首先安装第三方面板Yacd,方便管理节点。

按照提示安装完成后导入配置文件,到图中步骤直接输入机场提供的订阅链接并回车,等待一段时间就完成导入了。

访问 192.168.2.1:9999/ui 进入Yacd控制面板,注意将网段更改为上文你自己的设置,端口也可以在clash菜单中更改。可以看到以下界面:

点击左侧菜单中的“代理”,选择节点:

右下角蓝色闪电可以测试延迟,选择自己想要连接的节点。

到此,ShellClash的安装和配置就全部完成了。当需要经过路由器代理上网时,在客户端设备局域网选项中进行设置即可,此处以iOS为例:

完成设置后,我们就可以成功经过代理上网了!

最后更新于 2023-05-30