OpenWrt

OpenWrt是适用于嵌入式设备的一个Linux发行版。

OpenWrt
OpenWrt 18.06.1 login screen
开发者OpenWrt Project
作業系統家族類Unix系統
運作狀態支援中
源码模式自由軟體開源軟體
首次发布2004年 (2004)
当前版本
  • 23.05.3 (2024年3月25日;穩定版本)[1]
支持的语言22種語言[2]
更新方式opkg
软件包管理系统opkg
支援平台使用以下架构的50种不同平台:AVR32, ARM, CRIS, m68k, MIPS, PowerPC, SPARC, SuperH, Ubicom32, x86, x86-64[3]
内核类别宏内核Linux
使用者空間BusyBox、GNU
默认用户界面命令行界面、WebUI
许可证自由软件GPL和其他许可证)
官方網站
仓库

相对原厂固件而言,OpenWrt不是一个单一、静态的固件,而是提供了一个可添加软件包的可写的文件系统。这使使用者可以自由的选择应用程序和配置,而不必受设备提供商的限制,并且可以使用一些适合某方面应用的软件包来定制你的设备。对于开发者来说,OpenWrt是一个框架,開發者不必麻烦地构建整个固件就能得到想要的应用程序;对于使用者来说,这意味着完全定制的能力,與以往不同的方式使用设备,OPKG包含超过3500个软件。 默认使用LuCI作为web交互界面。

OpenWrt另有一个复刻分支项目,名为LEDE,两者于2018年1月合并,合并后的项目使用OpenWrt的名字、LEDE的源代码[4]

歷史

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” 版本发布[5]

2011年9月21日,juhosg接手OpenWrt,並释出了wr703n的官方源码。

2013年4月,OpenWrt 12.09 发布,Linux核心版號為3.3版。

由於WRT54G價格低廉,OpenWrt又開源免費,它在当时成為了学习嵌入式Linux的最佳平台。OpenWrt本身未带任何UI,需要通过LuCI,webif等各种延伸界面,LuCI界面是使用率最高的Web管理界面。

釋出版本

版本[6][7] 一般可用 内核 最新小版本 发布日期 產品壽命結束[8] 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)[9][10] 2007-02-05 2.4.30 不適用 不適用 不適用 NVRAM-based, nas, wl. Supported platform: brcm-2.4.
7.06 (Kamikaze)[11] 2007-06-02 2.6.19 7.09 [12][13] 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)[14] 2009-02-19 2.6.26 8.09.2[15][16] 2010-01-10 New platform: ar71xx.
10.03 (Backfire)[17] 2010-04-07 2.6.32 10.03.1[18] 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)[19] 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)[20] 2014-10-02 3.10.49 不適用 不適用 不適用 New platforms: i.MX23, i.MX6.[21]
15.05 (Chaos Calmer)[22] 2015-09-11 3.18.20 15.05.1[23] 2016-03-16 2016, March nftables (available since Linux kernel 3.12); New platforms: TBA if any
17.01.0 (Reboot (OpenWrt/LEDE))[24] 2017-02-22 4.4.50 17.01.7 2019-06-20 2019, June musl[25] There were only release notes for "OpenWrt/LEDE 17.01.7 - Seventh Service Release - June 2019" with a code revision "rTODO-2252731af4".[26] The official announcement of "OpenWrt/LEDE v17.01.7 service release" was never made in the OpenWrt Forum due to GPG signing certs issues.[27]
18.06.0[28] 2018-07-31 4.9.111 / 4.14.52 18.06.9 2020-12-09 2020, December
19.07.0[29] 2020-01-06 4.14.162 19.07.10 2022-04-20 2022, April WPA3 support.[30] Flow offloading (beta).[31]
21.02.0[32] 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 [33]
22.03.0[34] 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.[35]
23.05.0[36] 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.[37]
图例:   旧版本   旧版本,仍被支持   最新版本

特色

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

  • 可寫的根目录,讓使用者自行新增,移除或修改任何檔案。SquashFSJFFS2文件系统的整合形成的overlayfs机制[38]形成重疊[39]。squashfs是一种只读的压缩文件系统,压缩率和gzip差不多。jffs2是一种日志类型的文件系统,专为NorFlash设计。
  • 包管理員opkg,類似dpkg,可讓使用者新增或移除軟體。软件仓库大約有3500個包。是一个可以从本地或遠端软件下载并安装OpenWrt包的轻量型实用工具。
  • UCI (unified configuration interface) 腳本支持[40]
  • 完整的硬體驅動程式支持。例如: 內建網路交換器及其VLAN-相容, WNICs, DSL modems, FX等。
  • 各種计算机網路設定如下:
    • 路由可透過iproute2, Quagga, BIRD等。
    • 支持多种 IPv6过渡机制
    • 網狀網路可經由B.A.T.M.A.N., OLSR與IEEE 802.11s-相容的WNIC drivers
    • 無線功能。如裝置實現無線路由無線接取器、無線橋接、強制網路門戶,或結合一些裝置如: ChilliSpotWiFiDog Captive Portal等。
    • 無線安全: Packet injection,例如: Airpwn页面存档备份,存于lorcon等。
    • 狀態防火牆、NAT和路由器端口扫描(port forwarding)經由netfilter;其他還有PeerGuardian已支持。
    • UPnPNAT-PMP可透過 upnpd來設定。
    • port knocking可透過knockd與knock達成。
    • TR-069[41]
    • 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相容),NFSFTP,經由print server CUPS (spooling) 或 p910nd (non-spooling)分享列印功能。
    • PulseAudio, Music Player Daemon,音效與影像流經由DLNA/UPnP AV standardsiTunes (DAAP) 伺服器
    • Asterisk
    • MQ Telemetry Transport經由Mosquitto
  • 可延伸的Ajax,由LuCI支持[42]
  • 系統更新,即便裝置已不再受原廠支持。

Web 界面

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

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

应用

  • 用于脱机离线下载。
  • VPN服务器。
  • SSH服务器。
  • 网络代理[如:Brook, ShadowSocksR Plus+, PassWall, OpenClash(Clash), HelloWorld(vssr)等...]。
  • 主机游戏加速。
  • 内网穿透。
  • 动态DDNS。
  • 单线多拨及带宽叠加。
  • 多线路拨号宽带叠加。
  • QOS智能限速。
  • 远程视频监控。
  • 去除广告,屏蔽恶意域名。
  • 网络打印机。
  • 软路由
  • 比特币矿机。
  • Docker

硬件兼容性

OpenWrt運行許多不同的路由器,並在其網站上包括一個兼容硬件表。[44]在其買家指南中,比起博通,他们更建议购买高通Atheros芯片设备。[45] OpenWrt在各大社区和无私贡献的帮助下,你甚至在传统的ARM硬路由上可以见到OpenWrt的身影,也能部署在x86-64的传统电脑软路由里OpenWrt的兼容性远远不止如此。

正式採用

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

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

衍生分支

  • LEDE作為OpenWrt項目的分支機構而成立,並擁有許多相同的目標。现在已与OpenWRT合并。
  • CeroWrt  目的是補充debloat測試kernel tree,並為緩衝區修復的現實世界測試提供一個平台[46][47]
  • 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的安全分發,包括IDSIPSVPN和Web防病毒功能。
軟件包包括Snort,Snort-inline,FreeRADIUS,OpenVPN,DansGuardian和ClamAV。
這些工具可以通過OpenWrt的舊Web GUI管理界面訪問,稱為X-Wrt或webif^2。項目於2012年6月7日結束。[48]
  • Turris Omnia的Omnia路由器是使用OpenWrt的衍生運行
  • 無線社區網絡的多種草根項目,包括Freifunk,Libre-Mesh和qMp
  • libreCMC  基於OpenWrt的分發,沒有非自由軟件或二進制blob,由自由軟件基金會認可[49]
  • Asuswrt(asuswrt-merlin),載體為Asus網通產品。

路由器固件項目列表

  • 客制路由器韌體清單
    • LEDE - OpenWRT的分支專案,现已与OpenWrt主项目合并。

注釋

  1. . 2024年3月25日.
  2. . 2004-09-01 [2010-12-31]. (原始内容存档于2010-11-19).
  3. . dev.openwrt.org. 2013-11-22 [2014-02-13]. (原始内容存档于2014-02-22).
  4. . www.solidot.org. [2020-08-05]. (原始内容存档于2018-06-14).
  5. . [2022-04-29]. (原始内容存档于2022-05-02).
  6. . 2023-10-16 [2022-04-29]. (原始内容存档于2022-05-02).
  7. . 2023-10-19 [2024-03-23]. (原始内容存档于2024-05-05).
  8. . December 28, 2015 [2024-01-09]. (原始内容存档于2024-05-24).
  9. . 2007-02-05 [2024-03-23]. (原始内容存档于2024-05-06).
  10. . 2007-02-05 [2024-03-23]. (原始内容存档于2022-08-14).
  11. . 2007-06-02 [2024-03-23]. (原始内容存档于2023-08-04).
  12. . 2007-07-26 [2024-03-23]. (原始内容存档于2024-05-06).
  13. . 2007-09-30 [2024-03-23]. (原始内容存档于2024-05-06).
  14. . 2009-02-19 [2024-03-23]. (原始内容存档于2024-03-17).
  15. . 2009-06-03 [2024-03-23]. (原始内容存档于2023-12-11).
  16. . 2010-01-10 [2024-03-23]. (原始内容存档于2023-11-09).
  17. . 2010-04-07 [2024-03-23]. (原始内容存档于2024-02-21).
  18. . 2011-12-21 [2024-03-23]. (原始内容存档于2023-12-11).
  19. . 2013-04-25 [2024-03-23]. (原始内容存档于2023-12-02).
  20. . 2014-10-02 [2024-03-23]. (原始内容存档于2024-02-26).
  21. . openwrt.org. July 16, 2013 [2018-07-16]. (原始内容存档于2024-05-09) (英语).
  22. . 2015-09-11 [2024-03-23]. (原始内容存档于2024-04-15).
  23. . 2016-03-16 [2024-03-23]. (原始内容存档于2024-04-06).
  24. . 2019-06-29 [2024-03-23]. (原始内容存档于2024-05-08).
  25. . 2015-06-16 [June 27, 2015]. (原始内容存档于2023-11-04).
  26. . 2019-06-20 [2024-03-23]. (原始内容存档于2024-02-21).
  27. . July 20, 2019 [2024-01-11]. (原始内容存档于2024-05-06).
  28. . 2018-07-31 [2024-03-23]. (原始内容存档于2024-03-14).
  29. . 2020-01-06 [2019-11-07]. (原始内容存档于2019-11-07).
  30. Mehrtens, Hauke. . OpenWrt Wiki. January 6, 2020 [2020-01-31]. (原始内容存档于2020-01-12).
  31. Man, Low Kah. . Leow Kah Man - Tech Blog. February 1, 2020 [2024-03-23]. (原始内容存档于2024-01-17).
  32. . 2021-09-04 [2021-12-26]. (原始内容存档于2021-10-20).
  33. Mehrtens, Hauke. . OpenWrt Wiki. September 4, 2021 [2021-12-26]. (原始内容存档于2021-11-30).
  34. . 2022-09-06 [2024-03-23]. (原始内容存档于2024-04-16).
  35. . OpenWrt Wiki. September 15, 2022 [2024-03-23]. (原始内容存档于2024-05-10).
  36. . 2023-10-13 [2024-03-23]. (原始内容存档于2024-05-05).
  37. Mehrtens, Hauke. . OpenWrt Wiki. 2023-10-11 [2023-10-24]. (原始内容存档于2024-05-10) (英语).
  38. . June 15, 2011 [2015-07-24]. (原始内容存档于2015-07-24).
  39. . [2015-07-24]. (原始内容存档于2015-07-24).
  40. . [2015-07-24]. (原始内容存档于2015-07-24).
  41. . [2015-07-24]. (原始内容存档于2014-07-09).
  42. . [February 28, 2009]. (原始内容存档于2015-10-26).
  43. . [February 23, 2009]. (原始内容存档于2015-08-17).
  44. . wiki.openwrt.org. [2016-10-06]. (原始内容存档于2016-10-09).
  45. . wiki.openwrt.org. [2016-10-06]. (原始内容存档于2016-10-09).
  46. . [2015-09-16]. (原始内容存档于2015-10-07).
  47. . LWN.net. [2014-02-13]. (原始内容存档于2014-02-22).
  48. . [2017-02-19]. (原始内容存档于2013-04-21).
  49. . FSF.org. 2014-09-04 [2014-12-21]. (原始内容存档于2014-12-21).

外部链接

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.