最近社区里有朋友栽了个跟头:照着教程刷完新固件,敲下熟悉的 `opkg update`,系统回他一句"command not found"。教程没过期,是 OpenWrt 自己变了。

今年上半年,OpenWrt 25.12 正式发布,内核同步大升级。哔哩哔哩最要命的变化是:用了十几年的包管理器 opkg,被换成了 apk(Alpine Package Keeper)。知乎命令变了、包格式变了、连软件源配置文件的位置都变了。
这篇不教你刷机,只把一件事说透:现在都 8 月了,25.12 到底熟没熟?刷还是不刷,升还是不升?三类人,答案不一样。看答案之前,可以先搞清楚自己路由器现在跑的是什么版本——刷官方固件的,LuCI 状态页上一目了然。

一、变了什么:不是换个版本号,是换掉肌肉记忆
25.12 最大的变化一句话:软件包格式从 .ipk 换成 .apk,装软件的命令从 opkg 换成 apk。
这事不是拍脑袋。早在 2024 年,OpenWrt 社区就为"IPK 换 APK"拉过一轮大讨论,B 站当时还有播放量两万多的科普视频专门讲这事。哔哩哔哩原因不复杂:opkg 太老,维护包袱越来越重;而 apk 来自以精简著称的 Alpine Linux,维护更活跃。酝酿两年,25.12 正式落地。
对普通刷机用户,这意味着四件事:
命令变了:`opkg install` 变 `apk add`,`opkg update` 变 `apk update`,你之前背下来的命令全部失效;
老教程失效:2026 年中之前的刷机教程,几乎清一色用 opkg 命令,照着在 25.12 上操作必然卡壳;
老安装包失效:之前下载囤好的 .ipk 包,25.12 上装不了,得重新找 .apk 版本;
软件源配置挪了地方:不再是你熟悉的那个 /etc/opkg/distfeeds.conf,想换源要看最新官方文档,别套老路径。
好消息是,LuCI 后台的图形化"软件"页面照常能用,受冲击的主要是命令行、脚本和教程。
二、谁真的受影响:先别自己吓自己
这波变化传开之后,其实有不少恐慌是多余的。对号入座,你属于哪一类:
直接受影响的:官方固件党。 刷的是官方 OpenWrt(包括固件选择器下载的固件),那 25.12 就是绕不开的一道坎。新机器到手刷进去就是 25.x,老教程得"翻译"着用。
间接受影响的:脚本党和自编译党。 手里有自动装插件的脚本、开机自启配置里带 opkg 的,全得改。自己编译固件的更麻烦:工具链和 CI 流程都有变化,一些老工具被标记为 legacy,nftables 相关组件和 SSTP 客户端还出过依赖冲突。哔哩哔哩
基本不受影响的:第三方固件党。 用 ImmortalWrt、iStoreOS、Lean’s LEDE 或者各路整合固件的,先不用焦虑。这些固件有自己的底包和更新节奏,官方发不发 25.12,你的固件不会一夜变天。等作者自己决定跟进 25.x 底包时,才会真正波及到你。

三、半年成绩单:大坑基本踩完,生态已经跟上
25.12 刚发布那会儿,社区主流声音是"先别动"。B 站一个 1.8 万播放的解读视频说得很有代表性:25.12 是"比较坎坷的中间版本",建议先留守 24.10,过几个小版本再升级。哔哩哔哩半年过去,回头盘一下,该踩的坑基本都踩完了:
已知 bug 有修复:早期暴露的 IPv6 NDP 中继问题(odhcpd),社区已经完成归因和修复,做 IPv6 中继的用户可以松口气。哔哩哔哩
教程开始迁移:5 月起,磊科 N30Pro 这类热门刷机机型的教程已经直接以 25.12 为目标版本。内存系统(RAM中运行openwrt)" data-highlight-text="传入openwrt-25.12-initramfs.itb">知乎
厂商开始跟进:启明智显的 ZX7987 CPE 直接宣布原生开源 OpenWrt 25.12 主线适配。知乎
插件生态跟上了:6 月,应用商店 iStore 宣布适配 25.12,支持 APK 架构和新的软件安装机制,图形化一键装插件照旧。哔哩哔哩FanchmWrt 等第三方固件也很早就跟进适配。哔哩哔哩
中文本地化在补课:刚发布时 LuCI 中文翻译有缺漏,属于持续改善项。
7 月时社区已经有人基于 25.12.5 编译,给老机型做"无损更新",小版本滚动成了常态。哔哩哔哩也就是说,当初"留守 24.10 等一等"的建议,现在正在失去适用性。
四、三类人,三个答案
第一类:准备刷新机器的——直接刷 25.12。 小版本滚了好几轮,主流生态已经对齐,没必要刻意回退旧版。只有一个动作要做:跟教程之前,先看它用的是不是 opkg 命令,是的话自己"翻译"一下,或者直接找新教程。
第二类:24.10 跑得稳定的——不急着升,但别当没这事。 24.10 现在还能用,可新教程、新插件的适配会越来越多地转向 25.x,一直不动的代价是信息差越拉越大。决定升级的话,先做三件事:① 查一遍开机脚本和自定义脚本里有没有 opkg 残留;② 用 IPv6 中继的,确认 odhcpd 的修复情况;③ 备份配置。另外升级后,之前装的软件包要重装,升级界面里的"备份已安装包列表"选项记得勾上。

第三类:第三方固件用户——跟着作者节奏走。 底包升不升 25.x,是固件作者的决定。你只需要盯两个信号:作者的新版本有没有宣布基于 25.x,以及升级说明里有没有要求重装插件——跨包管理器的大版本切换,插件通常都要重新装一遍。只要现在的固件稳定、作者没动,你就没必要动。
五、一张对照表,存好备用
升到 25.12 之后,最常用的命令变化如下(opkg → apk):
以前这么敲 | 现在这么敲 |
|---|---|
opkg update | apk update |
opkg install 包名 | apk add 包名 |
opkg remove 包名 | apk del 包名 |
opkg list-installed | apk info |
opkg upgrade | apk upgrade |
再提醒一句:软件源配置文件的位置也变了,换源之前查最新官方文档,别套老路径。
六、接下来盯什么
给几个值得持续关注的信号:小版本的滚动速度(越稳越敢升);ImmortalWrt、iStoreOS 这些主流第三方固件什么时候宣布 25.x 底包(这决定大多数人的迁移时机);以及 LuCI 中文本地化和常用插件的兼容补齐进度。
最后一句大实话:刷机的价值从来是"我的路由我做主",但前提是分得清哪些变化值得追、哪些坑可以绕。25.12 的 apk 切换,属于那种躲不掉的变化——早搞清楚,总比被它打个措手不及强。