OpenWrt

义项:开源路由器固件操作系统
OpenWrt

OpenWrt 是面向嵌入式设备、尤其是无线路由器的开源 Linux 发行版。它不提供一份固定不变的固件,而是给出可写文件系统、软件包管理器和统一配置接口,用户可按需增删软件。它的前身是 2004 年基于 Linksys WRT54G 开源代码启动的项目,此后发展为路由器第三方固件中影响最广的一支,并被厂商与研究者广泛用作二次开发基础。

目录
  1. 定义
  2. 原理
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

OpenWrt 是一个针对嵌入式设备的 GNU/Linux 发行版,主要运行在无线路由器等网络设备上,用来替代厂商预装的原厂固件[1][2]。与出厂后难以更改的传统固件不同,它交付的是一套可写文件系统加软件包管理体系,系统组件可以单独装卸、单独升级[3]。

在功能层面,它不仅承担数据包转发,还内置域名解析、无线接入点与客户端模式、拨号协议等网络基础能力,并且这些能力都开放给使用者调整[4]。对开发者来说,它同时是一套无需重建整份固件就能开发应用的框架[1]。

原理

从层次上看,OpenWrt 由 Linux 内核、精简的 C 库与 BusyBox 等基础组件构成,全部经过裁剪以适应家用路由器有限的存储和内存;早期主要组合为 Linux、util-linux、musl 与 BusyBox[5]。内核之上是运行守护进程,procd 负责服务监管与看门狗,ubusd 提供进程间通信总线[6]。

配置集中由统一配置接口(UCI)管理,所有服务的设置以纯文本形式存放在 /etc/config/ 目录下,命令行工具 uci 和相应接口可以读写这些文件,脚本与应用不必各自解析不同格式的配置[7]。软件包管理器 opkg 从配置好的软件源安装、升级和卸载程序,固件镜像里可以预置软件包,也可以在运行时再装[7][6]。

文件系统的可写特性依靠叠加机制实现:只读的压缩镜像与可写的上层分区组合成统一视图,SquashFS 与 JFFS2 配合 OverlayFS,使设备出厂固件那种只读限制被打破[4]。管理界面 LuCI 用 Lua 编写,通过 ubus 与 UCI 访问系统,本身也是可安装、可移除的软件包[7][8]。


flowchart TD

A[硬件与 bootloader] --> B[Linux 内核]

B --> C[procd / ubusd / UCI 等用户态组件]

C --> D[opkg 软件包层]

D --> E[LuCI 网页界面]

F[只读 SquashFS] --> G[OverlayFS 可写叠加]

G --> C

发展历程

项目起点在 2004 年 1 月。最早的版本建立在 Linksys 为 WRT54G 系列路由器公开的 GPL 源码,以及 uclibc 项目 buildroot 的基础上,这一支被称为 stable 版[9]。源码公开的原因是该路由器固件使用了 GPL 许可的代码,厂商须依许可公开修改后的源代码,独立开发者由此获得改写固件的基础[5]。

2005 年初有新开发者加入,数月后发布第一个 experimental 版本,基本脱离 Linksys 代码,改用 buildroot2 构建并引入官方 Linux 内核源码,只补充片上系统与网卡驱动[9]。这一支后来以鸡尾酒命名,首个发行版名为 White Russian,此后 Kamikaze、Backfire、Attitude Adjustment、Barrier Breaker、Chaos Calmer 等版本延续了同样的命名习惯[5][10]。

2016 年,LEDE 作为与 OpenWrt 目标相近的分支项目出现;2018 年 1 月,两个项目商定统一以 OpenWrt 之名合并,并按 LEDE 时期确立的章程治理[2]。合并后的 18.06 是第一个统一版本[1]。2020 年 9 月,项目加入软件自由保护组织成为其成员项目[1]。

版本号自 21.02 起按年份与月份编排。22.03 将基于 iptables 的 firewall3 迁移到基于 nftables 的 firewall4[3]。24.10 于 2025 年 2 月发布首个稳定版,内核由 5.15 升至 6.6,支持设备超过 1970 款,并首次稳定支持项目参与设计的 OpenWrt One 路由器[11][12]。

应用

最常见的用途是替换家用路由器的原厂固件,把厂商只开放少量选项的设备变成可自由配置的网络节点,例如调整无线工作模式、设置流量控制或搭建虚拟专用网服务[4]。除路由器外,它也能运行在 CPE 设备、住宅网关、智能手机、掌上电脑乃至个人电脑与笔记本上[5]。

在产业侧,网络设备厂商会依照许可条款,以 OpenWrt 为基础进行二次开发,部分面向消费市场的智能路由器固件即由其派生并叠加私有组件[13]。研究团队也把它当作网络性能实验平台,实验结果往往先在 OpenWrt 上实现[1]。

社区还衍生出多个分支,例如早期基于其内核重写的 DD-WRT、面向 Broadcom 与 Atheros 设备的 Gargoyle、移除专有二进制文件的 libreCMC,以及面向 3G/4G 联网场景的 ROOter[13]。这些分支各自保留了 OpenWrt 的包管理与版本体系。

局限

硬件资源是最直接的约束。官方说明支持设备至少需 4MB 闪存,但此时无法安装图形界面;8MB 才够容纳界面和少量应用;运行内存建议不低于 32MB,64MB 更稳妥[14]。对于 4MB 闪存配 32MB 内存的机型,项目方明确表示资源不足以支撑安全可靠的运行,19.07 是这类设备最后一个官方版本[15]。

资源紧张还会带来连锁问题:系统本身占用较多闪存后,剩余空间难以再装软件包,内存不足时可能出现进程被杀、运行变慢或随机重启[16]。硬件并未被完整适配的机型,也可能出现无法启动、无线频段不可用等功能缺失,例如 24.10 版本中部分 ath10k 芯片设备的 5GHz 无线即无法工作[12]。

功能覆盖同样有边界。24.10 仅使用 opkg,APK 包格式尚未在该系列启用,只有主开发分支完成了切换[11]。Wi-Fi 7 虽已初步支持,但可用的 Wi-Fi 7 设备数量有限[12]。此外,旧版本内核与无线实现中存在已被公开的漏洞,社区不再为停止维护的版本提供支持[15]。

参见

  • Linux —— OpenWrt 的内核与运行基础,发行版整体建立在其之上。

  • LuCI —— OpenWrt 默认的网页管理界面,通过 ubus 与 UCI 配置系统。

  • DD-WRT —— 早期基于 OpenWrt 内核重写的第三方路由器固件分支。

  • LEDE —— 2016 年自 OpenWrt 分出的项目,2018 年与之合并。

  • 嵌入式系统 —— OpenWrt 所面向的设备形态与运行环境。

参考资料

  1. [OpenWrt Wiki] 欢迎访问 OpenWrt 项目 [引用日期2026-10-29]
  2. openwrt_introduce [引用日期2026-10-29]
  3. [OpenWrt Wiki] 欢迎访问 OpenWrt 项目 [引用日期2026-10-29]
  4. OpenWrt:一个开源的家用路由器固件替代品 | Linux 中国 [引用日期2026-10-29]
  5. OpenWrt [引用日期2026-10-29]
  6. Architecture [引用日期2026-10-29]
  7. Introduction [引用日期2026-10-29]
  8. [OpenWrt Wiki] Basic configuration [引用日期2026-10-29]
  9. OpenWrt Version History [引用日期2026-10-29]
  10. Differences [引用日期2026-10-29]
  11. Release v24.10.0 · openwrt/openwrt - Skip to content [引用日期2026-10-29]
  12. cnx-software.com 上的网页 [引用日期2026-10-29]
  13. [科普中国]-客制路由器固件清单 - 版权归原作者所有,如有侵权,请联系我们 [引用日期2026-10-29]
  14. [OpenWrt Wiki] Támogatott eszközök [引用日期2026-10-29]
  15. Differences [引用日期2026-10-29]
  16. techenclave.com 上的网页 [引用日期2026-10-29]
词条评价
词条统计

浏览次数:2 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-10-28T18:38:03Z

历史版本

本条目引用的词条
Linux LuCI DD-WRT LEDE 嵌入式系统