OpenWrt
![]() | |
![]() OpenWrt 18.06.1 login screen | |
开发者 | OpenWrt Project |
---|---|
操作系统家族 | 类Unix系统 |
运作状态 | 支持中 |
源码模式 | 自由软件 、开源软件 |
首次发布 | 2004年 |
当前版本 |
|
支持的语言 | 22种语言[2] |
更新方式 | opkg |
软件包管理系统 | opkg |
支持平台 | 使用以下架构的50种不同平台:AVR32, ARM, CRIS, m68k, MIPS, PowerPC, SPARC, SuperH, Ubicom32, x86, x86-64[3] |
内核类别 | 宏内核(Linux) |
用户空间 | BusyBox、GNU |
默认用户界面 | 命令行界面、WebUI |
许可证 | 自由软件(GPL和其他许可证) |
官方网站 | |
仓库 |
相对原厂固件而言,OpenWrt不是一个单一、静态的固件,而是提供了一个可添加软件包的可写的文档系统。这使用户可以自由的选择应用进程和配置,而不必受设备提供商的限制,并且可以使用一些适合某方面应用的软件包来定制你的设备。对于开发者来说,OpenWrt是一个框架,开发者不必麻烦地构建整个固件就能得到想要的应用进程;对于用户来说,这意味着完全定制的能力,与以往不同的方式使用设备,OPKG包含超过3500个软件。 默认使用LuCI作为web交互界面。
OpenWrt另有一个复刻分支项目,名为LEDE,两者于2018年1月合并,合并后的项目使用OpenWrt的名字、LEDE的源代码。[4]
历史
2002年底Linksys公司推出WRT-54G,一款基于MIPS架构的无线路由器,使用802.11g标准使得带宽在理论上能够达到54M,在当时是一次巨大的进步。WRT-54G操作系统以Linux取代vXworks,哥伦比亚大学法学院教授Eben Moglen向Linksys提出开源要求。
2003年7月,Linksys迫于压力,开源了WRT54G的固件;2004年,Sveasoft公司发布了Alchemy。从此无线路由器进入了可以刷机的时代。
2004年1月出现所谓的OpenWRT,第一个版本是基于Linksys源码及uclibc中的buildroot项目。
2005年初,BrainSlayer发布了一个新的发行版:DD-WRT。接着又有HyperWRT。同年,OpenWRT开发小组释出第一个 “experimental” 版本,这版本跟Linksys的GPL源码已大相径庭,使用Linux内核源码2.4.3x,还使用了更模块化的buildroot2。
2007年,“White Russian” 版本发布[5]
2011年9月21日,juhosg接手OpenWrt,并释出了wr703n的官方源码。
2013年4月,OpenWrt 12.09 发布,Linux内核版号为3.3版。
由于WRT54G价格低廉,OpenWrt又开源免费,它在当时成为了学习嵌入式Linux的最佳平台。OpenWrt本身未带任何UI,需要通过LuCI,webif等各种延伸界面,LuCI界面是使用率最高的Web管理界面。
发布版本
版本[6][7] | 一般可用 | 内核 | 最新小版本 | 发布日期 | 产品寿命结束[8] | libc | 注解 |
---|---|---|---|---|---|---|---|
first Stable Release | 2004-01 | ? | 不适用 | 不适用 | 不适用 | uClibc | Based on Linksys GPL sources for WRT54G and a buildroot from the uClibc project |
0.9 (White Russian)[9][10] | 2007-02-05 | 2.4.30 | 不适用 | 不适用 | 不适用 | NVRAM-based, nas , wl . Supported platform: brcm-2.4 . | |
7.06 (Kamikaze)[11] | 2007-06-02 | 2.6.19 | 7.09 [12][13] | 2007-09-30 | Using opkg . Supported platforms: atheros-2.6 , au1000-2.6 , brcm-2.4 , brcm47xx-2.6 , ixp4xx-2.6 , imagicbox-2.6 , rb532-2.6 and x86-2.6 . | ||
8.09 (Kamikaze)[14] | 2009-02-19 | 2.6.26 | 8.09.2[15][16] | 2010-01-10 | New platform: ar71xx . | ||
10.03 (Backfire)[17] | 2010-04-07 | 2.6.32 | 10.03.1[18] | 2011-12-21 | Supported platforms: adm5120_mips , adm5120_mipsel , ar7 , ar71xx , atheros , au1000 , avr32 , brcm-2.4 , brcm47xx , brcm63xx , cobalt , ep80579 , ifxmips , ixp4xx , kirkwood , octeon , orion , ppc40x , ppc44x , rb532 , rdc , x86 and xburst . | ||
12.09 (Attitude Adjustment)[19] | 2013-04-25 | 3.3 | 不适用 | 不适用 | 不适用 | CoDel (network scheduler) backported from Linux 3.5 to 3.3. New platforms: ramips , bcm2708 (Raspberry Pi) and others. | |
14.07 (Barrier Breaker)[20] | 2014-10-02 | 3.10.49 | 不适用 | 不适用 | 不适用 | New platforms: i.MX23 , i.MX6 .[21] | |
15.05 (Chaos Calmer)[22] | 2015-09-11 | 3.18.20 | 15.05.1[23] | 2016-03-16 | 2016, March | nftables (available since Linux kernel 3.12); New platforms: TBA if any | |
17.01.0 (Reboot (OpenWrt/LEDE))[24] | 2017-02-22 | 4.4.50 | 17.01.7 | 2019-06-20 | 2019, June | musl[25] | There were only release notes for "OpenWrt/LEDE 17.01.7 - Seventh Service Release - June 2019" with a code revision "rTODO-2252731af4".[26] The official announcement of "OpenWrt/LEDE v17.01.7 service release" was never made in the OpenWrt Forum due to GPG signing certs issues.[27] |
18.06.0[28] | 2018-07-31 | 4.9.111 / 4.14.52 | 18.06.9 | 2020-12-09 | 2020, December | ||
19.07.0[29] | 2020-01-06 | 4.14.162 | 19.07.10 | 2022-04-20 | 2022, April | WPA3 support.[30] Flow offloading (beta).[31] | |
21.02.0[32] | 2021-09-04 | 5.4.143 | 21.02.7 | 2023-05-01 | 2023, May | WPA3, TLS and HTTPS support included by default, initial DSA support, LXC and ujail support [33] | |
22.03.0[34] | 2022-09-06 | 5.10.138 | 22.03.6 | 2023-12-05 | 2024, April | Firewall4 based on nftables, many new devices added, more targets converted to DSA, dark mode in LuCI, year 2038 problem handled, core components updated.[35] | |
23.05.0[36] | 2023-10-13 | 5.15.134 | 23.05.2 | 2023-11-16 | 2025, March | New devices added, ipq40xx target converted to DSA, default cryptographic library switched to mbedtls, core components updated.[37] | |
图例: 旧版本 旧版本,仍被支持 最新版本 |
特色
OpenWrt遵循着市集-哲学而且已知有着丰富的选项。功能如下:
- 可写的根目录,让用户自行添加,移除或修改任何文件。SquashFS与JFFS2文档系统的集成形成的overlayfs机制[38]形成重叠[39]。squashfs是一种只读的压缩文档系统,压缩率和gzip差不多。jffs2是一种日志类型的文档系统,专为NorFlash设计。
- 包管理员opkg,类似dpkg,可让用户添加或移除软件。软件仓库大约有3500个包。是一个可以从本地或远程软件下载并安装OpenWrt包的轻量型实用工具。
- UCI (unified configuration interface) 脚本支持[40]
- 完整的硬件驱动程序支持。例如: 内置网络交换器及其VLAN-兼容, WNICs, DSL modems, FX等。
- 各种计算机网络设置如下:
- 路由可通过iproute2, Quagga, BIRD等。
- 支持多种 IPv6过渡机制
- 网状网络可经由B.A.T.M.A.N., OLSR与IEEE 802.11s-兼容的WNIC drivers
- 无线功能。如设备实现无线路由、无线接取器、无线桥接、强制网络门户,或结合一些设备如: ChilliSpot、WiFiDog Captive Portal等。
- 无线安全: Packet injection,例如: Airpwn(页面存档备份,存于)、lorcon等。
- 状态防火墙、NAT和路由器端口扫描(port forwarding)经由netfilter;其他还有PeerGuardian已支持。
- UPnP与NAT-PMP可通过 upnpd来设置。
- port knocking可通过knockd与knock达成。
- TR-069[41]
- IPS经由Snort
- 使用多个互联网服务供应商达到负载平衡。
- IP穿透(tunneling)
- 网络监视与统计数据等。例如: RRDtool, Collectd, Nagios, Munin lite, Zabbix等。
- 域名系统 (DNS)和DHCP经由Dnsmasq、MaraDNS等。
- 动态DNS可负责修复互联网服务供应商的DNS,但不提供静态IP地址
- 无线分散系统(WDS) 包含WPA-PSK、WPA2-PSK、WPA-PSK/WPA2-PSK混合加密模式
- OpenWrt支持各种Linux已支持的硬件,并通过USB连接
- 著名的软件支持硬件 :
- 文档分享经由Samba,(Windows兼容),NFS和FTP,经由print server CUPS (spooling) 或 p910nd (non-spooling)分享打印功能。
- PulseAudio, Music Player Daemon,音效与影像流经由DLNA/UPnP AV standards、iTunes (DAAP) 服务器
- Asterisk
- MQ Telemetry Transport经由Mosquitto
- 可延伸的Ajax,由LuCI支持[42]
- 系统更新,即便设备已不再受原厂支持。
应用
硬件兼容性
OpenWrt运行许多不同的路由器,并在其网站上包括一个兼容硬件表。[44]在其买家指南中,比起博通,他们更建议购买高通Atheros芯片设备。[45] OpenWrt在各大社区和无私贡献的帮助下,你甚至在传统的ARM硬路由上可以见到OpenWrt的身影,也能部署在x86-64的传统电脑软路由里OpenWrt的兼容性远远不止如此。
正式采用
OpenWrt,特别是其Buildroot构建系统,已经采用了很多次:
- Freifunk及其他网状网络社区
- Bufferbloat.net (Cerowrt)
- IETF IPv6集成项目HIPnet和HomeNet是基于OpenWrt
衍生分支
- LEDE作为OpenWrt项目的分支机构而成立,并拥有许多相同的目标。现在已与OpenWRT合并。
- CeroWrt – 目的是补充debloat测试kernel tree,并为缓冲区修复的现实世界测试提供一个平台[46][47]
- Coova chilli – 基于OpenWrt的专注于无线热点,一个chillifire的分支专注于无线热点管理
- Gargoyle – OpenWrt的一个Web界面,强调可用性,后来分支到一个单独的分发
- Flukso – 使用Atheros AR2317芯片组的无线传感器节点,运行修补的OpenWrt OS进行通信。GitHub上提供的源和硬件原理图。
- Fon – 基于OpenWrt的无线路由器充当热点。fonosfera.org上的源和工具链
- Linino – 基于OpenWrt的基于MIPS架构的Arduino的分发:GitHub项目
- Midge Linux – 基于英飞凌 ADM-5120 SoCs的设备的基于OpenWrt的发行版,例如Edimax BR-6104K和BR-6104KP。
- OpenSAN – iSCSI目标存储局域网络实现。
- PacketProtector – 基于OpenWrt的安全分发,包括IDS,IPS,VPN和Web防病毒功能。
- 软件包包括Snort,Snort-inline,FreeRADIUS,OpenVPN,DansGuardian和ClamAV。
- 这些工具可以通过OpenWrt的旧Web GUI管理界面访问,称为X-Wrt或webif^2。项目于2012年6月7日结束。[48]
路由器固件项目列表
- 客制路由器固件清单
- LEDE - OpenWRT的分支项目,现已与OpenWrt主项目合并。
注释
- . 2024年3月25日.
- . 2004-09-01 [2010-12-31]. (原始内容存档于2010-11-19).
- . dev.openwrt.org. 2013-11-22 [2014-02-13]. (原始内容存档于2014-02-22).
- . www.solidot.org. [2020-08-05]. (原始内容存档于2018-06-14).
- . [2022-04-29]. (原始内容存档于2022-05-02).
- . 2023-10-16.
- . 2023-10-19.
- . December 28, 2015 [2024-01-09].
- . 2007-02-05.
- . 2007-02-05.
- . 2007-06-02.
- . 2007-07-26.
- . 2007-09-30.
- . 2009-02-19.
- . 2009-06-03.
- . 2010-01-10.
- . 2010-04-07.
- . 2011-12-21.
- . 2013-04-25.
- . 2014-10-02.
- . openwrt.org. July 16, 2013 [2018-07-16] (英语).
- . 2015-09-11.
- . 2016-03-16.
- . 2019-06-29.
- . 2015-06-16 [June 27, 2015].
- . 2019-06-20.
- . July 20, 2019 [2024-01-11].
- . 2018-07-31.
- . 2020-01-06.
- Mehrtens, Hauke. . OpenWrt Wiki. January 6, 2020.
- Man, Low Kah. . Leow Kah Man - Tech Blog. February 1, 2020.
- . 2021-09-04.
- Mehrtens, Hauke. . OpenWrt Wiki. September 4, 2021.
- . 2022-09-06.
- . OpenWrt Wiki. September 15, 2022.
- . 2023-10-13.
- Mehrtens, Hauke. . OpenWrt Wiki. 2023-10-11 [2023-10-24] (英语).
- . June 15, 2011 [2015-07-24]. (原始内容存档于2015-07-24).
- . [2015-07-24]. (原始内容存档于2015-07-24).
- . [2015-07-24]. (原始内容存档于2015-07-24).
- . [2015-07-24]. (原始内容存档于2014-07-09).
- . [February 28, 2009]. (原始内容存档于2015-10-26).
- . [February 23, 2009]. (原始内容存档于2015-08-17).
- . wiki.openwrt.org. [2016-10-06]. (原始内容存档于2016-10-09).
- . wiki.openwrt.org. [2016-10-06]. (原始内容存档于2016-10-09).
- . [2015-09-16]. (原始内容存档于2015-10-07).
- . LWN.net. [2014-02-13]. (原始内容存档于2014-02-22).
- . [2017-02-19]. (原始内容存档于2013-04-21).
- . FSF.org. 2014-09-04 [2014-12-21]. (原始内容存档于2014-12-21).