惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
WordPress大学
WordPress大学
博客园 - 【当耐特】
Engineering at Meta
Engineering at Meta
IT之家
IT之家
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
美团技术团队
S
SegmentFault 最新的问题
The GitHub Blog
The GitHub Blog
Martin Fowler
Martin Fowler
Recorded Future
Recorded Future
H
Help Net Security
aimingoo的专栏
aimingoo的专栏
Y
Y Combinator Blog
博客园_首页
A
About on SuperTechFans
MongoDB | Blog
MongoDB | Blog
阮一峰的网络日志
阮一峰的网络日志
V
Visual Studio Blog
D
DataBreaches.Net
人人都是产品经理
人人都是产品经理
大猫的无限游戏
大猫的无限游戏
B
Blog
The Register - Security
The Register - Security
I
InfoQ
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
雷峰网
雷峰网
Last Week in AI
Last Week in AI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
Blog — PlanetScale
Blog — PlanetScale
N
Netflix TechBlog - Medium
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
有赞技术团队
有赞技术团队
Stack Overflow Blog
Stack Overflow Blog
Jina AI
Jina AI
Security Archives - TechRepublic
Security Archives - TechRepublic
Hacker News - Newest:
Hacker News - Newest: "LLM"
U
Unit 42
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
W
WeLiveSecurity
Latest news
Latest news
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
博客园 - 叶小钗
L
Lohrmann on Cybersecurity
博客园 - Franky
Recent Commits to openclaw:main
Recent Commits to openclaw:main
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO

竹林里有冰的博客

Nuxt SSG 博客的尾斜杠到底怎么加? | 竹林里有冰的博客 小米 Xiaomi Book Pro 14 (Ultra X7) Linux 兼容性实测 | 竹林里有冰的博客 国内(大陆)版小米 FCM 熄屏断连:Rootless 环境下的尝试与可能的解决方案 | 竹林里有冰的博客 我没法访问 dl.google.com —— 记一次 TUN 下的网络 debug | 竹林里有冰的博客 Vercel 的缓存控制,你注意过吗? | 竹林里有冰的博客 小记 —— Caddy 在 Layer 4 上的流量代理实践 | 竹林里有冰的博客 你的域名后缀拖慢你的网站速度了嘛?——再谈 DNS 冷启动 | 竹林里有冰的博客 DNS 冷启动:小型站点的“西西弗斯之石” | 竹林里有冰的博客 HTTP/2 Server Push 已事实性“死亡”,我很怀念它 | 竹林里有冰的博客 Nuxt Content v3 中数组字段的筛选困境与性能优化 | 竹林里有冰的博客 后 OCSP 时代,浏览器如何应对证书吊销新挑战 | 竹林里有冰的博客 初试 Github Action Self-hosted Runner,想说爱你不容易 | 竹林里有冰的博客 DNS 解析延迟毁了我的图床优化 | 竹林里有冰的博客 Vue Markdown 渲染优化实战(下):告别 DOM 操作,拥抱 AST 与函数式渲染 | 竹林里有冰的博客 Vue Markdown 渲染优化实战(上):从暴力刷新、分块更新到 Morphdom 的华丽变身 | 竹林里有冰的博客 node-sass 迁移至 dart-sass 踩坑实录 | 竹林里有冰的博客 前端中的量子力学——一打开 F12 就消失的 Bug | 竹林里有冰的博客 2025 年,如何为 web 页面上展示的视频选择合适的压缩算法? | 竹林里有冰的博客 el-image 和 el-table 怎么就打架了?Stacking Context 是什么? | 竹林里有冰的博客 2025年,前端如何使用 JS 将文本复制到剪切板? | 竹林里有冰的博客 ssh 拯救世界——通过 ssh 隧道在内网服务器执行 APT 更新 | 竹林里有冰的博客 Cudy TR3000 吃鹅(daed)记 | 竹林里有冰的博客 使用 Cloudflare Workers 监控 Fedora Copr 构建状态 | 竹林里有冰的博客 基于 Cloudflare Workers 实现的在线服务状态检测告警系统 | 竹林里有冰的博客 构建部署在 Cloudflare Workers 上的 TG Bot | 竹林里有冰的博客 2024年,Firefox 是唯一还在坚持执行在线的 SSL 证书吊销状态检查的主流浏览器 | 竹林里有冰的博客 小爱课程表适配不完全指北——以 ZJUT 本科正方教务系统为例 | 竹林里有冰的博客 将博客从 waline v2 更新到 waline v3 | 竹林里有冰的博客 给家里云装上 Fedora 41 KDE 后,我是如何配置的 | 竹林里有冰的博客 为 Hexo 添加 follow 认证 | 竹林里有冰的博客 使用 GPT 对 waline 的评论进行审查 | 竹林里有冰的博客 基于 JavaScript 的 Hexo Fluid 主题 banner 随机背景图实现 | 竹林里有冰的博客 使用向日葵智能插座 C2 用电记录推算宿舍上次烧水时间 | 竹林里有冰的博客 使用 Caddy 反向代理 dockerhub 需要几步? | 竹林里有冰的博客 将 Rustdesk 中继服务从 Arch Linux 迁移至 Debian | 竹林里有冰的博客 自建图床小记五——费用 | 竹林里有冰的博客 自建图床小记四——上传脚本编写与图片迁移 | 竹林里有冰的博客 自建图床小记三—— SSL 证书的自动更新与部署 | 竹林里有冰的博客 自建图床小记二——使用 Workers 为 R2 构建 Restful API | 竹林里有冰的博客 自建图床小记一——图床架构与 DNS 解析 | 竹林里有冰的博客 在 Linux 下使用 mitmproxy 抓取安卓手机上的 HTTPS 流量 | 竹林里有冰的博客 为中柏 N100 小主机开启来电自启 | 竹林里有冰的博客 我的博客被完整地反向代理,并自动翻译成了繁体中文 | 竹林里有冰的博客 尝试体验 Fedora COPR 中的 allow SSH 功能 | 竹林里有冰的博客 在 Arch Linux 下配置使用 HP Laser 103w 打印机无线打印 | 竹林里有冰的博客 使用动态公网 ip + ddns 实现 rustdesk 的 ip 直连 | 竹林里有冰的博客 使用 Windows 虚拟机运行虚拟专用网客户端为 Linux 提供内网环境 | 竹林里有冰的博客 以 Archlinux 中 makepkg 的方式打开 rpmbuild | 竹林里有冰的博客 使用 Github Action 更新用于 rpm 打包的 spec 文件 | 竹林里有冰的博客 使用 Python 生成甘特图(Gantt Chart) | 竹林里有冰的博客 uniapp 中的图片预加载 | 竹林里有冰的博客 小记 - 尝试拼凑出 apt 仓库中的 deb 包下载地址 | 竹林里有冰的博客 在 Linux 下使用 mitmproxy 抓取 HTTPS 流量 | 竹林里有冰的博客 如何使用 docker 部署 onemanager | 竹林里有冰的博客 crontab 中简单的@语法糖 | 竹林里有冰的博客 备份 umami 数据库,并使用 TG Bot 保存 dump 文件 | 竹林里有冰的博客 在 JavaScript 中,箭头函数中的 this 指针到底指向哪里? | 竹林里有冰的博客 结合 Vue.js 与 php 完成的 web 期末大作业,讲讲前后端分离站点开发与部署中可能遇到的 CORS 跨域问题 | 竹林里有冰的博客 vuejs、php、caddy 与 docker —— web 期末大作业上云部署 | 竹林里有冰的博客 【翻译】使用 PHP 构建简单的 REST API | 竹林里有冰的博客 在 Hexo Fluid 主题中使用霞鹜文楷 | 竹林里有冰的博客 【翻译】GLWTPL——祝你好运开源许可证 | 竹林里有冰的博客 通过巴法云将向日葵智能插座接入米家,实现小爱同学远程控制 | 竹林里有冰的博客 使用 Root 后的安卓手机获取向日葵智能插座 C2 的开关 api | 竹林里有冰的博客 创建 b23.tv 追踪参数移除 bot | 竹林里有冰的博客 jinja2 中如何优雅地实现换行 | 竹林里有冰的博客 手动指定 python-selenium 的 driver path 以解决在中国大陆网络环境下启动卡住的问题 | 竹林里有冰的博客 从零开始的静态网页部署(到个人云服务器) | 竹林里有冰的博客 在运行OpenWRT的N1盒子上部署 QQBot | 竹林里有冰的博客 在浙工大宿舍使用路由器连接移动网络(校园网) | 竹林里有冰的博客 Azure 教育订阅申请时遇到的麻烦 | 竹林里有冰的博客 执行 repo sync 后将 git-lfs 中的资源文件 checkout | 竹林里有冰的博客 隐式转发——骚套路建站方案 | 竹林里有冰的博客 在 vps 上配合 caddy 部署 siteproxy | 竹林里有冰的博客 onedrive(by abraunegg) —— 一个 Linux 下的开源 OneDrive 客户端(cli) | 竹林里有冰的博客 【翻译】关于2022年11月的事件的一些话[Z-Library] | 竹林里有冰的博客 【已过期】使用 vercel+supabase 免费部署 umami | 竹林里有冰的博客 我的博客部署方案 | 竹林里有冰的博客 使用 VirtScreen 将 Pad 作为副屏 | 竹林里有冰的博客 在 Archlinux 下使用 l2tp 协议连接校园网 | 竹林里有冰的博客 为 Element 添加自己喜欢的贴纸 | 竹林里有冰的博客 nodejs16:是我配不上 openssl 3 咯? | 竹林里有冰的博客 如何拯救失声的 hollywood | 竹林里有冰的博客 处理 fcitx5 的文字候选框在 tg 客户端上闪烁的问题 | 竹林里有冰的博客 使用caddy反向代理维基百科中文站点 | 竹林里有冰的博客 创建一个本地的 Fedora 镜像源 | 竹林里有冰的博客 好软推荐——FastOCR | 竹林里有冰的博客 抛弃PicGo,直接使用curl将图片上传到LskyPro | 竹林里有冰的博客 使用 Github Action 跑 rpmbuild | 竹林里有冰的博客 如何打出一个「-git」的rpm包 | 竹林里有冰的博客 雪藏在开源镜像站点中的那些常用却不为人知的软件 | 竹林里有冰的博客 在Fedora搭建jekyll环境——dnf module | 竹林里有冰的博客 pacman更新时遇到「GPGME 错误:无数据」 | 竹林里有冰的博客 PicUploader使用系列(二)——为KDE的dolphin添加右键快捷菜单 | 竹林里有冰的博客 PicUploader使用系列(一)——在Archlinux上使用Caddy部署PicUploader | 竹林里有冰的博客 使用AUR(Helper)安装软件时究竟发生了什么?对于常见的构建错误如何解决? | 竹林里有冰的博客 下载一份openharmony的源码 | 竹林里有冰的博客 在Windows与Linux双系统下共享蓝牙鼠标 | 竹林里有冰的博客 我在Archlinux上的常用软件 | 竹林里有冰的博客 安卓解包笔记 | 竹林里有冰的博客
为红米 Redmi AC2100 路由器刷入 Padavan | 竹林里有冰的博客
竹林里有冰 · 2023-06-24 · via 竹林里有冰的博客

大一一年转眼就要过去了,最近要搬校区了,顺手就把之前刷过的「小米路由器4A千兆版」出手给了同学,自己反手入了一个 「Redmi AC 2100」,尽管是跟着教程走,但过程中依然是遇见了不少坑,因此就开一篇博客记录了一下。

重置路由器#

这一步其实可有可无,只是我从闲鱼上入手这个路由器,买家并没有告知我密码,于是我只能手动 RESET 这个路由器来进入后台。

通过网络设置引导#

原本就是连上路由器后简单地通过引导界面,但由于我没有一个正常的网络环境,所以这一步走的其实也是有点困难的,我还是稍微记一下。

首先浏览器地址栏输入 192.168.31.1 (小米家的路由器默认好像都是这个 ip 地址),看到下图界面,加不加入用户改善计划其实都是无所谓的,反正马上就要刷掉这个系统了。

路由器设置引导界面路由器设置引导界面

此处选择「不插网线,继续配置」,因为我们没有标准的网络环境,还指望着这台路由器跑 l2tp 帮我们连校园网呢。

路由器设置引导界面路由器设置引导界面

这里需要选择「自动获取IP」(静态 IP)好像也行,但别的选项在我的网络环境下恐怕都是没法继续配置下去的。

路由器设置引导界面路由器设置引导界面

随后随手输个 WIFI 名称和密码,主要是记住密码进路由器后台管理。

路由器设置引导界面路由器设置引导界面

设置完上述设置项以后,再次进入 192.168.31.1 ,就能看见路由器后台管理的登陆页面了。

路由器后台管理首页路由器后台管理首页

获取 ssh 权限#

输入登陆密码,进入路由器后台管理页面,我们需要通过 bug 去获取打开官方系统的 ssh 功能

这里提一嘴,当初我刷小米路由器4A千兆版的时候用的是这个仓库来打开 ssh。

首先是确认路由器的版本,我从闲鱼上购得的路由器自带的版本是官方稳定版 2.0.23,一开始跟着别人的思路就降级到了 2.0.7,但后来遇见问题在网上查解决方案的时候看到有人说这个漏洞在 2.0.23 依然可用,但我也没有去试。

在电脑上下载 2.0.7 的升级包,在路由器设置界面的常用设置->系统状态->手动升级 选择自己下载的升级包,确认等待重启即可。有些教程说可以选择保留数据,但我也懒得试,就直接清除了所有数据,又不得不再次过一遍上面的配置引导。

在地址栏,删除 /web/home#router 部分,加入下面这串代码

/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

再次删除后面的代码,加入下面这串代码

/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=-h%3B%20echo%20-e%20'admin%5Cnadmin'%20%7C%20passwd%20root%3B

需要被去除的 url 部分需要被去除的 url 部分

被截剩的 url 部分被截剩的 url 部分

两次请求的正常反馈应该长成下面这个样子。

正常反馈正常反馈

此时应该就可以使用 ssh 访问路由器的 root 账户了,密码已经被改为了 admin

ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa root@192.168.31.1

登陆成功登陆成功

刷入 breed#

如果用我在安卓刷机的经验来讲 breed 是什么的话,我会把他类比成第三方 Recovery (TWRP)。这是一个能够帮助你去输入系统、备份系统的恢复模式。虽然我们可以直接刷入 padavan,但如果系统没有自带镜像刷写工具或者输入的系统打不开了,那可能就是一台路由器的报废,或许得靠编程器才能救回来。

首先,我们到 breed 下载站上下载 breed 的镜像: https://breed.hackpascal.net/

需要下载的 breed 镜像需要下载的 breed 镜像

随后,在电脑上这个存放了 breed 镜像的路径上开一个 http server,我这里选择的是 darkhttpd,Windows 或者 MacOS 用户可以选择使用 miniserve,他们呢起的是一样的效果,甚至可以使用 python 直接开一个 local server。

本地 http 服务本地 http 服务

接下来,通过自己电脑在路由器局域网内的那个 ip 地址并添加端口号在浏览器上访问你开的 http server,直接右键复制 breed 镜像的下载链接。

查看本机 ip查看本机 ip

复制下载链接复制下载链接

将 ssh 连接到的路由器终端 cd 到 /tmp 路径下,使用 wget 命令去下载你刚刚复制到的 url,这样我们就简单地将 breed 镜像传输到了路由器的内存上。再使用 mtd -r write breed-mt7621-xiaomi-r3g.bin Bootloader 刷入 breed,刷入成功后 ssh 将会自动断开连接,但并不会直接进入 breed。

Screenshot_20230623_203903.pngScreenshot_20230623_203903.png

我们需要先断开路由器的电源,使用一根针(比如取卡针)怼在 RESET 按钮上面,再次接通路由器的电源并持续按压 RESET 按钮几秒钟,浏览器这时就会进入 breed 状态,浏览器访问 192.168.1.1 就可以看到他的控制面板。

Breed Web 界面Breed Web 界面

在 Breed 中拥有很多的功能,不过我们用到的只是「固件更新」这一个功能,备份功能什么的可以自己尝试,这只是一个可选项。

首先去下载站下载适配 Redmi AC2100 的 Padavan 镜像: https://opt.cn2qq.com/padavan/

适配 Redmi AC2100 的 Padavan 镜像适配 Redmi AC2100 的 Padavan 镜像

然后在 Breed 的 web 端控制台直接选择 Padavan 的系统镜像进行固件更新

固件更新界面固件更新界面

确认后直接刷入

固件刷入中固件刷入中

自动重启后,Padavan 就刷入完成了。

Padavan 的默认 WIFI 名是 PDCN 和 PDCN_5G,WIFI 密码是 1234567890

Padavan 的默认 WIFIPadavan 的默认 WIFI

浏览器输入 192.168.123.1 就可以进入默认的后台管理页面,管理页面的用户名和密码都是 admin

Padavan 设置界面Padavan 设置界面

参考文章:

《小米/红米AC2100刷OpenWrt/Padavan/第三方固件的详细教程(2022年8月23日更新)》

《小米、红米 AC2100 一键开启 SSH,可自定义安装各种插件》

《解决SSH no matching host key type found 问题》