今天闲来无事,终于在家里的小米路由器上刷入了OpenWRT,遂记录一下过程。
目录
Openwrt是什么想必无需多言,有了它我们可以更好的玩转路由器。
参考教程:https://supes.top/红米-小米-ac2100-刷breed和openwrt教程/
刷前准备
如果你有一台带网口的电脑和一根网线,那使用网线将电脑和路由器连接即可。
如果你的电脑没有网口,或者你没有网线,那可以使用双路由器方案。相信很多人家里都是:互联网-光猫-路由器-终端 的配置。而现在光猫很多都有路由器功能。我们可以把光猫的WIFI开关打开,以实现登录breed的功能。
下载小米漏洞包,刷入breed
教程参考地址:https://www.right.com.cn/forum/thread-4066963-1-1.html
其实看上面的教程就能看懂,我在此简单说说。
先下载有漏洞的固件:http://cdn.cnbj1.fds.api.mi-img.com/xiaoqiang/rom/r2100/miwifi_r2100_firmware_4b519_2.0.722.bin
下载完成后进入后台 192.168.31.1->常用设置->系统状态->手动升级
加载固件,可以保留数据 -> 开始升级
进入后台192.168.31.1,复制自己的stok,将stok替换下面的CCCC:
http://192.168.31.1/cgi-bin/luci/;stok=CCCCCCCCCCC/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=%0A%5B%20-z%20%22%24(dmesg%20%7C%20grep%20ESMT)%22%20%5D%20%26%26%20B%3D%22Toshiba%22%20%7C%7C%20B%3D%22ESMT%22%0Auci%20set%20wireless.%24(uci%20show%20wireless%20%7C%20awk%20-F%20'.'%20'%2Fwl1%2F%20%7Bprint%20%242%7D').ssid%3D%22%24B%20%24(dmesg%20%7C%20awk%20'%2FBad%2F%20%7Bprint%20%245%7D')%22%0A%2Fetc%2Finit.d%2Fnetwork%20restart%0A
此代码是用来检查NAND坏块的。路由器开机超过一小时建议先重启。运行代码后,你路由器的2.4g WiFi名称会改名成:比如 “ESMT”,”Toshiba”,”Toshiba 90 768”。 90和768是坏块。 如果ESMT或者Toshiba后面没数字,那恭喜你,没有坏块!!!
http://192.168.31.1/cgi-bin/luci/;stok=CCCCCCCCCCC/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=%0Acd%20%2Ftmp%0Acurl%20-o%20B%20-O%20https%3A%2F%2Fbreed.hackpascal.net%2Fr1286%2520%255b2020-10-09%255d%2Fbreed-mt7621-xiaomi-r3g.bin%20-k%20-g%0A%5B%20-z%20%22%24(sha256sum%20B%20%7C%20grep%20242d42eb5f5aaa67ddc9c1baf1acdf58d289e3f792adfdd77b589b9dc71eff85)%22%20%5D%20%7C%7C%20mtd%20-r%20write%20B%20Bootloader%0A
此代码是用来刷BREED的。如果路由器在60秒内重启则代表刷BREED成功(灯会从蓝变橘,最终变蓝进入系统)。
如果没重启,可能是stok过期了。进入后台复制新的stok即可。也有可能下载的BREED损坏,从新运行代码。也有可能没网络。
成功后拔掉电源,按住reset同时接上电源等10秒即可进入breed。需要注意的是如果闪蓝灯那就是BREED。如果是闪橘灯那就是原厂UBOOT。
⚠️如果是没有用网线连接路由器的话,breed是不会有无线连接的,这时候就需要另一台路由器(比如光猫)了。
教程地址:https://www.right.com.cn/forum/thread-1146483-1-1.html简单来说,先将路由器wan口的先拔出,插在lan口上,然后,因为天翼网关默认是192.168.1.1,而breed也是192.168.1.1,会冲突,所以要进天翼网关更改网段,我改成了192.168.0. *。改了后,在电脑控制面板更改电脑IP地址为手动获取,然后填入IP:192.168.1.2,掩码:255.255.255.0,网关192.168.1.1。之后访问192.168.1.1即可进入breed控制界面。
最后用进入浏览器,最好是隐身模式,输入192.168.1.1 进入breed管理界面
刷完后可能无法进入原厂系统,进BREED删变量:normal_firmware_md5
在breed刷入OPENWRT KERNEL 底包
跟着文章顶部的教程走,点击 环境变量编辑 点 添加, 字段 输入 xiaomi.r3g.bootfw 值 输入 2 , 点击 保存
然后刷入底包:
底包下载地址:https://supes.top/?version=22.03&target=ramips%2Fmt7621&id=xiaomi_redmi-router-ac2100 (可能会有变化,可以在网址里找找),第一个是升级包,第二个才是底包。
刷入OPENWRT 正式固件
路由器会自动重启, 等蓝灯常亮后 浏览器 输入 10.0.0.1 进入OpenWrt底包后台,如果是无线,此时openwrt已经自动有了WiFi,可以断开和另外一台路由器的连接转而连接AC2100了。默认密码为root。
选择好升级包后,选择不保留配置,刷入,等待路由器自动重启完成,蓝灯常亮后,会自动跳转到后台登录界面, 或手动输入后台地址 10.0.0.1
登录后台, 默认密码 root,进入后会有引导,一般只需要修改WiFi名和密码。
之后一定要去系统→管理权 中修改root密码!!!!
后续的一些操作
内网主机不可达问题
奇怪的问题:内网主机不可达,ping显示没有路径,我想难道是没有路由表?所以我在网络→路由→静态ipv4路由里加了一条,重启后就恢复正常了!
安装证书(可选)
因为家里有公网IP,所以我将openwrt面板映射到了外部,安全起见,开启HTTPS证书。
因为OW使用的uhttpd,我的域名在cloudflare上,所以以此为例。
进入ssh,在系统→管理权处开启
安装acme.sh
curl https://get.acme.sh | sh
安装好后,cd /root/.acme.sh
进入目录,
export CF_Key="cloudflare中查看你的APIkey"
export CF_Email="你的邮箱"
./acme.sh --issue --dns dns_cf -d 你的域名
可能会执行失败,按照提示对邮箱进行注册即可。
安装证书并重启uhttpd
在申请好证书后,还需要把证书安装到指定的位置:
./acme.sh --installcert -d 你的域名 --keypath /etc/uhttpd.key --fullchainpath /etc/uhttpd.crt --reloadcmd "/etc/init.d/uhttpd restart"