日前,OpenWrt社区发布了 OpenWrt 21.02 系列的首个稳定版。这个版本相对于之前的 OpenWrt 19.07 做出了超过 5800 次修改,并已经持续开发了一年半。OpenWrt是一款为嵌入式设备设计的Linux操作系统,它可以用于替换庞大数量的无线路由器以及非网络设备的原厂固件,目前市场上的智能路由器系统大多基于OpenWrt的深度开发。OpenWrt可在运行设备直接编译,深受开发者喜爱,非常适合二次开发,还集成了大量的应用包,方便快速实现功能开发。
OpenWrt 21.02特点:
默认支持 WPA3
早在在 19.07 版本中就引入了 WPA3 支持,但其并没有预装到出厂镜像中。现在在 21.02 版本中,默认预装了这些 WPA3 所需的软件包。WPA3 现已被 OpenWrt 中的大多数Wifi驱动所支持。
默认支持 TLS 与 HTTPS
OpenWrt 现在默认启用了 TLS 功能并内置了 Mozilla 信任的证书,这也就意味着 wget 和 opkg 命令在不做额外操作的情况下可以直接获取 HTTPS 的资源了。 现在,opkg 下载服务器将默认使用 HTTPS 加密连接。OpenWrt 已经将默认的 SSL 库从 mbedTls 切换为 wolfSSL。也可以手动安装并切换为 mbedTLS 或是 OpenSSL。
从 OpenWrt 19.07 升级到 OpenWRrt 21.02 的话,HTTP 请求会被重定向到 HTTPS。但如果是全新安装 OpenWrt 21.02,则不会启用重定向。
初步的 DSA 支持
分布式交换机架构(Distributed Switch Architecture,DSA) 是用于配置以太网交换机的一项 Linux 内核标准。OpenWrt 21.02 对 DSA 做了初步的支持,现在已经替换了 OpenWrt 一直以来使用的 swconfig 系统。 需要注意的是,并不是所有设备都做了这方面的支持,一些没有支持的设备依旧需要使用 swconfig。
这项改动极大的影响了交换机端口和VLAN配置,因此系统升级工具无法将原有的 swconfig 配置转换为新的 DSA 配置。请参见下面的“升级”章节。
最低硬件需求增加至 8 MB 存储、64 MB 内存
由于新功能的增加以及Linux内核大小的提升,现在设备需要至少 8 MB 存储和 64 MB 内存才能运行官方 OpenWrt固件,建议使用具有更大储存空间的设备以提升固件扩展性。用户也可以尝试自己编译OpenWrt镜像(例如使用ImageBuilder),以放入只有 4MB 存储和 32MB 内存的设备中,但部分功能会被删减并且稳定性可能收到影响。
新网络配置文件语法与 board.json 改动
/etc/config/network 文件的网络配置语法有一些改动:
-
config interface 中的选项 ifname 重命名至 device (因其本身定义的就是一个 设备(device))
-
config device 中的类型 bridge 和 ifname 重命名至 ports
-
安装自动生成的配置文件现在将第二层(config device)和第三层(config interface)的配置分开了。
为保证兼容性,旧语法的配置文件依旧支持,且不会在升级过程中自动转换。
但 LuCI 网络界面会尝试检测旧语法并将其转换为新的语法,因为 LuCI 只支持新语法配置文件的编辑。
新配置文件语法
新的配置文件范例:
在此范例中,DSA 设备使用了 lanX 接口名称,而非 DSA 设备将会继续使用老的 ethX 接口名称。
board.json 变更
board.json 中网络相关的部分,所有的 “ifname” 也被重命名为了 “device”。D
DSA网桥现在也将其端口列表暴露于 “ports” 部分中。
如果你依赖于 board.json,此变更将是无法向下兼容的。
新设备支持
添加了Realtek的一些新型设备支持,主要是管理型交换机,现在用户可以尝试在具有多个以太网端口的设备上运行 OpenWrt 了。Bcm4908 、 rockchip 设备也已添加。
不再支持的设备
ar71xx 类型设备已经在 OpenWrt 19.07 中被废弃,并逐渐由 ath79 所取代。
在 OpenWrt 21.02 中,ar71xx 已经完全被移除,现在用户必须使用 ath79。 如果你正在运行 ar71xx 设备,官方建议重新安装 OpenWrt 21.02。已有的 ath79 用户则可以使用系统升级工具升级至 OpenWrt 21.02.
以下设备也被移除了:cns3xxx、rb532、samsung
启用了 ASLR(地址空间配置随机加载)
暴露于网络上的用户空间程序现在被链接为地址无关可执行文件(position-independent executable,PIE)以得到完整的 ASLR 支持。此功能使得攻击者更加难以攻击 OpenWrt。
Linux 内核启用容器支持
多项 Linux 容器(LXC)和 procd-ujail 所需的内核编译选项现已为大多数设备默认启用。 现在你可以在官方镜像上使用 LXC 和 ujail 了。
SELinux 支持
现在可以在编译时启用SELinux支持了,当前此功能并没有默认启用。
核心部件更新
OpenWrt 21.02.0 中的核心部件版本如下:
-
工具链:
-
musl libc 1.1.24
-
glibc 2.33
-
gcc 8.4.0
-
binutils 2.34
-
-
Linux 内核
-
5.4.143
-
-
网络:
-
hostapd 2020-06-08, dnsmasq 2.85, dropbear 2020.81
-
cfg80211/mac80211 (来自内核 5.10.42)
-
wireguard 反向移植自上游 Linux 内核
-
-
系统:
-
busybox 1.33.1
-
查看硬件支持表格获取更多 关于硬件支持的信息,你可以在此下载到 OpenWrt 固件: https://downloads.openwrt.org/releases/21.02.0/