碎碎念
万物皆可OpenWrt,之前修好的红米路由器,一直放着没怎么管过他,现在今天有时间给他拿出来倒腾一下。因为我的工位附近实在是没有RJ45网口了,所以只能是让路由器去连接无线校园网,将无线网作为wan口,也就是所谓的WISP (Wireless Internet Service Provider) 模式,或者叫 Client+Router 模式。
小米路由器的官方固件(MiWiFi)通常不支持这种模式。
官方固件里的“无线中继”功能,实际上是 Client+Bridge(桥接)模式。一旦开启,小米路由器的DHCP服务会关闭,NAT功能失效,它会变成一个纯粹的“无线交换机”,你的所有设备都会直接从上级WiFi获取IP,这违反了“保持局域网独立性”的要求。以及后续如果想添加其他的功能,例如说装一个代理,做内网穿透打隧道之类的,还是需要更高的支持性。所以只能刷openwrt了
第一步:解锁SSH
软刷机,免拆的方式都要以SSH的方式登录路由器,SSH就是获取路由器的root权限,你能以登录服务器的方式一样进入系统,后面就任你操作了。
下载XMiR-Patcher脚本:

▲ 进入GitHub后,点击Code然后点击Download ZIP下载压缩包,建议使用Windows系统;如果是Linux / Mac OS需要用到python 3.8, openssl,小白就不要折腾了。
下载完成解压文件后,进入文件夹,双击Run即可开启脚本!

▲ 确定一下默认网关是你的路由器IP即可,如果不是选择1,手动修改一下。

▲ 然后脚本会自动运行,识别信息,输入WEB管理密码,回车,就可以等3分钟左右,自动开启SSH了。

▲ 出现这个提示代表SSH开启成功了,输入0退出即可。
刷入大分区Uboot(防止变砖,救回来)
恩山教程里是采用拆机然后TTL的方式打断Uboot启动过程,然后使用tftpd64的方式把固件上传到内存,进行刷机。这太麻烦了。
这里提供两种方式,一个是写入大分区不死界面Uboot,一个是直接刷入OpenWrt系统,区别在于软件剩余空间大小,刷入了大分区Uboot的有80M可用空间,默认小分区只有18MB可用空间,根据需要选择吧。
大分区uboot来自qaqal大佬,表示感谢!提示:刷机有风险,自行评估,变砖别找我。
我把Uboot文件上传到服务器了,可以在线下载写入,比较友好,需要路由器联网,这种分享精神求个赞不过分吧!
先下载Uboot以及大分区文件:
curl -L -o /tmp/MIBIB.bin "http://home.yanchang.pw:12345/share/select?code=N68KW"
curl -L -o /tmp/APPSBL.bin "http://home.yanchang.pw:12345/share/select?code=Y6342"
curl -L -o /tmp/APPSBL1.bin "http://home.yanchang.pw:12345/share/select?code=0A737"当然你也可以从自己电脑下载好上传到路由器
然后写入对应分区
mtd write /tmp/MIBIB.bin /dev/mtd1
mtd write /tmp/APPSBL.bin /dev/mtd11
mtd write /tmp/APPSBL1.bin /dev/mtd12这一步直接复制粘贴到SSH里面,回车等待结果即可。

▲ 完成后不要重启路由器,现在是进不去官方系统了,需要刷入OpenWrt才能启动路由器
第二步:在线刷入OpenWrt系统
红米AX3000固件项目地址:
一次性复制粘贴下面的代码,等待跑码完成即可,这一步速度取决于你的网络环境,GitHub本身是可以直连的。
红米 AX3000 在原厂系统刷完引导后,DNS 配置会被清空 / 失效,这是硬坑,所有刷这个机型的人都会遇到这个报错;
因此第一步下载固件的时候,路由器知道
github.com是个网址,但不知道它对应的 IP 地址,所以连不上,和curl/wget/https都没关系。
cd /tmp
curl -L -O "https://github.com/hzyitc/openwrt-redmi-ax3000/releases/latest/download/openwrt-ipq50xx-arm-redmi_ax3000-squashfs-nand-factory.ubi"
电脑下载固件 → SCP 传到路由器 /tmp 目录(推荐度 ⭐⭐⭐⭐⭐,无任何风险)
这是所有路由器刷机老手的标配方法,也是成功率 100% 的方法,彻底避开路由器的网络问题,你之前的 wget、curl 所有报错,用这个方法都能完美绕开,强烈推荐你用这个,省心省力,步骤超级简单,分 2 步完成,全程 1 分钟:
✔️ 第一步:电脑浏览器手动下载固件
直接复制你的固件链接,在电脑的 Chrome/Edge/ 火狐 浏览器打开,手动下载固件文件到电脑桌面:
plaintext
https://github.com/hzyitc/openwrt-redmi-ax3000/releases/latest/download/openwrt-ipq50xx-arm-redmi_ax3000-squashfs-nand-factory.ubi
✅ 下载的文件名为:openwrt-ipq50xx-arm-redmi_ax3000-squashfs-nand-factory.ubi(大小约 16MB 左右)
✔️ 第二步:把固件从电脑传到路由器的 /tmp 目录
路由器已经能 SSH 登录(账号 root + 密码),就可以用 SCP 文件传输,不用装任何复杂软件,分系统说明,都很简单:
如果你是 Mac/Linux 电脑
不用装软件,直接在电脑的「终端」执行下面的命令,替换路径即可,执行后输入路由器密码就完成传输:
scp ~/Desktop/openwrt-ipq50xx-arm-redmi_ax3000-squashfs-nand-factory.ubi root@192.30.255.112:/tmp/如果你的是windwos电脑
Windows 自带的
scp默认用 SFTP,我们只需要加一个参数-O(大写字母 O),强制让scp使用传统的 SSH 协议传输文件,完美避开缺失的sftp-server组件,路由器原生支持 SSH 协议,执行就必成功!
✅ 直接复制下面的命令,在你的【PowerShell】里粘贴执行即可(不用改任何内容)
scp -O .\openwrt-ipq50xx-arm-redmi_ax3000-squashfs-nand-factory.ubi root@192.168.31.1:/tmp/开始刷机
cat /proc/cmdline
mtd="$(grep -oE 'ubi.mtd=[a-zA-Z0-9\-\_]*' /proc/cmdline | cut -d'=' -f2)"
if [ "$mtd" = "rootfs" ]; then
# Flash it as system 2
ubiformat /dev/mtd19 -f /tmp/openwrt-ipq50xx-arm-redmi_ax3000-squashfs-nand-factory.ubi
nvram set flag_try_sys2_failed=0
nvram set flag_boot_rootfs=1
nvram set flag_last_success=1
nvram commit
elif [ "$mtd" = "rootfs_1" ]; then
# Flash it as system 1
ubiformat /dev/mtd18 -f /tmp/openwrt-ipq50xx-arm-redmi_ax3000-squashfs-nand-factory.ubi
nvram set flag_try_sys1_failed=0
nvram set flag_boot_rootfs=0
nvram set flag_last_success=0
nvram commit
fi
# Reboot
reboot
等待代码跑完,路由器会自动重启,路由器重启完成后进入192.168.1.1用户名root密码为空

▲ 进入了熟悉的OpenWrt系统了,怎么是ARMV7?IPQ5018不是A53架构64位的吗?

▲ 这个是原生的系统,没有主题,默认是英文,需要手动安装中文语言包!来到软件包界面

▲ 需要联网,先更新一下软件列表,然后输入ZH,找到base开头的中文语言包,点击install完成后,刷新页面就会变成中文了。
是不是很简单,全程不需要下载任何东西,全网最简单的红米AX3000系列刷入OpenWrt的方法,后面OpenWrt如何折腾请随意了。
如果有任何变砖,或者开机指示灯不亮等问题,因为前面刷了Uboot,那么现在可以断电顶住Rest按键通电10秒,输入192.168.10.1进入Uboot界面了,后续升级或者重新刷入系统可以在这里操作。

设置openwrt系统
刚进系统是没有密码的,先设置一个密码

这是最简单的办法,直接在你截图所在的界面操作即可。
进入管理页面 在顶部的菜单栏中,点击 System (系统),然后在下拉菜单中选择 Administration (管理权)。
输入新密码 在打开的页面中,你会看到
Router Password(路由器密码) 这一栏。Password: 输入你想设置的密码。
Confirmation: 再次输入相同的密码。
保存设置 滚动到页面最底部,点击 Save & Apply (保存 & 应用) 按钮。
注意: 保存后,黄色的警告横幅应该会消失。下次登录或使用 SSH 连接时,用户名为
root,密码为你刚才设置的密码。
进入无线模块选定信道点击添加,添加局域网


第一步:开始设置无线wan口选定信道
radio0是2.4G,radio1是5G信道,考虑到校园网速度跑的并不快,所以可以使用5G即作为WAN口,也作为LAN口,点击扫描后
Network -> Wireless。
你会看到无线列表界面,找到你想用来连接上级路由的频段(建议用 5G,也就是
radio1,速度快)。
第二步:扫描上级信号(先关闭当前信道的其他局域网)
在对应的频段(如
Generic MAC80211 802.11ax/ac/n (radio1))旁边,点击 Scan(扫描) 按钮。在弹出的列表中,找到你要连接的那个 Wi-Fi(上级路由的 SSID)。
点击右侧的 Join Network(加入网络)。

第三步:关键配置(这是最重要的一步)
点击加入后,会弹出一个配置浮窗,请务必修改以下两项:
WPA Passphrase:填入上级 Wi-Fi 的密码。
Name of the new network:保持默认或填
wwan。Assign firewall-zone(防火墙区域):
这里一定要选
wan(红色)。解释:这是实现你“保持局域网独立性”的核心。选了
wan,OpenWrt 才会启动 NAT 防火墙隔离,把这个 Wi-Fi 当作宽带入口。如果你选了lan,就会变成桥接中继。
第四步:保存并确认
点击 Submit。
系统会自动带你回到无线配置详情页,此时你会发现
Mode变成了 Client。点击页面底部的 Save & Apply。

结果验证
配置完成后,回到 Network -> Wireless 页面,你应该能看到 radio1 下面现在有了两个接口:
Master:
YanChang-WIFI-5G(你图里的这个,发射信号给你手机用)。Client: 连接着上级 Wi-Fi (作为 WAN 口接收网络)。
注意:
当同一个 5G 频段既做 Master 又做 Client 时,无线速度会减半(因为要分时复用)。
如果你想追求极速,且上级路由信号够强,可以考虑用 2.4G 去连上级路由(Client),保留 5G 纯粹给自己用(Master);或者反过来。
校园网认证
但是此时手机和其他设备连接路由器后还是无法触发校园网认证的,因此还是需要进一步的设置
修改TTL(可选,有很大可能与此无关)
虽然学校看不到MAC 地址无法通过MAC地址确定是使用路由器,但他们可以通过 TTL (Time To Live) 发现在用路由器从而拒绝。
原理:
Windows 发出的数据包默认 TTL = 128。
经过路由器转发后,TTL 会减 1,变成 127。
学校服务器一看:“哎?这有个 TTL 127 的包,说明这并不是直接连的电脑,而是经过了一层路由!” -> 检测到共享上网。
破解方法 (OpenWrt 神技): 我们可以强制路由器把所有发出去的包,TTL 都改回 64 或 128,假装自己就是源头。
操作步骤:
在 OpenWrt 菜单,找到 Network -> Firewall (防火墙)。
点击 Custom Rules (自定义规则) 选项卡。
在编辑框的最下面,复制粘贴这行代码(这是一行通用的防检测代码):
# 强制修改 TTL 为 64 (防检测)
iptables -t mangle -I POSTROUTING -o wlan0 -j TTL --ttl-set 64
注意:
wlan0是你连接学校 WiFi 的那个接口名。如果不确定,可以去 Interfaces 页面看 WWAN 对应的物理接口是wlan0还是wlan1。或者直接用下面这行万能通用版(对所有接口生效):
iptables -t mangle -I POSTROUTING -j TTL --ttl-set 64
点击右下角的 Restart Firewall (重启防火墙)。

但是此时依旧是无法进入校园网的认证界面

下一步开始修复DNS问题
从图来看:
HTTP 502 Bad Gateway:这意味着浏览器已经解析出了 IP,并且连上了一个服务器(网关),但是这个服务器无法正常把网页内容传给你。
IP 地址获取正常:
172.27.12.177,DNS 也是学校的202.115.128.33。
这通常是因为校园网的认证页面(abc.cdut.edu.cn)解析出来的 IP 是一个局域网/内网 IP,而 OpenWrt 默认开启了一项叫 “DNS 重绑定保护 (DNS Rebinding Protection)” 的安全功能,它会拦截这种解析,或者导致连接异常。
请尝试以下步骤,能立刻解决问题:
第一步:关闭 DNS 重绑定保护 (最关键的一步)
登录 OpenWrt 后台。
点击顶部菜单 Network (网络) -> DHCP and DNS.
在 General Settings (常规设置) 页面中,找到 Rebind protection (重绑定保护)。
取消勾选 这个选项(去掉钩)。
点击页面底部的 Save & Apply (保存并应用)。
第二步:强制刷新 DNS 缓存并重试
修改完配置后,之前的错误缓存可能还在。
断开 电脑/手机 WiFi,然后重新连接。
不要直接刷新那个 502 的页面,另开一个标签页输入认证的地址进入

此时就可以愉快的玩耍了。