OpenWrt
相对原厂固件而言,OpenWrt不是一个单一、静态的固件,而是提供了一个可添加软件包的可写的文件系统。这使使用者可以自由的选择应用程序和配置,而不必受设备提供商的限制,并且可以使用一些适合某方面应用的软件包来定制你的设备。对于开发者来说,OpenWrt是一个框架,開發者不必麻烦地构建整个固件就能得到想要的应用程序;对于使用者来说,这意味着完全定制的能力,與以往不同的方式使用设备,OPKG包含超过3500个软件。 默认使用LuCI作为web交互界面。
OpenWrt 18.06.1 login screen | |
开发者 | OpenWrt Project |
---|---|
作業系統家族 | 類Unix系統 |
運作狀態 | 支援中 |
源码模式 | 自由軟體 、開源軟體 |
初始版本 | 2004年 |
最新版本 | 19.07.6(2021年1月19日[±][1] | )
最新測試版本 | 19.07.0-rc2[2](2019年11月30日 )[±] |
支持的语言 | 22種語言[3] |
更新方式 | opkg |
软件包管理系统 | opkg |
支援平台 | 使用以下架构的50种不同平台:AVR32, ARM, CRIS, m68k, MIPS, PowerPC, SPARC, SuperH, Ubicom32, x86, x86-64[4] |
内核类别 | 宏内核(Linux) |
使用者空間 | BusyBox、GNU |
默认用户界面 | 命令行界面、WebUI |
许可证 | 自由软件(GPL和其他许可证) |
官方網站 | openwrt |
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。2005年初,OpenWRT开发小組释出第一个 “experimental” 版本,这版本跟Linksys的GPL源码已大相徑庭,使用Linux核心源码2.4.3x,還使用了更模組化的buildroot2。2005年以後有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管理界面。
釋出版本
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[6] | ≈ 1,400 | ≈ 875 | ||||
r20742 | Backfire | 10.03 | April 7, 2010[7] | 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[8] | eglibc glibc |
≈ 2,950 | ≈ 1,175 | |||
r36088 | Attitude Adjustment | 12.09 | April 25, 2013[9] | 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[10] | 3.10.49[11] | musl eglibc |
? | ? | New platforms: i.MX23 , i.MX6 [12] and mvebu . | |
r46767 | Chaos Calmer | 15.05 | September 11, 2015[13] | 3.18.20[14] | musl glibc[15] |
? | ? | nftables (available since Linux kernel 3.12); New platforms: TBA if any | |
r49022 | Chaos Calmer | 15.05.1 | March 16, 2016[16] | 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[25] | 4.9.184 / 4.14.131 | |||||
v18.06.5 | OpenWrt 18.06.5 | 18.06.5 | November 29, 2019[26] | 4.9.198 / 4.14.151 | |||||
v19.07.0-rc2 | OpenWrt 19.07.0-rc2 | 19.07.0-rc2 | December 2, 2019[27] | ||||||
v19.07.0 | OpenWrt 19.07.0 | 19.07.0 | January 10, 2020[28] | The OpenWrt 19.07 series focuses on bringing all supported targets to Kernel 4.14 and introducing initial device tree based ath79 support.[29] | |||||
舊版本 舊版本,仍被支援 当前版本 最新的预览版 未来版本 |
特色
OpenWrt遵循著市集-哲學而且已知有著豐富的選項。功能如下:
- 可寫的根目录,讓使用者自行新增,移除或修改任何檔案。SquashFS与JFFS2文件系统的整合形成的overlayfs机制[30]形成重疊[31]。squashfs是一种只读的压缩文件系统,压缩率和gzip差不多。jffs2是一种日志类型的文件系统,专为NorFlash设计。
- 包管理員opkg,類似dpkg,可讓使用者新增或移除軟體。软件仓库大約有3500個包。是一个可以从本地或遠端软件下载并安装OpenWrt包的轻量型实用工具。
- UCI (unified configuration interface) 腳本支持[32]
- 完整的硬體驅動程式支持。例如: 內建網路交換器及其VLAN-相容, WNICs, DSL modems, FX等。
- 各種计算机網路設定如下:
- 路由可透過iproute2, Quagga, BIRD等。
- 網狀網路可經由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[33]
- 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支持[34]
- 系統更新,即便裝置已不再受原廠支持。
应用
- 用于脱机离线下载。
- VPN服务器。
- SSH服务器。
- 网络代理[如:ShadowSocksR Plus+,PassWall,OpenClash(Clash),HelloWorld(vssr)等...]。
- 主机游戏加速。
- 内网穿透。
- 动态DDNS。
- 单线多拨及带宽叠加。
- 多线路拨号宽带叠加。
- QOS智能限速。
- 远程视频监控。
- 去除广告,屏蔽恶意域名。
- 网络打印机。
- 软路由。
- 比特币矿机。
- Docker
硬件兼容性
OpenWrt運行許多不同的路由器,並在其網站上包括一個兼容硬件表。[36]在其買家指南中,比起博通,他们更建议购买高通Atheros芯片设备。[37] OpenWrt在各大社区和无私贡献的帮助下,你甚至在传统的ARM硬路由上可以见到OpenWrt的身影,也能部署在x86-64的传统电脑软路由里OpenWrt的兼容性远远不止如此。
正式採用
OpenWrt,特別是其Buildroot構建系統,已經採用了很多次:
- Freifunk及其他網狀網絡社區
- Bufferbloat.net (Cerowrt)
- IETF IPv6集成項目HIPnet和HomeNet是基於OpenWrt
衍生分支
- LEDE作為OpenWrt項目的分支機構而成立,並擁有許多相同的目標。现在已与OpenWRT合并。
- CeroWrt – 目的是補充debloat測試kernel tree,並為緩衝區修復的現實世界測試提供一個平台[38][39]
- 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日結束。[40]
注釋
- . openwrt.org (英语).
- . OpenWrt. 2019-11-30 [2019-11-30]. "
- . 2004-09-01 [2010-12-31]. (原始内容存档于2010-11-19).
- . dev.openwrt.org. 2013-11-22 [2014-02-13]. (原始内容存档于2014-02-22).
- . www.solidot.org. [2020-08-05]. (原始内容存档于2018-06-14).
- . openwrt.org. 2010-01-10 [2013-04-26]. (原始内容存档于2015-01-01).
- . openwrt.org. 2010-04-07 [2013-04-26]. (原始内容存档于2014-03-29).
- . openwrt.org. 2011-12-21 [2013-04-26]. (原始内容存档于2014-03-29).
- . openwrt.org. 2013-04-25 [2013-04-26]. (原始内容存档于2013-08-08).
- . openwrt.org. October 2014 [2017年2月19日]. (原始内容存档于2014年10月6日).
- . dev.openwrt.org. 2014-07-20 [2015-07-24]. (原始内容存档于2015-07-24).
- . [2017-02-19]. (原始内容存档于2017-07-02).
- . openwrt.org. September 2015 [2015-09-28]. (原始内容存档于2015-09-29).
- . 2015-07-16 [2015-09-28]. (原始内容存档于2015-09-28).
- . 2015-03-11 [2015-07-24]. (原始内容存档于2015-06-30).
- . 16 March 2016 [21 March 2016]. (原始内容存档于2016年3月24日).
- . 16 March 2016 [21 March 2016]. (原始内容存档于2016年3月24日).
- . 2015-09-11 [2015-09-28]. (原始内容存档于2015-09-29).
- . 2015-06-16 [2015-07-24]. (原始内容存档于2015-06-30).
- . [2019-07-09]. (原始内容存档于2019-07-09).
- . [2019-07-09]. (原始内容存档于2019-07-09).
- . [2019-07-09]. (原始内容存档于2019-07-07).
- . [2019-07-09]. (原始内容存档于2019-07-09).
- . [2019-07-09]. (原始内容存档于2019-07-05).
- . [2019-07-09]. (原始内容存档于2019-07-05).
- . [2019-11-29]. (原始内容存档于2019-11-23).
- . [2019-11-07]. (原始内容存档于2019-11-07).
- . [2020-01-31]. (原始内容存档于2020-01-12).
- . [2019-11-07]. (原始内容存档于2019-11-07).
- . June 15, 2011 [2015-07-24]. (原始内容存档于2015-07-24).
- . [2015-07-24]. (原始内容存档于2015-07-24).
- . [2015-07-24]. (原始内容存档于2015-07-24).
- . [2015-07-24]. (原始内容存档于2014-07-09).
- . [February 28, 2009]. (原始内容存档于2015-10-26).
- . [February 23, 2009]. (原始内容存档于2015-08-17).
- . wiki.openwrt.org. [2016-10-06]. (原始内容存档于2016-10-09).
- . wiki.openwrt.org. [2016-10-06]. (原始内容存档于2016-10-09).
- . [2015-09-16]. (原始内容存档于2015-10-07).
- . LWN.net. [2014-02-13]. (原始内容存档于2014-02-22).
- . [2017-02-19]. (原始内容存档于2013-04-21).
- . FSF.org. 2014-09-04 [2014-12-21]. (原始内容存档于2014-12-21).