前言:想要通过IPV6访问家里的设备,又顾虑直接暴露的公网有安全风险,但是现在的路由器压根不支持IPV6防火墙。正好有台以前的红米AC2100,又正好看到这玩意能刷openwrt,就想着刷了玩玩。

环境:

  • Redmi AC2100 原固件是稳定版 2.0.23

  • OpenWrt用的是ImmortalWrt24.10.4,ImmortalWrt是针对国内的修改版本,接近原版,预设中文和国内源

用到的链接:

1. 开启路由器 SSH 功能

登录路由器管理页面,在地址栏中找到并复制 stok 值

http://192.168.31.1/cgi-bin/luci/;stok=这个位置的内容/web/home#router

用复制的 stok 值粘贴到下面的链接中,然后浏览器直接访问

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

修改root用户密码为admin以便登录 SSH

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

以上两个链接的页面有显示 {code:0} 则代表成功

2. 刷入 Breed 固件

此过程需要联网

使用ssh工具登录路由器ssh界面

成功登录会看到官方彩蛋

A U OK.png

进入 SSH 界面后执行以下命令

curl -o /tmp/breed.bin -O https://breed.hackpascal.net/breed-mt7621-xiaomi-r3g.bin -k
mtd -r write /tmp/breed.bin Bootloader

执行成功后,路由器断电,拔开 wan 接口的网线,避免 breed 固件的默认 IP 与光猫的 IP 冲突

按住reset键的同时接通电源,直到指示灯快速闪烁(这里注意不能先接通电源,再按reset键,不然就真重置了一开始不知道,搞了好几次都进不去breed后台😢

用网线连接带网口可浏览器上网的机器到路由器的 lan 接口,等待机器获取到 IP 后,浏览器进入 192.168.1.1 管理页面。

在环境变量编辑中添加字段为 xiaomi.r3g.bootfw 值为 2(这一步要设置环境变量,否则无法启动 openwrt )

3. 刷入系统固件

在 Breed 管理页面的固件更新中,闪存布局选 openwrt,上传对应的两个kernel1和rootfs0 文件,勾选自动重启,开始刷入

稍等一会,路由器自动重启后就完成了。