OpenWrt
開發者 | OpenWrt Project |
---|---|
作業系統家族 | 類Unix系統 |
運作狀態 | 支援中 |
源碼模式 | 自由軟體 、開源軟體 |
首次發布 | 2004年 |
當前版本 | |
最新預覽 | 22.03.0-rc6[3](2022年8月2日 )[±] |
支持的語言 | 22種語言[4] |
更新方式 | opkg |
軟件包管理系統 | opkg |
支援平台 | 使用以下架構的50種不同平台:AVR32, ARM, CRIS, m68k, MIPS, PowerPC, SPARC, SuperH, Ubicom32, x86, x86-64[5] |
內核類別 | 宏內核(Linux) |
使用者空間 | BusyBox、GNU |
默認用戶界面 | 命令行界面、WebUI |
許可證 | 自由軟件(GPL和其他許可證) |
官方網站 | openwrt |
倉庫 |
相對原廠固件而言,OpenWrt不是一個單一、靜態的固件,而是提供了一個可添加軟件包的可寫的文件系統。這使使用者可以自由的選擇應用程序和配置,而不必受設備提供商的限制,並且可以使用一些適合某方面應用的軟件包來定製你的設備。對於開發者來說,OpenWrt是一個框架,開發者不必麻煩地構建整個固件就能得到想要的應用程序;對於使用者來說,這意味着完全定製的能力,與以往不同的方式使用設備,OPKG包含超過3500個軟件。 默認使用LuCI作為web交互界面。
OpenWrt另有一個復刻分支項目,名為LEDE,兩者於2018年1月合併,合併後的項目使用OpenWrt的名字、LEDE的源代碼。[6]
歷史
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」 版本發布[7]
2011年9月21日,juhosg接手OpenWrt,並釋出了wr703n的官方源碼。
2013年4月,OpenWrt 12.09 發布,Linux核心版號為3.3版。
由於WRT54G價格低廉,OpenWrt又開源免費,它在當時成為了學習嵌入式Linux的最佳平台。OpenWrt本身未帶任何UI,需要通過LuCI,webif等各種延伸界面,LuCI界面是使用率最高的Web管理界面。
釋出版本
版本[8][9] | 一般可用 | 內核 | 最新小版本 | 發布日期 | 產品壽命結束[10] | 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)[11][12] | 2007-02-05 | 2.4.30 | 不適用 | 不適用 | 不適用 | NVRAM-based, nas , wl . Supported platform: brcm-2.4 .
| |
7.06 (Kamikaze)[13] | 2007-06-02 | 2.6.19 | 7.09 [14][15] | 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)[16] | 2009-02-19 | 2.6.26 | 8.09.2[17][18] | 2010-01-10 | New platform: ar71xx .
| ||
10.03 (Backfire)[19] | 2010-04-07 | 2.6.32 | 10.03.1[20] | 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)[21] | 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)[22] | 2014-10-02 | 3.10.49 | 不適用 | 不適用 | 不適用 | New platforms: i.MX23 , i.MX6 .[23]
| |
15.05 (Chaos Calmer)[24] | 2015-09-11 | 3.18.20 | 15.05.1[25] | 2016-03-16 | 2016, March | nftables (available since Linux kernel 3.12); New platforms: TBA if any | |
17.01.0 (Reboot (OpenWrt/LEDE))[26] | 2017-02-22 | 4.4.50 | 17.01.7 | 2019-06-20 | 2019, June | musl[27] | There were only release notes for "OpenWrt/LEDE 17.01.7 - Seventh Service Release - June 2019" with a code revision "rTODO-2252731af4".[28] The official announcement of "OpenWrt/LEDE v17.01.7 service release" was never made in the OpenWrt Forum due to GPG signing certs issues.[29] |
18.06.0[30] | 2018-07-31 | 4.9.111 / 4.14.52 | 18.06.9 | 2020-12-09 | 2020, December | ||
19.07.0[31] | 2020-01-06 | 4.14.162 | 19.07.10 | 2022-04-20 | 2022, April | WPA3 support.[32] Flow offloading (beta).[33] | |
21.02.0[34] | 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 [35] | |
22.03.0[36] | 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.[37] | |
23.05.0[38] | 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.[39] | |
圖例: 舊版本 舊版本,仍被支持 最新版本 |
LEDE
開發者 | LEDE 項目 |
---|---|
編程語言 | Lua |
作業系統家族 | 類Unix |
運作狀態 | 與OpenWrt合併 |
源碼模式 | 開放源代碼 |
首次發布 | 2016年5月 |
當前版本 | |
支持的語言 | 26種語言[40] |
更新方式 | opkg |
軟件包管理系統 | opkg |
支援平台 | 23個平台使用以下指令集:AVR32、ARM、CRIS、m68k、MIPS、PowerPC、SPARC、SuperH、Ubicom32、x86、x86-64[41] |
內核類別 | 單體內核(Linux) |
使用者空間 | BusyBox, GNU |
默認用戶界面 | CLI, WebUIs |
許可證 | 自由軟件(GPL及其他許可證) |
官方網站 | lede-project |
倉庫 |
Linux 嵌入式開發環境,即The Linux Embedded Development Environment (LEDE),該項目是OpenWrt項目的一個分支,[42][43][44]成立於 2016 年 5 月,由部分 OpenWrt 核心開發者創立,原因是他們對 OpenWrt 內部管理流程產生了分歧[45]。LEDE 項目延續了 OpenWrt 的目標,專注於嵌入式系統的開發,但引入了新的開發和治理流程。[46]
2017 年 5 月,OpenWrt 和 LEDE 雙方開始尋求項目的合併,並在經過一年的協調後,達成了共識。LEDE 開發者於 2017 年 6 月通過了合併提案,並在 2018 年 1 月正式宣布兩者重新合併。[47]
合併後,保留了 OpenWrt 的品牌名稱,但在項目治理和開發流程上借鑑了 LEDE 的許多機制。該合併在 OpenWrt 18.06 版本發布之前完成。合併後的項目繼續以 OpenWrt 名義運作,並維持其作為開源嵌入式 Linux 系統的重要地位。[48]
版本 | 發布日期 | 內核 | 說明 |
---|---|---|---|
17.01.0 | 2017-02-22 | 4.4.50 | 第一個穩定版本 [49] |
17.01.1 | 2017-04-19 | 4.4.61 | Bug 修復和增強 [50] |
17.01.2 | 2017-06-12 | 4.4.71 | 安全修復 [51] |
17.01.3 | 2017-10-03 | 4.4.89 | 安全修復 [52] |
17.01.4 | 2017-10-18 | 4.4.92 | 安全修復(KRACK 漏洞,針對服務端的修復)[53] |
17.01.5 | 2018-07-18 | 4.4.140 | 安全修復 [54] |
17.01.6 | 2018-09-03 | 4.4.153 | 安全修復 [55] |
特色
OpenWrt遵循著市集-哲學而且已知有著豐富的選項。功能如下:
- 可寫的根目錄,讓使用者自行新增,移除或修改任何檔案。SquashFS與JFFS2文件系統的整合形成的overlayfs機制[56]形成重疊[57]。squashfs是一種只讀的壓縮文件系統,壓縮率和gzip差不多。jffs2是一種日誌類型的文件系統,專為NorFlash設計。
- 包管理員opkg,類似dpkg,可讓使用者新增或移除軟體。軟件倉庫大約有3500個包。是一個可以從本地或遠端軟件下載並安裝OpenWrt包的輕量型實用工具。
- UCI (unified configuration interface) 腳本支持[58]
- 完整的硬體驅動程式支持。例如: 內建網路交換器及其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[59]
- 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支持[60]
- 系統更新,即便裝置已不再受原廠支持。
Web 界面
在8.09版之前,OpenWrt提供最小GUI。OpenWrt推出8.09及日後新版中,有更多的Web界面可供選擇。[61]這個新界面基於LuCI,是一種MVC架構,由Lua語言撰寫。[60]
X-Wrt是一個專為OpenWrt所設計的套件,是LuCI以外的另一種選擇,在包倉庫中名為webif²,由使用者自行下載安裝。
-
LuCI
-
X-Wrt
-
Gargoyle
應用
硬件兼容性
OpenWrt運行許多不同的路由器,並在其網站上包括一個兼容硬件表。[63]在其買家指南中,比起博通,他們更建議購買高通Atheros芯片設備。[64] OpenWrt在各大社區和無私貢獻的幫助下,你甚至在傳統的ARM硬路由上可以見到OpenWrt的身影,也能部署在x86-64的傳統電腦軟路由里OpenWrt的兼容性遠遠不止如此。
正式採用
OpenWrt,特別是其Buildroot構建系統,已經採用了很多次:
衍生分支
- LEDE作為OpenWrt項目的分支機構而成立,並擁有許多相同的目標。現在已與OpenWRT合併。
- CeroWrt – 目的是補充debloat測試kernel tree,並為緩衝區修復的現實世界測試提供一個平台[65][66]
- 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日結束。[67]
- Turris Omnia的Omnia路由器是使用OpenWrt的衍生運行
- 無線社區網絡的多種草根項目,包括Freifunk,Libre-Mesh和qMp
- libreCMC – 基於OpenWrt的分發,沒有非自由軟件或二進制blob,由自由軟件基金會認可[68]
- Asuswrt(asuswrt-merlin),載體為Asus網通產品。
- 部分企業如小米、TP-Link 和 D-Link 發布的家用路由器固件是基於 OpenWrt 的二次開發版本。[69][70][71]
- ImmortalWrt - 一個OpenWrt的衍生版本,主要由中國的開發者社區維護。[72][73]
- 友善電子生產的Nano Pi系列的Soc設備,並提供基於 OpenWrt 的衍生操作系統 FriendlyWrt。[74]
路由器固件項目列表
注釋
- ^ 1.0 1.1 OpenWrt 23.05.5 - Service Release - 25. September 2024. 2024年9月25日.
- ^ 2.0 2.1 https://openwrt.org/releases/24.10/notes-24.10.0-rc2.
- ^ OpenWrt 22.03.0-rc6 - Sixth Release Candidate - 2 August 2022. OpenWrt. 2022-08-02 [2022-08-02].
- ^ LuCI Translation Portal. 2004-09-01 [2010-12-31]. (原始內容存檔於2010-11-19).
- ^ Config.in in trunk/target – OpenWrt. dev.openwrt.org. 2013-11-22 [2014-02-13]. (原始內容存檔於2014-02-22).
- ^ Solidot | OpenWrt 和 LEDE 项目宣布合并. www.solidot.org. [2020-08-05]. (原始內容存檔於2018-06-14).
- ^ 存档副本. [2022-04-29]. (原始內容存檔於2022-05-02).
- ^ OpenWrt version history. 2023-10-16 [2022-04-29]. (原始內容存檔於2022-05-02).
- ^ Release Builds. 2023-10-19 [2024-03-23]. (原始內容存檔於2024-05-05).
- ^ Security - Support status. December 28, 2015 [2024-01-09]. (原始內容存檔於2024-05-24).
- ^ Whiterussian 0.9 / Kamikaze snapshots. 2007-02-05 [2024-03-23]. (原始內容存檔於2024-05-06).
- ^ WHITE RUSSIAN 0.9. 2007-02-05 [2024-03-23]. (原始內容存檔於2022-08-14).
- ^ Kamikaze 7.06. 2007-06-02 [2024-03-23]. (原始內容存檔於2023-08-04).
- ^ Kamikaze 7.07. 2007-07-26 [2024-03-23]. (原始內容存檔於2024-05-06).
- ^ Kamikaze 7.09. 2007-09-30 [2024-03-23]. (原始內容存檔於2024-05-06).
- ^ Kamikaze 8.09. 2009-02-19 [2024-03-23]. (原始內容存檔於2024-03-17).
- ^ Kamikaze 8.09.1. 2009-06-03 [2024-03-23]. (原始內容存檔於2023-12-11).
- ^ Kamikaze 8.09.2. 2010-01-10 [2024-03-23]. (原始內容存檔於2023-11-09).
- ^ Backfire 10.03. 2010-04-07 [2024-03-23]. (原始內容存檔於2024-02-21).
- ^ Backfire 10.03.1. 2011-12-21 [2024-03-23]. (原始內容存檔於2023-12-11).
- ^ Attitude Adjustment. 2013-04-25 [2024-03-23]. (原始內容存檔於2023-12-02).
- ^ Barrier Breaker. 2014-10-02 [2024-03-23]. (原始內容存檔於2024-02-26).
- ^ OpenWrt Project: Freescale i.MX. openwrt.org. July 16, 2013 [2018-07-16]. (原始內容存檔於2024-05-09) (英語).
- ^ Chaos Calmer. 2015-09-11 [2024-03-23]. (原始內容存檔於2024-04-15).
- ^ OpenWrt 15.05.1 "Chaos Calmer". 2016-03-16 [2024-03-23]. (原始內容存檔於2024-04-06).
- ^ LEDE 17.01 "Reboot". 2019-06-29 [2024-03-23]. (原始內容存檔於2024-05-08).
- ^ [OpenWrt-Devel] OpenWrt switches to musl by default. 2015-06-16 [June 27, 2015]. (原始內容存檔於2023-11-04).
- ^ OpenWrt/LEDE 17.01.7 - Seventh Service Release - June 2019. 2019-06-20 [2024-03-23]. (原始內容存檔於2024-02-21).
- ^ OpenWrt 17.01.7 - date of release?. July 20, 2019 [2024-01-11]. (原始內容存檔於2024-05-06).
- ^ OpenWrt 18.06. 2018-07-31 [2024-03-23]. (原始內容存檔於2024-03-14).
- ^ OpenWrt 19.07. 2020-01-06 [2019-11-07]. (原始內容存檔於2019-11-07).
- ^ Mehrtens, Hauke. OpenWrt 19.07.0 - First Stable Release - 6 January 2020. OpenWrt Wiki. January 6, 2020 [2020-01-31]. (原始內容存檔於2020-01-12).
- ^ Man, Low Kah. Speedtest OpenWRT with flow offloading. Leow Kah Man - Tech Blog. February 1, 2020 [2024-03-23]. (原始內容存檔於2024-01-17).
- ^ OpenWrt 21.02. 2021-09-04 [2021-12-26]. (原始內容存檔於2021-10-20).
- ^ Mehrtens, Hauke. OpenWrt 21.02.0 - First Stable Release - 4 September 2021. OpenWrt Wiki. September 4, 2021 [2021-12-26]. (原始內容存檔於2021-11-30).
- ^ OpenWrt 22.03. 2022-09-06 [2024-03-23]. (原始內容存檔於2024-04-16).
- ^ OpenWrt 21.03.0 - First Stable Release - 6 September 2022. OpenWrt Wiki. September 15, 2022 [2024-03-23]. (原始內容存檔於2024-05-10).
- ^ OpenWrt 23.05. 2023-10-13 [2024-03-23]. (原始內容存檔於2024-05-05).
- ^ Mehrtens, Hauke. OpenWrt 23.05.0 - First Stable Release - 13 October 2023. OpenWrt Wiki. 2023-10-11 [2023-10-24]. (原始內容存檔於2024-05-10) (英語).
- ^ Lua Configuration Interface: /modules/luci-base/po. 2017-05-10 [2017-05-14]. (原始內容存檔於2017-09-26).
- ^ LEDE Source Repository: /target/Config.in. 2017-03-30 [2017-05-14]. (原始內容存檔於2017-09-26).
- ^ OpenWRT Gets Forked By Some Of Its Own Developers As LEDE Project. www.phoronix.com. [2024-10-13] (英語).
- ^ LEDE and OpenWrt [LWN.net]. lwn.net. [2024-10-13].
- ^ Chirgwin; Richard. Router hackers reach for the fork: LEDE splits from OpenWRT. 5-5-2016.
- ^ LEDE and OpenWrt [LWN.net]. lwn.net. [2024-10-13].
- ^ [OpenWrt Wiki] OpenWrt 18.06. openwrt.org. [2024-10-13].
- ^ Announcing the OpenWrt/LEDE merge. OpenWrt Forum. 2018-01-02 [2024-10-13] (英語).
- ^ [OpenWrt Wiki] About the OpenWrt/LEDE project. openwrt.org. [2024-10-13].
- ^ Lede-project.org. February 22, 2017. Retrieved October 20, 2017..
- ^ Lede-project.org. April 19, 2017. Retrieved October 20, 2017..
- ^ Lede-project.org. June 12, 2017. Retrieved October 20, 2017..
- ^ Lede-project.org. October 3, 2017. Retrieved October 20, 2017..
- ^ Lede-project.org. October 18, 2017. Retrieved October 20, 2017..
- ^ Lede-project.org. July 15, 2018. Retrieved July 20, 2018..
- ^ Lede-project.org. September 2, 2018. Retrieved November 2, 2018..
- ^ Debating overlayfs. June 15, 2011 [2015-07-24]. (原始內容存檔於2015-07-24).
- ^ OpenWrt partition layout. [2015-07-24]. (原始內容存檔於2015-07-24).
- ^ OpenWrt Unified Configuration Interface. [2015-07-24]. (原始內容存檔於2015-07-24).
- ^ freecwmp is a CWMP client for OpenWrt. [2015-07-24]. (原始內容存檔於2014-07-09).
- ^ 60.0 60.1 LuCI project. [February 28, 2009]. (原始內容存檔於2015-10-26).
- ^ OpenWrt 8.09 release notes. [February 23, 2009]. (原始內容存檔於2015-08-17).
- ^ [OpenWrt Wiki] mwan3 (Multi WAN load balancing/failover). openwrt.org. [2024-10-13].
- ^ Table of Hardware [OpenWrt Wiki]. wiki.openwrt.org. [2016-10-06]. (原始內容存檔於2016-10-09).
- ^ Buyers' Guide [OpenWrt Wiki]. wiki.openwrt.org. [2016-10-06]. (原始內容存檔於2016-10-09).
- ^ CeroWrt Wiki. [2015-09-16]. (原始內容存檔於2015-10-07).
- ^ ANNOUNCE: debloat-testing kernel git tree. LWN.net. [2014-02-13]. (原始內容存檔於2014-02-22).
- ^ "closing time" message from author on PacketProtector forum. [2017-02-19]. (原始內容存檔於2013-04-21).
- ^ Free Software Foundation adds libreCMC to its list of endorsed distributions. FSF.org. 2014-09-04 [2014-12-21]. (原始內容存檔於2014-12-21).
- ^ GPL Code Center | TP-Link Australia. www.tp-link.com. [2024-10-13].
- ^ GPL Code Center | TP-Link Australia. www.tp-link.com. [2024-10-13].
- ^ [OpenWrt Wiki] Xiaomi. openwrt.org. [2024-10-13].
- ^ Project ImmortalWrt. GitHub. [2024-10-13] (英語).
- ^ ImmortalWrt Firmware Selector. firmware-selector.immortalwrt.org. [2024-10-13].
- ^ FriendlyElec Downloads. www.friendlyelec.com. [2024-10-13].