OpenWrt
OpenWrt 18.06.1 登入螢幕 | |
| 開發者 | Gábor Juhos、Florian Fainelli、Hauke Mehrtens、Jo-Philipp Wich |
|---|---|
| 程式語言 | Lua、C語言 |
| 作業系統家族 | 類Unix系統 |
| 運作狀態 | 支援中 |
| 原始碼模式 | 自由軟件 、開源軟件 |
| 首次釋出 | 2004年 |
| 目前版本 |
|
| 最新預覽 | 24.10.1[2](2025年4月15日)[±] |
| 支援的語言 | 60種[3] |
語言列表 南非語、 | |
| 更新方式 | opkg, apk (25.12 以後) |
| 軟件套件管理系統 | opkg, apk (25.12 以後) |
| 支援平台 | 使用以下架構的50種不同平台:AVR32, ARM, CRIS, m68k, MIPS, PowerPC, SPARC, SuperH, Ubicom32, x86, x86-64[4] |
| 內核類別 | 整塊性核心 |
| 用戶空間 | BusyBox、GNU |
| 預設用戶介面 | 命令列介面、WebUI |
| 特許條款 | |
| 官方網站 | openwrt |
| 倉庫 | |
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的韌體;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」 版本釋出[6]
2011年9月21日,juhosg接手OpenWrt,並釋出了wr703n的官方原始碼。
2013年4月,OpenWrt 12.09 釋出,Linux核心版號為3.3版。
由於WRT54G價格低廉,OpenWrt又開源免費,它在當時成為了學習嵌入式Linux的最佳平台。OpenWrt本身未帶任何UI,需要通過LuCI,webif等各種延伸介面,目前LuCI介面是使用率最高的Web管理介面。
釋出版本
[編輯]| 版本(代號) | 首次釋出日期 | 內核版本 | 最新版本 | 最新釋出日期 | 停止支援日期(預計) | libc | 備註 |
|---|---|---|---|---|---|---|---|
| "穩定版本" | 2004年 | ? | 不適用 | uClibc | 基於 Linksys 為 WRT54G 釋出的 GPL 原始碼以及 uClibc 專案的 buildroot | ||
| 0.9(White Russian) | 2007年2月5日 | 2.4.30 | 不適用 | 基於 NVRAM,包含 nas、wl。支援平台:brcm-2.4。
| |||
| 7.06(Kamikaze) | 2007年6月2日 | 2.6.19 | 7.09 | 2007年9月30日 | 不適用 | 使用 opkg。支援平台:atheros-2.6、au1000-2.6、brcm-2.4、brcm47xx-2.6、ixp4xx-2.6、imagicbox-2.6、rb532-2.6 及 x86-2.6。
| |
| 8.09(Kamikaze) | 2009年2月19日 | 2.6.26 | 8.09.2 | 2010年1月10日 | 不適用 | 新增平台:ar71xx。
| |
| 10.03(Backfire) | 2010年4月7日 | 2.6.32 | 10.03.1 | 2011年12月21日 | 不適用 | 支援平台: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 及 xburst。
| |
| 12.09(Attitude Adjustment) | 2013年4月25日 | 3.3 | 不適用 | 將 CoDel(網絡排程器)從 Linux 3.5 回移植至 3.3。新增平台:ramips、bcm2708(樹莓派)等。
| |||
| 14.07(Barrier Breaker) | 2014年10月2日 | 3.10 | 不適用 | 新增平台:i.MX23、i.MX6。
| |||
| 15.05(Chaos Calmer) | 2015年9月11日 | 3.18 | 15.05.1 | 2016年3月16日 | 2016年3月 | nftables(Linux 3.12 起提供);新增平台:待補充。 | |
| 17.01(Reboot(OpenWrt/LEDE)) | 2017年2月22日 | 4.4 | 17.01.7 | 2019年6月20日 | 2019年6月 | musl | 僅釋出了「OpenWrt/LEDE 17.01.7——第七次服務更新(2019年6月)」的發行說明,其代碼修訂版本為「rTODO-2252731af4」。由於 GPG 簽章證書問題,OpenWrt 討論區從未正式釋出「OpenWrt/LEDE v17.01.7 服務更新」的公告。 |
| 18.06 | 2018年7月31日 | 4.9 / 4.14 | 18.06.9 | 2020年12月9日 | 2020年12月 | ? | |
| 19.07 | 2020年1月6日 | 4.14 | 19.07.10 | 2022年4月20日 | 2022年4月 | 支援 WPA3;引入流量解除安裝(Flow Offloading,測試版)。 | |
| 21.02 | 2021年9月4日 | 5.4 | 21.02.7 | 2023年5月1日 | 2023年5月 | 預設包含 WPA3、TLS 和 HTTPS 支援;初步支援 DSA;支援 LXC 與 ujail。 | |
| 22.03 | 2022年9月6日 | 5.10 | 22.03.7 | 2024年7月25日 | 2024年7月 | 基於 nftables 的 Firewall4;新增大量裝置支援;更多目標平台遷移至 DSA;LuCI 新增深色模式;解決2038年問題;核心組件更新。 | |
| 23.05 | 2023年10月13日 | 5.15 | 23.05.6 | 2025年8月20日 | 2025年8月 | 新增裝置支援;ipq40xx 目標遷移至 DSA;預設加密庫切換為 mbedtls;核心組件更新。 | |
| 24.10 | 2025年2月6日 | 6.6 | 24.10.7 | 2026年5月31日 | (2026年9月) | 新增裝置支援;ipq806x 目標遷移至 DSA;改進對 Wi-Fi 6(802.11ax)的支援,並初步支援 Wi-Fi 7(802.11be);核心組件更新。 | |
| 25.12(Dave's Guitar) | 2026年3月5日 | 6.12 | 25.12.4 | 2026年5月14日 | [有待確定] | 軟件套件管理器由 opkg 切換至 apk;Attended Sysupgrade(ASU)現已預設安裝。 | |
停止支援 支援中 最新版本 最新預覽 | |||||||
LEDE
[編輯]LEDE原本為OpenWrt的一個復刻分支。OpenWrt過去一段時間曾沒有關鍵性更新以及對新裝置的支援,而關於這些的討論也遲遲未有結果,這使得一群OpenWRT核心貢獻者感到不滿;2016年5月,大部分原OpenWRT社群的核心開發組成員決定另立新專案,暫時以「Linux Embedded Development Environment」(Linux嵌入式開發環境)作為專案名稱,一年後才正式以暫定名稱的縮寫LEDE定名。
2017年6月,LEDE社群和OpenWRT社群均同意將原OpenWRT專案合併至LEDE專案之中。LEDE專案的名號將不再使用,而是繼承原來OpenWRT的名號,但沿用LEDE社群的版規和流程規定。主體代碼以LEDE 17.x 為基礎,將OpenWRT的原始碼逐步合併至LEDE Snapshot上,系統標識改為OpenWRT。
特色
[編輯]OpenWrt遵循着市集-哲學而且已知有着豐富的選項。功能如下:
- 可寫的根目錄,讓用戶自行新增,移除或修改任何檔案。其原理是使用OverlayFS在唯讀的SquashFS上疊加可讀寫的JFFS2。[7][8]。SquashFS是一種唯讀的壓縮檔案系統,壓縮率和gzip差不多。jffs2是一種紀錄檔類型的檔案系統,專為NOR Flash設計。
- 包管理器opkg,類似dpkg,可讓用戶新增或移除軟件。軟件倉庫大約有3500個包。是一個可以從本地或遠端軟件下載並安裝OpenWrt包的輕量型實用工具。
- UCI (unified configuration interface) 指令碼支援[9]
- 完整的硬件驅動程式支援。例如: 內置網絡交換器及其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埠對映協定可透過 upnpd來設定。
- port knocking可透過knockd與knock達成。
- TR-069[10]
- 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連線
- 著名的軟件支援硬件 :
- 可延伸的Ajax,由LuCI支援[11]
- 系統更新,即便裝置已不再受原廠支援。
Web 介面
[編輯]在8.09版之前,OpenWrt提供最小GUI。OpenWrt推出8.09及日後新版中,有更多的Web介面可供選擇。[12]這個新介面基於LuCI,是一種MVC架構,由Lua語言撰寫。[11]
X-Wrt是一個專為OpenWrt所設計的套件,是LuCI以外的另一種選擇,在包倉庫中名為webif,由用戶自行下載安裝。
-
LuCI
-
X-Wrt
-
Gargoyle
應用
[編輯]- 用於離線離線下載
- VPN伺服器
- SSH伺服器
- 網絡代理
- 主機遊戲加速
- 內網穿透
- 動態DNS
- 單線多撥及頻寬疊加
- 多線路撥號寬頻疊加
- QoS智能限速
- 遠端影片監控
- 去除廣告,封鎖惡意域名
- 網絡打印機
- 軟路由
- 比特幣挖礦
- Docker
- 高可用性(HA)和負載均衡[13]
硬件相容性
[編輯]OpenWrt運行許多不同的路由器,並在其網站上包括一個相容硬件表。[14]在其買家指南中,比起博通,他們更建議購買高通Atheros晶片裝置。[15] OpenWrt在各大社群和無私貢獻的幫助下,你甚至在傳統的ARM硬路由上可以見到OpenWrt的身影,也能部署在x86-64的傳統電腦軟路由里OpenWrt的相容性遠遠不止如此。
正式採用
[編輯]OpenWrt,特別是其Buildroot構建系統,已經採用了很多次:
衍生分支
[編輯]- LEDE作為OpenWrt項目的分支機構而成立,並擁有許多相同的目標。現在已與OpenWRT合併。
- CeroWrt – 目的是補充debloat測試kernel tree,並為緩衝區修復的現實世界測試提供一個平台[16][17]
- 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日結束。[18]
- Turris Omnia的Omnia路由器是使用OpenWrt的衍生運行
- 無線社區網絡的多種草根項目,包括Freifunk,Libre-Mesh和qMp
- libreCMC – 基於OpenWrt的分發,沒有非自由軟件或二進制blob,由自由軟件基金會認可[19]
- Asuswrt(asuswrt-merlin),載體為Asus網通產品。
- 部分企業如小米、TP-Link 和 D-Link 釋出的家用路由器韌體是基於 OpenWrt 的二次開發版本。[20][20][21]
- ImmortalWrt - 一個OpenWrt的衍生版本,主要由中國的開發者社群維護。[22][23]
- 友善電子生產的Nano Pi系列的Soc裝置,並提供基於 OpenWrt 的衍生作業系統 FriendlyWrt。[24]
參見
[編輯]註釋
[編輯]- ^ https://openwrt.org/releases/25.12/notes-25.12.6; 出版日期: 2026年10月18日.
- ^ OpenWrt 24.10.1 - Service Release - 15. April 2025. OpenWrt. 2025-04-15 [2025-04-15].
- ^ 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).
- ^ 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).
- ^ 11.0 11.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]. (原始內容存檔於2025-01-28).
- ^ 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).
- ^ 20.0 20.1 GPL Code Center | TP-Link Australia. www.tp-link.com. [2024-10-13]. (原始內容存檔於2025-01-23).
- ^ [OpenWrt Wiki] Xiaomi. openwrt.org. [2024-10-13]. (原始內容存檔於2025-01-17).
- ^ Project ImmortalWrt. GitHub. [2024-10-13]. (原始內容存檔於2025-01-26) (英語).
- ^ ImmortalWrt Firmware Selector. firmware-selector.immortalwrt.org. [2024-10-13]. (原始內容存檔於2024-12-25).
- ^ FriendlyElec Downloads. www.friendlyelec.com. [2024-10-13]. (原始內容存檔於2025-01-26).