OpenWrt

OpenWrt是一個適用於嵌入式設備的Linux發行版。

相對原廠固件而言，OpenWrt不是一個單一、靜態的固件，而是提供了一個可添加軟體包的可寫的文件系統。這讓使用者可以自由選擇應用程式和配置，而不必受設備提供商的限制，並且可以使用一些適合某方面應用的軟體包來定製你的設備。對於開發者來說，OpenWrt是一個框架，開發者不必麻煩地構建整個固件就能得到想要的應用程式；對於使用者來說，這意味著完全定製的能力，與以往不同的方式使用設備，OPKG包含超過3500個軟體。默認使用LuCI作為web交互界面。

OpenWrt也有另一個復刻分支項目，名為LEDE，兩者於2018年1月合併，合併後的項目使用OpenWrt的名字、LEDE的原始碼。

## 歷史

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」版本發布

2011年9月21日，juhosg接手OpenWrt，並釋出了wr703n的官方源碼。

2013年4月，OpenWrt 12.09 發布，Linux核心版號為3.3版。

由於WRT54G價格低廉，OpenWrt又開源免費，它在當時成為了學習嵌入式Linux的最佳平台。OpenWrt本身未帶任何UI，需要通過LuCI，webif等各種延伸界面，目前LuCI界面是使用率最高的Web管理界面。

### 釋出版本

版本（代號）｜首次發布日期｜內核版本｜最新版本｜最新發布日期｜停止支持日期（預計）｜libc｜備註

o｜2004–01｜未知｜uClibc｜基於 Linksys 為 WRT54G 發布的 GPL 原始碼以及 uClibc 項目的 buildroot

o（White Russian）｜2.4.30｜基於 NVRAM，包含 `nas`、`wl`。支持平台：`brcm-2.4`。

o（Kamikaze）｜2.6.19｜7.09｜不適用｜使用 `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`。

o（Kamikaze）｜2.6.26｜8.09.2｜不適用｜新增平台：`ar71xx`。

o（Backfire）｜2.6.32｜10.03.1｜不適用｜支持平台：`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`。

o（Attitude Adjustment）｜3.3｜將 CoDel（網路調度器）從 Linux 3.5 回移植至 3.3。新增平台：`ramips`、`bcm2708`（樹莓派）等。

o（Barrier Breaker）｜3.10｜新增平台：`i.MX23`、`i.MX6`。

o（Chaos Calmer）｜3.18｜15.05.1｜2016年3月｜nftables（Linux 3.12 起提供）；新增平台：待補充。

o（Reboot（OpenWrt/LEDE））｜4.4｜17.01.7｜2019年6月｜musl｜僅發布了「OpenWrt/LEDE 17.01.7——第七次服務更新（2019年6月）」的發行說明，其代碼修訂版本為「rTODO-2252731af4」。由於 GPG 簽名證書問題，OpenWrt 論壇從未正式發布「OpenWrt/LEDE v17.01.7 服務更新」的公告。

o｜4.9 / 4.14｜18.06.9｜2020年12月｜未知

o｜4.14｜19.07.10｜2022年4月｜支持 WPA3；引入流量卸載（Flow Offloading，測試版）。

o｜5.4｜21.02.7｜2023年5月｜默認包含 WPA3、TLS 和 HTTPS 支持；初步支持 DSA；支持 LXC 與 ujail。

o｜5.10｜22.03.7｜2024年7月｜基於 nftables 的 Firewall4；新增大量設備支持；更多目標平台遷移至 DSA；LuCI 新增深色模式；解決2038年問題；核心組件更新。

o｜5.15｜23.05.6｜2025年8月｜新增設備支持；ipq40xx 目標遷移至 DSA；默認加密庫切換為 mbedtls；核心組件更新。

6.6｜24.10.7｜（2026年9月）｜新增設備支持；ipq806x 目標遷移至 DSA；改進對 Wi-Fi 6（802.11ax）的支持，並初步支持 Wi-Fi 7（802.11be）；核心組件更新。

c（Dave's Guitar）｜6.12｜25.12.4｜待定｜軟體包管理器由 opkg 切換至 apk；Attended Sysupgrade（ASU）現已默認安裝。

l

## 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。SquashFS是一種只讀的壓縮文件系統，壓縮率和gzip差不多。jffs2是一種日誌類型的文件系統，專為NOR Flash設計。
- 包管理器opkg，類似dpkg，可讓使用者新增或移除軟體。軟體倉庫大約有3500個包。是一個可以從本地或遠端軟體下載並安裝OpenWrt包的輕量型實用工具。
- UCI (unified configuration interface) 腳本支持
- 完整的硬體驅動程式支持。例如: 內建網路交換器及其VLAN-相容, Wireless network interface controllers, DSL modems, Foreign exchange service (telecommunications)等。
- 路由可透過iproute2, Quagga, Bird Internet routing daemon等。
- 支持多種 IPv6過渡機制
- 網狀網路可經由B.A.T.M.A.N., Optimized Link State Routing Protocol與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
- IPS經由Snort
- 使用多個網際網路服務供應商達到負載平衡。
- IP穿透(tunneling)
- 網路監視與統計數據等。例如: RRDtool, collectd, Nagios, Munin (network monitoring application), Zabbix等。
- 域名系統 (DNS)和DHCP經由Dnsmasq、MaraDNS等。
- 動態DNS可負責修復網際網路服務供應商的DNS，但不提供靜態IP位址
- 無線分散系統(WDS) 包含WPA-PSK、WPA2-PSK、WPA-PSK/WPA2-PSK混合加密模式
- OpenWrt支持各種Linux已支持的硬體，並透過USB連線
- 印表機
- 移動上網卡
- 網路攝像頭
- 音效卡
- 文件分享經由Samba，(Windows相容)，NFS和FTP，經由列印伺服器CUPS (spooling) 或 p910nd (non-spooling)分享列印功能。
- PulseAudio, Music Player Daemon，音效與影像流經由DLNA/UPnP AV standards、iTunes (Digital Audio Access Protocol) 伺服器
- Asterisk
- 使用Mosquitto實現的MQTT
- 可延伸的Ajax，由LuCI支持
- 系統更新，即便裝置已不再受原廠支持。

### Web 界面

在8.09版之前，OpenWrt提供最小GUI。OpenWrt推出8.09及日後新版中，有更多的Web界面可供選擇。這個新界面基於LuCI，是一種MVC架構，由Lua語言撰寫。

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

- LuCI
- X-Wrt
- Gargoyle

## 應用

- 用於脫機離線下載
- VPN伺服器
- SSH伺服器
- 網路代理
- 主機遊戲加速
- 內網穿透
- 動態DNS
- 單線多撥及帶寬疊加
- 多線路撥號寬頻疊加
- QoS智能限速
- 遠程影片監控
- 去除廣告，屏蔽惡意域名
- 網路印表機
- 軟路由
- 比特幣挖礦
- Docker
- 高可用性（HA）和負載均衡

## 硬體兼容性

OpenWrt運行許多不同的路由器，並在其網站上包括一個兼容硬體表。在其買家指南中，比起博通，他們更建議購買高通Atheros晶片設備。

OpenWrt在各大社區和無私貢獻的幫助下，你甚至在傳統的ARM硬路由上可以見到OpenWrt的身影，也能部署在x86-64的傳統電腦軟路由里OpenWrt的兼容性遠遠不止如此。

## 正式採用

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

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

## 衍生分支

- LEDE作為OpenWrt項目的分支機構而成立，並擁有許多相同的目標。現在已與OpenWRT合併。
- CeroWrt – 目的是補充debloat測試kernel tree，並為緩衝區修復的現實世界測試提供一個平台
- 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，入侵防護，VPN和Web防病毒功能。

軟體包包括Snort，Snort-inline，FreeRADIUS，OpenVPN，DansGuardian和ClamAV。

這些工具可以通過OpenWrt的舊Web GUI管理界面訪問，稱為X-Wrt或webif^2。項目於2012年6月7日結束。

- Turris Omnia的Omnia路由器是使用OpenWrt的衍生運行
- 無線社區網路的多種草根項目，包括Freifunk，Libre-Mesh和qMp
- libreCMC – 基於OpenWrt的分發，沒有非自由軟體或二進制blob，由自由軟體基金會認可
- Asuswrt（asuswrt-merlin），載體為Asus網通產品。
- 部分企業如小米、TP-Link 和 D-Link 發布的家用路由器固件是基於 OpenWrt 的二次開發版本。
- ImmortalWrt - 一個OpenWrt的衍生版本，主要由中國的開發者社區維護。
- 友善電子生產的Nano Pi系列的Soc設備，並提供基於 OpenWrt 的衍生作業系統 FriendlyWrt。

## 基本資料

- 域：OpenWrt Screenshot 18.06.1.svg
- 開發者： OpenWrt Project
- 作業系統家族：類Unix系統
- 運作狀態：支援中
- 源碼模式：自由軟體、開源軟體
- 發行日期：2004年
- 語言：22種語言
- 更新方式：opkg, apk (25.12 以後)
- 軟體包管理系統：opkg, apk (25.12 以後)
- 支援平台：使用以下架構的50種不同平台：AVR32, ARM, CRIS, m68k, MIPS, PowerPC, SPARC, SuperH, Ubicom32, x86, x86-64
- 內核類別：宏內核（Linux）
- 使用者空間：BusyBox、GNU
- 默認使用者界面：命令行界面、WebUI
- 許可證：自由軟體（GPL和其他許可證）