三年前,我曾经写过一篇文章提到给红米 AX5 路由器开启 SSH 的方法。当时浏览热度相当高,其实这个内容在其他 blog 里面也能经常见到,可能是时间比较早的缘故吧。但是开启了之后有什么用呢?这个路由器内存只有 256 MB,内置的是一个极度精简的 OpenWrt 系统,基本上就是“啥也干不了”的状态。于是就萌生了刷机的想法。
参考资料
- 恩山无线论坛 (下方写着:只谈技术、莫论政事!想想就非常搞笑🥸)
- Restent’s Notebook 博客
可能你会问:既然已经有教程了,为什么还要再水一篇?那是因为我发现实操的某些过程和教程不太一样。
准备工具
- Uboot 和 MIBIB 刷写件。网上很多人说要付费购买,其实不用,在 Github 就能免费下载获得。我选择的是
uboot/coolsnowwolf/
里面的文件 (AX5_MIBIB.bin
与AX5_UBoot.bin
)。实测可行。 - OpenWrt 过渡固件(可以理解为精简版)。我使用的是此处的
openwrt-ipq60xx-Redmi_AX5-squashfs-nand-factory.ubi
文件,大小约 13MB。实测可行。 - 能插网线的电脑一台。例如我的是 Macbook,没有网线接口,就需要购买一个 LAN – USB 转换头。注意买的时候看清楚是否是“免驱动即插即用”
- OpenWrt 最终固件。这里有坑,后面再说。
刷机步骤
开启 SSH
已经写过了。
备份、刷入 Uboot
备份就不说了。直接看参考材料。
刷入 Uboot 的方法是:首先要把 AX5_UBoot.bin
这个文件上传到路由器的 /tmp 目录下。然后执行:
mtd write /tmp/AX5_UBoot.bin /dev/mtd7
此时会显示如下信息,并且是瞬间完成。
root@AX5:/tmp# mtd write AX5_UBoot.bin /dev/mtd7
Unlocking /dev/mtd7 …
Writing from AX5_UBoot.bin to /dev/mtd7 …
参考资料上都建议等 20 秒之后再操作,我也等了。
坑:macOS 怎么向路由器传输文件?
macOS 上没有 winSCP 可用,也无法使用 FileZilla 来传文件(不信可以试试,必败)。原因是因为 macOS 上的 scp 默认会调用 sftp,而红米 AX5 路由器上没有 sftp(也不可能去安装一个),因此唯一的办法是给 scp 加上 -O 参数,这样可以避免 scp 调用 sftp:
# 假设路由器的 IP 是 192.168.0.1
scp -O AX5_UBoot.bin [email protected]:/tmp/
进入Uboot界面,刷写过渡件
首先把参考材料上的原文抄过来:
来自 https://www.right.com.cn/forum/thread-8278695-1-1.html
- 进入Uboot后台方法:先把路由器断电,推荐直接拔路由器屁股的电源口而不是插座,然后用牙签或者其他工具按住路由器后面的RESET不要放开,然后插上电源,此时路由器会黄灯闪烁5次变为蓝灯,然后就松开RESET(松开牙签)。
- 准备根网线接到路由器的LAN口和电脑的网口,设置电脑的IP为192.168.1.X(随意不能是1)。从此处开始到结束,网线要一直插着。
- 在浏览器输入 192.168.1.1 进入uboot。
- 然后选文件过渡固件(例如我选的
openwrt-ipq60xx-Redmi_AX5-squashfs-nand-factory.ubi
)- 点击Update firmware等待写入。路由器指示灯开始闪烁,直到不闪烁亮蓝灯为止。
我也是这么操作的,没有遇到问题。首先放一张 uboot 界面图(上面第 3 步)。

然后放一张 Update firmware等待写入的图(上面第 5 步的过程)。

最后放一张过渡固件刷完之后的图(上面第 5 步的结果)。

如果上面第五步操作之后路由器一直不亮蓝灯,则表明过渡固件写入失败,需要重新从第一步(路由器断电)开始操作。
刷入MIBIB
这一步参考材料上写得不是很清楚。归纳起来应该这样:
- 连接路由器的 SSH,IP 是 192.168.1.1,用户名是 root,不用密码。
- 同样用
scp -O
命令,复制AX5_MIBIB.bin
文件到路由器的/tmp
目录下面。 - 执行
mtd write /tmp/AX5_MIBIB.bin /dev/mtd1
。过程和结果与刷入 Uboot 那一步很像,也是瞬时完成,但是等 20 秒左右。
升级 OpenWrt 为最终固件(重大的坑)
操作方法就像参考资料里说的,在 192.168.1.1 的 web 界面上进行升级操作,点击按钮,上传最终固件,点击执行,等待路由器变蓝灯就好了。好像很傻瓜式。但是这里坑最多了。

用什么浏览器?
我在 macOS 上一直用 Safari 浏览器,因为省电。可是在这一步用 Safari 浏览器有可能导致升级失败(路由器一直黄灯)。建议用 Chrome 浏览器。
选哪个固件?
开始直接选择参考资料里面的固件,效果很不理想:
- 有的过于精简,后续想安装 Wireguard 安装不上,因为固件在编译时缺少一些必要的库。(OpenWrt 可不是 Ubuntu,一旦固件在编译时缺少库的话,是无法后续安装的)
- 有的过于臃肿,什么都有,安装完之后有些分区目录居然接近 100%(别忘了红米 AX5 只有 256MB 存储),导致接下去不能安装任何额外东西。
- 有的安装完之后居然不能 SSH 登陆,原因是因为
/etc/shells
只有/bin/ash
,这种情况只能呵呵呵了。 - 大部分固件内核都太老了,新内核固件要付费才能下载(说的就是那个只谈技术、莫论政事的著名论坛)。
我用了 openwrt.ai 这个网站来自行构建固件,免费用户每天可以构建一次。在网页上可以选择需要添加哪些软件包或者删除哪些软件包!
- 红米 AX5 是没有 USB 接口的,因此我去掉了 -kmod-usb 开头的软件包。
- 因为红米 AX5 内存只有 256MB,因此去掉了带 wifi 的软件包。
- 由于我想要后续使用 Wireguard,因此添加了 luci-proto-wireguard、 luci-app-wireguard、 kmod-wireguard、 wireguard-tools 这四个软件包。
构建大约 2 分钟即可完成,固件(kwrt-xx.xx.xxxx-qualcommax-ipq60xx-xx_xx-squashfs-sysupgrade.bin
)大小只有 22MB。
升级需要多久?
大约半分钟到一分钟。如果 1 分钟之后路由器仍然不亮蓝灯,基本可以判断为升级失败,需要重新从 Uboot 界面那一步开始操作。
最终效果
下面放一下最终固件的 web 截图。

SSH 的欢迎界面挺漂亮。

使用 openwrt.ai 构建固件优势明显:因为内核新,很多东西操作起来方便。例如 SSH 自带支持 ed25519,不用额外添加 RSA 了。而且由于可以自己删减软件包,因此很省空间(我用了 7.8 MB 的空间)。
[root@Kwrt:12:09 AM ~] # df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 15.5M 15.5M 0 100% /rom
tmpfs 63.4M 1.3M 62.1M 2% /tmp
/dev/ubi0_2 40.4M 7.8M 30.5M 20% /overlay
overlayfs:/overlay 40.4M 7.8M 30.5M 20% /
tmpfs 512.0K 0 512.0K 0% /dev
至于接下来要用 wireguard 做什么,以后再写了。
我只刷過手機,沒想到路由器也可以刷。這樣國内是否就可以直接用路由器翻牆了?
是的,但是想要用路由器翻牆的話,需要路由器的硬件比較好,因為要翻牆的內容太多了
用wireguard估计是组网了,虽然我感觉zerotier更适合
另外日本宽带普遍有公网ipv4吗
有公网ipv4,但是情况比较特殊,请等我下一篇文章。
盲猜动态公网v4,记得wg配ddns有点坑
不过v6总该是静态的吧,至少我墙国移动几个月没变过了
v4静态的。问题出在别处,我下一篇文章再写。
v6主要是很多公共 wifi 和公司 wifi 没有,不方便。
一直没有使用过软路由之类的,都是路由本身系统,懒得折腾
哈,这不是软路由。软路由是说本来是一台电脑台式机,安装了一些特殊的软件把它变成了具有路由功能的电脑。我这个本来就是路由器,只不过家里有好几个,废物利用了。