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 管理介面。

### 釋出版本

## 特色

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

* 可寫的根目錄，讓使用者自行新增，移除或修改任何檔案。SquashFS 與 JFFS2 檔案系統的整合形成的 overlayfs 機制形成重疊。squashfs 是一種唯讀的壓縮檔案系統，壓縮率和 gzip 差不多。jffs2 是一種紀錄檔類型的檔案系統，專為 NorFlash 設計。
* 包管理員 _opkg_，類似 dpkg，可讓使用者新增或移除軟體。軟體倉庫大約有 3500 個包。是一個可以從本地或遠端軟體下載並安裝 OpenWrt 包的輕量型實用工具。
* UCI (unified configuration interface) 指令碼支援
* 完整的硬體驅動程式支援。例如：內建網路交換器及其 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
  * 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 連線
  * 印表機
  * mobile broadband modem
  * 網路網路攝影機
  * 音效卡
* 著名的軟體支援硬體 :
  * 檔案分享經由 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 支援
* 系統更新，即便裝置已不再受原廠支援。

### Web 介面

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

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

* * *

## 應用

* 用於離線離線下載。
* VPN 伺服器。
* SSH 伺服器。
* 網路代理 [如：Brook, ShadowSocksR Plus+, PassWall, OpenClash（Clash）, HelloWorld（vssr）等...]。
* 主機遊戲加速。
* 內網穿透。
* 動態 DDNS。
* 單線多撥及頻寬疊加。
* 多線路撥號寬頻疊加。
* QOS 智慧型限速。
* 遠端影片監視。
* 去除廣告，封鎖惡意域名。
* 網路印表機。
* 軟路由。
* 比特幣礦機。
* Docker

## 硬體相容性

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，IPS，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 網通產品。

## 路由器韌體項目列表

* 客制路由器韌體清單
  * LEDE - OpenWRT 的分支專案，現已與 OpenWrt 主專案合併。

## 注釋

## 外部連結

* OpenWrt 首頁（頁面存檔備份，存於網際網路檔案館）
* OpenWrt 支援的無線路由器列表（頁面存檔備份，存於網際網路檔案館）
* OpenWrt Wiki 中文（頁面存檔備份，存於網際網路檔案館）