我把自己的小米ax3000t换成了OpenWRT

1.先介绍一下什么是OpenWRT(软路由)

OpenWrt 是一个基于 Linux 的开源嵌入式操作系统,主要用于无线路由器和其他网络设备。它最初是为了支持 Linksys WRT54G 系列路由器而开发的,因此得名 "OpenWrt"(Open Wireless Router)。 OpenWRT官网:https://openwrt.org

2.基于OpenWRT的国内主流固件

关于国内的固件对比说明,大家可以参考下 https://www.iyio.net/2025/04/141411.html

3.教程

  • 检查自己的设备是否支持

在刷机前请先检查一下自己的设备是否支持openwrt固件。

我的硬件设备是xiaomi ax3000t,官方有支持。

大家可以自行查看:https://openwrt.org/toh/views/toh_fwdownload?dataflt[0]=supported current rel_%3D24.10.4

  • 选择合适的固件

OpenWRT官网的固件更加精简透明,ImmortalWRT对国内用户比较友好,基本开箱即用。

经过对比我选择了ImmortalWRT固件,

ImmortalWRT官网:https://downloads.immortalwrt.org

  • 准备工作
  1. 小米路由器 AX3000T,型号:RD03

  2. 电脑 (Windows / Mac / Linux 都可以) ,本文以Windows 为例

  3. 一根网线(连接路由器和电脑)

  • 固件下载

我这里选择OpenWRT 的最新固件v24.10.4 ,

下载地址 https://firmware-selector.immortalwrt.org

下载两个文件:一个是Factory映像,一个是Sysupgrade映像。两个都要用到

  • 开启SSH

小米路由器固件版本查看,能正常使用工具进入 ssh 的固件版本有以下这些,我使用的 v1.0.64(也是截止到25.07.09的最新官方稳定版固件)。 可用的固件列表:https://openwrt.org/inbox/toh/xiaomi/ax3000t#api\_rce\_support\_status

小米路由器修复工具(用于降级刷机,本教程不需要,如果固件版本不在上述列表,先尝试直接后台192.168.31.1官方升级固件,升级后版本也不在列表中,再刷机即可)

在小米路由器官网可下载工具:https://www.miwifi.com/miwifi_download.html

下载xmir-patcher 工具,用于连接路由器并开启 SSH 功能,地址 https://github.com/openwrt-xiaomi/xmir-patcher![](https://i-blog.csdnimg.cn/direct/d9b3e053a8eb42969b33878cbae5d26f.png)

打开下载好的 xmir-patcher-main 工具包,这个程序是支持 Windows / Mac / Linux 的。

右击以管理员运行 run.bat 文件 (需要python环境)

电脑使用网线连接路由器,选择 LAN 口,虽然 AX3000T 的后面标的是 WAN/LAN 没有注明哪个是 LAN 口,但一般接近电源接口的最近的是WAN口,其他LAN口。

1 设置路由器 IP

输入1 选择设置路由器 IP,让工具连接路由器 IP,获取信息。

一般小米AX3000T都是192.168.31.1,输入路由器 IP 之后回车。

2 开启路由器的 SSH 服务

输入 2 选择连接到路由器设备 Connect to device (install exploit)

Enter device WEB password:

这里是要你输入路由器管理后台的密码,输入之后回车即可,输入过程中是看不到密码的。

6 永久安装 SSH

输入 6 Install permanet SSH永久安装 SSH,如果你就到这一步就可以了,不想继续安装 OpenWrt 了可以止步于此,以后连接 SSH 也方便。

  • SSH连接

账号: root密码: root

显示的是 ARE U OK 欢迎语 。

  • 上传 .ubi 文件

scp -O -o HostKeyAlgorithms=+ssh-rsa openwrt-24.10.0-mediatek-filogic-xiaomi_mi-router-ax3000t-initramfs-factory.ubi root@192.168.31.1:/var

复制上述指令,注意版本号和ip,/var是把文件上传到路由器的路径。

然后会提示你输入密码,输入root后回车等待上传完成。

  • 安装 .ubi 文件

SSH 登录到路由器,执行 cat /proc/cmdline

会有一行信息,记住 firmware 的值,有的是 0 有的是 1 ,这影响到后面执行不同的指令。

如果是firmware=0,一行一行复制这些指令到你的 SSH 窗口执行:

第一行注意文件路径和文件名(版本号)

bash 复制代码
ubiformat /dev/mtd9 -y -f /var/openwrt-24.10.0-mediatek-filogic-xiaomi_mi-router-ax3000t-initramfs-factory.ubi
nvram set boot_wait=on
nvram set uart_en=1
nvram set flag_boot_rootfs=1
nvram set flag_last_success=1
nvram set flag_boot_success=1
nvram set flag_try_sys1_failed=0
nvram set flag_try_sys2_failed=0
nvram commit
reboot

如果是firmware=1,一行一行复制这些指令到你的 SSH 窗口执行:

第一行注意文件路径和文件名(版本号)

bash 复制代码
ubiformat /dev/mtd8 -y -f /var/openwrt-24.10.0-mediatek-filogic-xiaomi_mi-router-ax3000t-initramfs-factory.ubi
nvram set boot_wait=on
nvram set uart_en=1
nvram set flag_boot_rootfs=0
nvram set flag_last_success=0
nvram set flag_boot_success=1
nvram set flag_try_sys1_failed=0
nvram set flag_try_sys2_failed=0
nvram commit
reboot

reboot后路由器会重启,等待重启完成。

ImmortalWRT固件会默认开启名为ImmortalWrt的wifi,可以直接连接

  • 上传 systemupgrade.bin 文件并升级系统

重启后的系统已经是OpenWrt了,默认ip变成了192.168.1.1,不再是192.168.31.1。

但是必须要上传 systemupgrade.bin 文件并升级系统!现在的OpenWrt只是临时的。

浏览器输入192.168.1.1,看有没有OpenWrt的管理界面。

登录到管理界面:

账号: root

密码: root

注意:路由器默认ip变成了192.168.1.1,有可能与你的主路由ip冲突,导致无法访问OpenWrt。

上传openwrt-24.10.0-mediatek-filogic-xiaomi_mi-router-ax3000t-squashfs-sysupgrade.bin

然后执行安装,等待系统重启完成。

大功告成。

命令行

bash 复制代码
# 上传文件

scp -O -o HostKeyAlgorithms=+ssh-rsa xx文件名 root@192.168.1.1:/tmp

# SSH登录

ssh-keygen -R 192.168.1.1

ssh -o KexAlgorithms=+diffie-hellman-group14-sha1 -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa root@192.168.1.1

# 更新软件包

opkg update
相关推荐
不想画图2 小时前
Linux——web服务介绍和nginx编译安装
linux·nginx
2301_807583232 小时前
ubuntu22.04集群部署clickhouse详细步骤
linux·clickhouse·zookeeper
尹蓝锐2 小时前
Linux解压各种压缩包命令
linux·运维·服务器
小嘟嘟26793 小时前
Linux-奇怪的No such file or directory
linux·运维·服务器
shizhan_cloud3 小时前
iSCSI 服务器
linux·运维
百***61874 小时前
linux 设置tomcat开机启动
linux·运维·tomcat
春日见4 小时前
claude code基本介绍
linux·运维·服务器·ros2·moveit2
Cyan_RA94 小时前
操作系统面试题 — Linux中如何查看某个端口有没有被占用?
linux·后端·面试
讨厌下雨的天空5 小时前
线程控制
linux