跳转到内容

OpenWrt

本页使用了标题或全文手工转换
维基百科,自由的百科全书

这是本页的一个历史版本,由Driver556留言 | 贡献2022年7月17日 (日) 06:57 (内容扩充 增加或调整参考来源)编辑。这可能和当前版本存在着巨大的差异。

OpenWrt
OpenWrt 18.06.1 login screen
开发者OpenWrt Project
作業系統家族類Unix系統
運作狀態支援中
源码模式自由軟體開源軟體
首次发布2004年 (2004)
当前版本
  • 24.10.1(2025年4月15日;穩定版本)[1]
編輯維基數據鏈接
最新預覽24.10.1[2](2025年4月15日,​49天前​(2025-04-15[±]
支持的语言22種語言[3]
更新方式opkg
软件包管理系统opkg
支援平台使用以下架构的50种不同平台:AVR32, ARM, CRIS, m68k, MIPS, PowerPC, SPARC, SuperH, Ubicom32, x86, x86-64[4]
内核类别宏内核Linux
使用者空間BusyBoxGNU
默认用户界面命令行界面、WebUI
许可证自由软件GPL和其他许可证)
官方網站openwrt.org
仓库 編輯維基數據鏈接

OpenWrt是适合于嵌入式设备的一个Linux发行版。

相对原厂固件而言,OpenWrt不是一个单一、静态的固件,而是提供了一个可添加软件包的可写的文件系统。这使使用者可以自由的选择应用程序和配置,而不必受设备提供商的限制,并且可以使用一些适合某方面应用的软件包来定制你的设备。对于开发者来说,OpenWrt是一个框架,開發者不必麻烦地构建整个固件就能得到想要的应用程序;对于使用者来说,这意味着完全定制的能力,與以往不同的方式使用设备,因为OPKG包含超过3500个软件。固件默认使用LuCI作为Web交互界面。

OpenWrt另有一个复刻分支项目,名为LEDE,两者于2018年1月合并,合并后的项目使用OpenWrt的名字、LEDE的源代码。[5]

歷史

2002年底,Linksys公司推出WRT-54G,一款基于MIPS架构的无线路由器,使用802.11g标准使得带宽在理论上能够达到54M,在當時是一次巨大的进步。WRT-54G作業系統以Linux取代vXworks,哥伦比亚大学法学院教授Eben Moglen向Linksys提出开源要求。

2003年7月,Linksys迫于压力,开源了WRT54G的firmware,不久[何时?]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” 版本发布[6]

2011年9月21日,juhosg接手OpenWrt,並释出了wr703n的官方源码。

2013年4月,OpenWrt 12.09 发布,Linux核心版號為3.3版。

由於WRT54G價格低廉,OpenWrt又開源免費,成為学习嵌入式Linux最佳平台。OpenWrt本身未带任何UI,需要通过LuCI,webif等各种延伸界面,LuCI界面是使用率最高的Web管理界面。

釋出版本

Tagged 代號 版號 Release date Linux kernel C標準庫 二位元包 源碼包 注解
(default) (available)
不適用 舊版本,不再支援: pre Buildroot-NG 0.x 不適用 不適用 uClibc 474 ≈ 310
r6268 舊版本,不再支援: White Russian 0.9 January 2006 2.4.30 ≈ 360 ≈ 140 NVRAM-based, nas, wl. Supported platform: brcm-2.4.
r7428 舊版本,不再支援: Kamikaze 7.06 June 2007 2.6.19 ≈ 750 ≈ 450 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.
r7832 舊版本,不再支援: Kamikaze 7.07 July 2007 2.6.21 ≈ 790 ≈ 475 New platform: amcc-2.6.
r8679 舊版本,不再支援: Kamikaze 7.09 September 2007 ≈ 630 ≈ 500
r14547 舊版本,不再支援: Kamikaze 8.09 September 2008 2.6.26 ≈ 1,400 ≈ 875 New platform: ar71xx.
r16279 舊版本,不再支援: Kamikaze 8.09.1 June 2009 ≈ 1,400 ≈ 875
r18961 舊版本,不再支援: Kamikaze 8.09.2 January 10, 2010[7] ≈ 1,400 ≈ 875
r20742 舊版本,不再支援: Backfire 10.03 April 7, 2010[8] 2.6.32 ≈ 2,350 ≈ 1,050 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.
r29594 舊版本,不再支援: Backfire 10.03.1 December 21, 2011[9] eglibc
glibc
≈ 2,950 ≈ 1,175
r36088 舊版本,不再支援: Attitude Adjustment 12.09 April 25, 2013[10] 3.3 eglibc ≈ 3,450 ≈ 1,150 CoDel (network scheduler) backported from Linux 3.5 to 3.3. New platforms: ramips, bcm2708 (Raspberry Pi) and others.
r42625 舊版本,不再支援: Barrier Breaker 14.07 October 2, 2014[11] 3.10.49[12] musl
eglibc
? ? New platforms: i.MX23, i.MX6[13] and mvebu.
r46767 舊版本,不再支援: Chaos Calmer 15.05 September 11, 2015[14] 3.18.20[15] musl
glibc[16]
? ? nftables (available since Linux kernel 3.12); New platforms: TBA if any
r49022 舊版本,不再支援: Chaos Calmer 15.05.1 March 16, 2016[17] 3.18.23[17]
trunk 舊版本,不再支援: Designated Driver development[18] 不適用 ≥4.1 musl[19] uClibc
glibc
? ?
v18.06.0 舊版本,不再支援: OpenWrt 18.06.0 18.06.0 July 31, 2018[20] 4.9.111 / 4.14.52 uClibc-ng

glibc

gcc

binutils

v18.06.1 舊版本,不再支援: OpenWrt 18.06.1 18.06.1 August 18, 2018[21] 4.9.120 / 4.14.63
v18.06.2 舊版本,不再支援: OpenWrt 18.06.2 18.06.2 January 31, 2019[22] 4.9.152 / 4.14.95
v18.06.3 舊版本,不再支援: OpenWrt 18.06.3 18.06.3 June 29, 2019[23] 4.9.182 / 4.14.128 The OpenWrt 18.06.3 release was skipped in favor to 18.06.4 due to a last minute 4.14 kernel update fixing TCP connectivity problems which were introduced with the first iteration of the Linux SACK vulnerability patches.[24]
v18.06.4 舊版本,不再支援: OpenWrt 18.06.4 18.06.4 July 1, 2019[24] 4.9.184 / 4.14.131
v18.06.5 舊版本,不再支援: OpenWrt 18.06.5 18.06.5 November 29, 2019[25] 4.9.198 / 4.14.151
v19.07.0-rc2 最新预览版本: OpenWrt 19.07.0-rc2 19.07.0-rc2 December 2, 2019[26]
v19.07.0 舊版本,仍被支援: OpenWrt 19.07.0 19.07.0 January 10, 2020[27] The OpenWrt 19.07 series focuses on bringing all supported targets to Kernel 4.14 and introducing initial device tree based ath79 support.[28]
v21.02.0 當前版本: OpenWrt 21.02.0 21.02.0 September 4, 2021[29] The OpenWrt 21.02 series focuses on bringing all supported targets to Linux kernel version 5.4 and introducing WPA 3 support into default images.[30]Increased minimum hardware requirements[31]
格式:
舊版本
舊版本,仍被支援
当前版本
最新的预览版
未来版本

特色

OpenWrt遵循著市集-哲學而且已知有著豐富的選項。功能如下:

Web 界面

在8.09版之前,OpenWrt提供最小GUI。OpenWrt推出8.09及日後新版中,有更多的Web界面可供選擇。[37]這個新界面基於LuCI,是一種MVC英语Model–view–controller架構,由Lua語言撰寫。[36]

X-Wrt是一個專為OpenWrt所設計的套件,是LuCI以外的另一種選擇,在包倉庫中名為webif²,由使用者自行下載安裝。

优劣

优势

如果您对 Linux 系统有一定的认识,并想学习或接触嵌入式 Linux 的话,OpenWRT 就很适合。OpenWRT支持各种处理器架构,无论是对ARM,X86,PowerPC,甚至MIPS都有很好的支持。 其多达3000多种软件包,囊括从工具链(toolchain),到内核(linux kernel),到软件包(packages),再到根文件系统(rootfs)整个体系,使得用户只需简单的一个make命令即可方便快速地定制一个具有特定功能的嵌入式系统来制作固件。[38]

一般嵌入式 Linux 的开发过程,无论是 ARM, PowerPCMIPS 的处理器,都必需经过以下的开发过程:

  1. 创建 Linux 交叉编译环境;
  2. 建立 Bootloader
  3. 移植 Linux 内核
  4. 建立 Rootfs (根文件系统);
  5. 安装驱动程序;
  6. 安装软件;

熟悉这些嵌入式 Linux 的基本开发流程后,开发也不再局限于 MIPS 处理器和无线路由器,还可以尝试在非无线路由器的系统移植嵌入式 Linux 中定制合适自己的应用软件, 并建立一个完整的嵌入式产品。

劣势

  • 由于CPU内核体系不同,造成很多应用程序移植到OpenWrt上的时候经常崩溃。
  • 由于ADSL硬件模块的驱动程序没有开放源代码,造成很多ADSL一体无线路由的ADSL模块不能工作而造成功能缺失(RG100A和DB120除外)。
  • 由于OpenWRT并不是官方发布的路由器固件,所以要使用(刷入该固件)有困难,而且其基于Linux,导致OpenWRT的入门门槛较高。

应用

  • 用于脱机离线下载。
  • VPN服务器。
  • SSH服务器。
  • 网络代理(如:Brook,ShadowSocksR Plus+,PassWall,OpenClash(Clash),HelloWorld(vssr)等)。
  • 主机游戏加速。
  • 内网穿透。
  • 动态DDNS。
  • 单线多拨及带宽叠加。
  • 多线路拨号宽带叠加。
  • QOS智能限速。
  • 远程视频监控。
  • 去除广告,屏蔽恶意域名。
  • 网络打印机。
  • 软路由
  • 比特币矿机。
  • Docker

硬件兼容性

OpenWrt運行許多不同的路由器,並在其網站上包括一個兼容硬件表。[39]在其買家指南中,比起博通,他们更建议购买高通Atheros芯片设备。[40] OpenWrt在各大社区和无私贡献的帮助下,你甚至在传统的ARM硬路由上可以见到OpenWrt的身影,也能部署在x86-64的传统电脑软路由里OpenWrt的兼容性远远不止如此。

正式採用

OpenWrt,特別是其Buildroot構建系統,已經採用了很多次:

  • Freifunk及其他網狀網絡社區
  • Bufferbloat.net (Cerowrt)
  • IETF IPv6集成項目HIPnet和HomeNet是基於OpenWrt

衍生分支

  • LEDE作為OpenWrt項目的分支機構而成立,並擁有許多相同的目標。现在已与OpenWRT合并。
  • CeroWrt – 目的是補充debloat測試kernel tree,並為緩衝區修復的現實世界測試提供一個平台[41][42]
  • 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的安全分發,包括IDSIPS英语Internet Provider SecurityVPN和Web防病毒功能。
軟件包包括Snort,Snort-inline,FreeRADIUS,OpenVPN,DansGuardian和ClamAV。
這些工具可以通過OpenWrt的舊Web GUI管理界面訪問,稱為X-Wrt或webif^2。項目於2012年6月7日結束。[43]
  • Turris Omnia英语Turris Omnia的Omnia路由器是使用OpenWrt的衍生運行
  • 無線社區網絡的多種草根項目,包括Freifunk,Libre-Mesh和qMp
  • libreCMC – 基於OpenWrt的分發,沒有非自由軟件或二進制blob,由自由軟件基金會認可[44]
  • Asuswrt(asuswrt-merlin),載體為Asus網通產品。

路由器固件項目列表

注釋

  1. ^ https://openwrt.org/releases/24.10/notes-24.10.1; 出版日期: 2025年4月15日.
  2. ^ OpenWrt 24.10.1 - Service Release - 15. April 2025. OpenWrt. 2025-04-15 [2025-04-15]. 
  3. ^ LuCI Translation Portal. 2004-09-01 [2010-12-31]. (原始内容存档于2010-11-19). 
  4. ^ Config.in in trunk/target – OpenWrt. dev.openwrt.org. 2013-11-22 [2014-02-13]. (原始内容存档于2014-02-22). 
  5. ^ Solidot | OpenWrt 和 LEDE 项目宣布合并. www.solidot.org. [2020-08-05]. (原始内容存档于2018-06-14). 
  6. ^ 存档副本. [2022-04-29]. (原始内容存档于2022-05-02). 
  7. ^ Release Notes Kamikaze 8.09.2. openwrt.org. 2010-01-10 [2013-04-26]. (原始内容存档于2015-01-01). 
  8. ^ Release Notes Backfire 10.03. openwrt.org. 2010-04-07 [2013-04-26]. (原始内容存档于2014-03-29). 
  9. ^ Release Notes Backfire 10.03.1. openwrt.org. 2011-12-21 [2013-04-26]. (原始内容存档于2014-03-29). 
  10. ^ Release Notes Attitude Adjustment 12.09. openwrt.org. 2013-04-25 [2013-04-26]. (原始内容存档于2013-08-08). 
  11. ^ OpenWrt BarrierBreaker 14.07. openwrt.org. October 2014 [2017年2月19日]. (原始内容存档于2014年10月6日). 
  12. ^ kernel: update to 3.10.49 – OpenWrt. dev.openwrt.org. 2014-07-20 [2015-07-24]. (原始内容存档于2015-07-24). 
  13. ^ Freescale i.MX support. [2017-02-19]. (原始内容存档于2017-07-02). 
  14. ^ OpenWrt Chaos Calmer 15.05. openwrt.org. September 2015 [2015-09-28]. (原始内容存档于2015-09-29). 
  15. ^ [OpenWrt-Devel] Chaos Calmer 15.05-rc3. 2015-07-16 [2015-09-28]. (原始内容存档于2015-09-28). 
  16. ^ [OpenWrt-Devel] [PATCH 1/2] toolchain: The glorious return of glibc, ver 2.21. 2015-03-11 [2015-07-24]. (原始内容存档于2015-06-30). 
  17. ^ 17.0 17.1 Chaos Calmer 15.05.1. 16 March 2016 [21 March 2016]. (原始内容存档于2016年3月24日). 
  18. ^ Changeset 46846: change banner to Designated Driver release. 2015-09-11 [2015-09-28]. (原始内容存档于2015-09-29). 
  19. ^ [OpenWrt-Devel] OpenWrt switches to musl by default. 2015-06-16 [2015-07-24]. (原始内容存档于2015-06-30). 
  20. ^ OpenWrt 18.06.0 - First Stable Release - July 2018. [2019-07-09]. (原始内容存档于2019-07-09). 
  21. ^ OpenWrt 18.06.1 - First Service Release - August 2018. [2019-07-09]. (原始内容存档于2019-07-09). 
  22. ^ OpenWrt 18.06.2 - Second Service Release - January 2019. [2019-07-09]. (原始内容存档于2019-07-07). 
  23. ^ OpenWrt 18.06.3 - Third Service Release - July 2019. [2019-07-09]. (原始内容存档于2019-07-09). 
  24. ^ 24.0 24.1 OpenWrt 18.06.4 - Fourth Service Release - July 2019. [2019-07-09]. (原始内容存档于2019-07-05). 
  25. ^ OpenWrt 18.06.5 - Fifth Service Release - November 2019. [2019-11-29]. (原始内容存档于2019-11-23). 
  26. ^ OpenWrt Project: OpenWrt 19.07. [2019-11-07]. (原始内容存档于2019-11-07). 
  27. ^ OpenWrt 19.07.0 - First Stable Release - January 2020. [2020-01-31]. (原始内容存档于2020-01-12). 
  28. ^ OpenWrt Project: OpenWrt 19.07. [2019-11-07]. (原始内容存档于2019-11-07). 
  29. ^ OpenWrt 21.02.0 - First Stable Release - 4 September 2021. [2021-12-26]. (原始内容存档于2021-11-30). 
  30. ^ OpenWrt Project: OpenWrt 21.02. [2021-12-26]. (原始内容存档于2021-10-20). 
  31. ^ 8/64 warning. [2021-12-26]. (原始内容存档于2021-10-07). 
  32. ^ Debating overlayfs. June 15, 2011 [2015-07-24]. (原始内容存档于2015-07-24). 
  33. ^ OpenWrt partition layout. [2015-07-24]. (原始内容存档于2015-07-24). 
  34. ^ OpenWrt Unified Configuration Interface. [2015-07-24]. (原始内容存档于2015-07-24). 
  35. ^ freecwmp is a CWMP client for OpenWrt. [2015-07-24]. (原始内容存档于2014-07-09). 
  36. ^ 36.0 36.1 LuCI project. [February 28, 2009]. (原始内容存档于2015-10-26). 
  37. ^ OpenWrt 8.09 release notes. [February 23, 2009]. (原始内容存档于2015-08-17). 
  38. ^ 关于本项目 [Old OpenWrt Wiki]. oldwiki.archive.openwrt.org. [2022-07-17]. 
  39. ^ Table of Hardware [OpenWrt Wiki]. wiki.openwrt.org. [2016-10-06]. (原始内容存档于2016-10-09). 
  40. ^ Buyers' Guide [OpenWrt Wiki]. wiki.openwrt.org. [2016-10-06]. (原始内容存档于2016-10-09). 
  41. ^ CeroWrt Wiki. [2015-09-16]. (原始内容存档于2015-10-07). 
  42. ^ ANNOUNCE: debloat-testing kernel git tree. LWN.net. [2014-02-13]. (原始内容存档于2014-02-22). 
  43. ^ "closing time" message from author on PacketProtector forum. [2017-02-19]. (原始内容存档于2013-04-21). 
  44. ^ Free Software Foundation adds libreCMC to its list of endorsed distributions. FSF.org. 2014-09-04 [2014-12-21]. (原始内容存档于2014-12-21). 

外部链接