前言

​ 此教程的书写基于 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),登录后地址栏链接应为:

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

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

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

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值)

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 。输入:

ssh [email protected]

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

1.本地刷入Breed

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

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

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

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

cd /tmp

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

mtd -r write breed-mt7621-xiaomi-r3g.bin Bootloader
2.在线刷Breed

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

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

​ 备用地址:

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 刷写固件

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

Padavan(HIBOY)固件:点此下载

Openwrt(Heroes233):点此下载

Openwrt(官方):点此下载

1.从breed刷入Openwrt底包

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

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

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


四.Openwrt配置

1.配置 IPv4 网络

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

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

2.设置路由器定时重启
# * * * * *  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:

30 7 * * 1-5 wifi down

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

35 7 * * 1-5 wifi up

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

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

4.Adguard home 详细配置

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

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

#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 的上游服务器

5.AdGuard Home 页面设置

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

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

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

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

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

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

打开 设置–DNS 设置

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

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

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

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

打开 过滤器–DNS 封锁

  • 添加阻止列表并启用

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

anti-AD

halflife

Easylist

Easylistchina


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

1.蓝灯长亮:工作正常

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

3.橙灯长亮:正在启动

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

5.红灯长亮:系统故障

6.红灯闪烁:刷机失败