Redmi AC2100刷写Openwrt教程

前言

  此教程的书写基于 Redmi AC2100 路由器,并不保证其他路由器可用。推荐使用 Windows 10/11 系统。理论上对其他型号路由器也通用,不过需要改一下固件的型号。本教程参考了多位前辈的文档与教程。

注意事项:

  1、进行教程操作前,请尽量使用网线与路由器连接,否则可能无法进行部分操作。正常情况是无需设置电脑防火墙和关闭杀毒软件的,但保险起见还是关闭防火墙和杀毒软件,不然刷成砖就后悔了!

  2、教程中涉及文件存储和操作的所有路径和命令,请保证为全英文路径和命令(不得使用中文字符),使用中文路径可能出现未知错误,导致刷机失败!

教程

一.开启SSH

  利用官方固件的漏洞,通过Web注入漏洞开启SSH实现刷机,更换至漏洞官方固件版本,降级只需用官方更新方法手动刷入即可。

1.下载固件

  有漏洞固件版本为:AC2100 2.0.7*版本

  官方下载链接:

  红米RM2100:点我下载

  小米R2100:点我下载

  其中 miwifi_rm2100开头的是红米的,miwifi_r2100开头的是小米的。

2.漏洞注入

  降级到漏洞版本后,通过下面web命令开启SSH。

  在浏览器中使用管理密码登录路由器管理页面(192.168.31.1),登录后地址栏链接应为:

1
http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/web/home#router

  这里的关键是****号,每台机器不同,甚至每次登录都不同,拷贝下来备用。

  在浏览器地址栏中输入以下链接代码,注意替换掉部分为上面拷贝的:

1
http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=-h%3B%20nvram%20set%20ssh_en%3D1%3B%20nvram%20commit%3B%20sed%20-i%20's%2Fchannel%3D.*%2Fchannel%3D%5C%22debug%5C%22%2Fg'%20%2Fetc%2Finit.d%2Fdropbear%3B%20%2Fetc%2Finit.d%2Fdropbear%20start%3B

  返回{“code”:0}即代表成功,其实成不成功都会返回这个:)注意传参顺序及指令前后都要有一个分号,即%3B

  如果返回401错误,原因可能是版本不正确或者值错误或者链接输入不完整等,提示404错误,说明输入地址错误,请检查固件版本或链接地址…

  建议一键注入后需等待一些时间,保证路由器后台能正确处理注入信息后再重启。

  重启即可开启SSH,root密码请自行根据SN计算;不想计算的或不知道怎么计算的,可以看下一步。

3.更改管理员root密码 (可跳过)

  执行下面的代码改密码为admin,在浏览器地址栏中输入以下链接代码,注意替换掉部分。(有时stok值会发生改变,建议重新返回第3步骤复制最新的stok值)

1
http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=-h%3B%20echo%20-e%20'admin%5Cnadmin'%20%7C%20passwd%20root%3B

二.刷写Breed

  Breed 是一个由 hackpascal 大神自写的与 U-Boot 同级的 Bootloader。Breed 可以使你方便的更换其他的固件,因为 Reset 不会重置 Breed 而会重置固件,因此如果你想把 Openwrt 换成 Padavan,那么只需要 Reset 一下,在 Breed 重刷一下固件就可以了!

  首先我们下载一下适用于 Redmi AC2100Breed点此下载

  然后打开cmd 。输入:

1
ssh [email protected]

  然后输入 admin ,回车。不出意外的话,我们就成功使用 ssh 登录了路由器中的系统。

1.本地刷入Breed

  按 Ctrl + D 退出登录,输入:

1
scp /path-to-breed [email protected]:/tmp

  这里的 /path-to-breed 代表的是上面下载的 Breed 的路径,例如 D:\Downloads\breed-mt7621-xiaomi-r3g.bin ,这条命令即将下载的 Breed 传输到了路由器的 /tmp 目录中。

  接下来我们按上述过程重新登录路由器后,输入:

1
cd /tmp

  进入路由器中的 /tmp 目录,接下来运行:

1
mtd -r write breed-mt7621-xiaomi-r3g.bin Bootloader

2.在线刷Breed

  输入下面联网刷Breed (r3gbreed通用红米AC2100):

1
cd /tmp && wget https://breed.hackpascal.net/breed-mt7621-xiaomi-r3g.bin && mtd -r write breed-mt7621-xiaomi-r3g.bin Bootloader

  备用地址:

1
cd /tmp && wget http://3322d.f3322.net:16999/other/breed/breed-mt7621-xiaomi-r3g.bin && mtd -r write breed-mt7621-xiaomi-r3g.bin Bootloader

  刷入完成,然后等待路由器重启(当电脑获取到ip或者路由只有一个蓝灯亮时,breed引导官方固件成功)。为防止变砖,强烈建议等待5分钟后拔电,用牙签按住reset键再插电,等蓝灯闪烁,松开reset键,浏览器访问192.168.1.1即可进入breedweb界面。

  更改环境变量,编缉,新增字段xiaomi.r3g.bootfw,值设置为 2,然后保存。

Breed环境变量修改界面


三.从 breed 刷写固件

  首先是下载我们需要的固件,下面推荐几个。也可到恩山论坛自行选择。

  Padavan(HIBOY)固件:点此下载

  Openwrt(Heroes233):点此下载

  Openwrt(官方):点此下载

1.从breed刷入Openwrt底包

从Breed刷入OpenWrt底包界面

2.从底包的临时web通过升级的方式刷入openwrt固件

  对应的菜单是System -> Backup / Flash Firmware),点击 Flash image… 上传想刷的Openwrt固件

Breed固件升级Flash image页面

Breed固件上传确认页面

Breed固件刷写进度页面

  不要勾选 Keep settings and retain the current configuration,最后点Continue,等几分钟让路由器自己重启。进入新固件。


四.Openwrt配置

1.配置 IPv4 网络

  首先将网线与路由器的 WAN 口连接。

  我们打开 网络 中的 接口 ,然后编辑 WAN 口信息,将协议切换为 PPPoE ,填写用户名和密码,其他一般不用管,直接保存即可。

2.设置路由器定时重启

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# * * * * *  command to execute
# │ │ │ │ │
# │ │ │ │ │
# │ │ │ │ └───── 一周内的天数 (0 - 6) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0)
# │ │ │ └────────── 月 (1 - 12)
# │ │ └─────────────── 天 (1 - 31)
# │ └──────────────────── 小时 (0 - 23)
# └───────────────────────── min (0 - 59)


配置入下: 周一至周五
凌晨1.30关闭无线,要睡觉了。睡觉避免辐射
早上7点打开无线,手机要离线下载新闻,上班路上看
早上9点关闭无线
下午16点开启无线等待楼主下班回家
周六至周日
凌晨2点关闭无线睡觉
早上7点开启无线至第二天凌晨2

30 1 * * 1-5 /etc/wifioff.sh
0 7 * * 1-5 /etc/wifion.sh
0 9 * * 1-5 /etc/wifioff.sh
0 16 * * 1-5 /etc/wifion.sh
0 2 * * 6,0 /etc/wifioff.sh
0 7 * * 6,0 /etc/wifion.sh

3.定时关闭WIFI

  周一至周五的每天早上7:30关闭WIFI:

1
30 7 * * 1-5 wifi down

  周一至周五的每天早上7:30打开WIFI:

1
35 7 * * 1-5 wifi up

  每天下午18:00关闭WIFI,9号、19号、29号除外:

1
0 18 1-8,10-18,20-31 * * wifi down

OpenWrt定时关闭WIFI配置

4.Adguard home 详细配置

  安装教程已经很多了,在这里就不多说了。只强调一点,ipk安装完成以后,可能会出现无法更新内核的问题。此时需要注释掉防火墙内的默认的DNS解析优先端口。

  注释掉这两条规则,注释之后为:

1
2
#iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53
#iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53

5.打开”服务 – AdGuard Home”

  • 更新核心版本,如不能更新可下载内核自行更新

  • 用 WinSCP 打开路由器,将内核放到 /usr/bin/AdGuardHome 路径下!

  • 刷新浏览器即可看到 核心版本

  勾选启用,将重定向设置为 作为 dnsmasq 的上游服务器

AdGuard Home重定向设置页面

5.AdGuard Home 页面设置

  1.点击 AdGuardHome Web:3000 跳转 AdGuard Home 管理页面

AdGuard Home管理页面入口

  网页管理界面 - 监听接口 - 端口默认为 80,随意设置,只要没被占用即可。

  DNS 服务器 - 监听接口 - 端口默认为 53,随意设置,只要没被占用即可。

AdGuard Home监听接口设置

  设置登陆 AdGuard Home 管理页面的用户名和密码

AdGuard Home管理员账号设置

  以上设置完成,直接下一步即可

AdGuard Home初始化完成页面

  打开 设置–常规设置 如图设置!(记得保存)

AdGuard Home常规设置页面

  打开 设置–DNS 设置

  • 上游 DNS 服务器,第一个 IP 设置成你的运营商 DNS,后面 3 个可以如图填写!

  • Bootstrap DNS 服务器,设置成你的运营商 DNS!

  • DNS 服务设定,速度限制 填写 0 为不限制!

  • 除了 202.98.192.67 替换成你的运营商 DNS,其他看图设置即可

    AdGuard Home上游DNS服务器设置

  打开 过滤器–DNS 封锁

  • 添加阻止列表并启用

  • 提供几个比较好用的规则

  anti-AD

  halflife

  Easylist

  Easylistchina

AdGuard Home过滤器DNS封锁列表


五.路由器指示灯状态说明

  1.蓝灯长亮:工作正常

  2.蓝灯闪烁:刷机成功(需要断电重启,注意路由断电后请等待10s以上再通电)

  3.橙灯长亮:正在启动

  4.橙灯闪烁:进入刷机流程或系统升级中(该过程不要断电)

  5.红灯长亮:系统故障

  6.红灯闪烁:刷机失败