NetworkManager 1.58正式发布:强化IPv6支持、Wi-Fi管理与安全性
网络功能是任何操作系统的核心组成部分,在 Linux 系统中,网络能力由多个关键组件协同实现。Linux 内核负责数据平面,处理数据包传输并维护设备实时状态;而 NetworkManager 则作为网络配置服务,承担控制平面的职能,负责决定设备应采用何种网络配置。
本周,NetworkManager 1.58 正式发布。自 1.56 版本以来,该版本历经逾五个月的开发周期,累计提交 407 次代码变更。此次更新聚焦三大方向:扩展对纯 IPv6 网络的支持、推出一系列 Wi-Fi 管理改进,以及强化安全防护机制。
IPv6 纯网络支持扩展
IPv4 地址耗尽问题持续推动各类网络向纯 IPv6 模式迁移,这一趋势每年都在加速。
红帽公司 Linux 工程平台赋能总监 Chris Van Hoof 表示:"越来越多的网络运营商、移动运营商、云服务提供商,以及所有受 IPv4 地址耗尽压力影响的机构,都在默认部署纯 IPv6 网络。"
长期以来,同时运行 IPv4 和 IPv6 的双栈网络一直是 IPv6 过渡的主流方案。然而,双栈方案存在一个结构性缺陷:它仍然要求每台设备持有一个 IPv4 地址,因此无法从根本上缓解地址耗尽的压力。
一种名为"IPv6 主导"(IPv6-mostly)的替代模型可以弥补这一不足。该模型由 RFC 8925《DHCPv4 的 IPv6 专用首选选项》定义,允许具备该能力的客户端完全放弃 IPv4,而仍需使用 IPv4 的传统主机则可在同一网段内继续获取 IPv4 地址。
Van Hoof 介绍说:"NetworkManager 现在还能自动发出 RFC 8925 的 IPv6 专用首选选项信号,向网络表明该主机完全可以跳过 IPv4 地址租用。"
对于仍需通过 IPv4 传输的流量,NetworkManager 1.58 新增了对 CLAT(客户侧转换器)的支持。CLAT 是 464XLAT 机制的客户端组成部分,该机制由 RFC 6877《464XLAT:有状态与无状态转换的结合》定义。464XLAT 方案将端点侧执行无状态报头转换的 CLAT 与运营商侧的有状态 NAT64 转换器配合使用,使得纯 IPv4 应用程序在不具备原生 IPv4 的网络中仍能正常运行。
"CLAT 是一个转换层,它让遗留的纯 IPv4 应用和服务无需额外中间件,就能在这些网络上继续正常工作,"Van Hoof 说道。
Wi-Fi 管理功能更新
NetworkManager 1.58 还对守护进程处理 Wi-Fi 连接和配置的方式进行了一系列改进。
频段选择方面,Wi-Fi 连接的频段属性现在支持 6GHz 选项,通过 NetworkManager 命令行工具 nmcli 执行 Wi-Fi 扫描时,也会同步显示每个接入点所使用的频段。
凭据处理方面,系统现已支持包含 64 位十六进制预共享密钥的 WPS 凭据,与部分接入点返回的格式保持一致。
文本界面方面,NetworkManager 的菜单式文本界面工具 nmtui 新增了多项易用性改进:新增设备选择按钮,用户可从列表中直接选择物理接口,无需手动输入名称;激活界面新增了 Wi-Fi 重新扫描按钮;密码输入提示框新增了显示密码的复选框;此外还新增了二维码分享选项,与现有的 nmcli device wifi show-password 命令功能对应。
安全加固
本次发布修复了若干安全漏洞,并收紧了与 DHCP 处理及连接权限相关的多项默认配置。
CVE-2026-10805 漏洞方面,主机名和 MUD URL 在写入 dhclient 配置文件前,现在会进行合法性验证,拒绝可能破坏配置语法的特殊字符。
DHCPv4 客户端修复方面,内部 DHCPv4 客户端中存在的一处越界读取漏洞已得到修复,该漏洞此前可被处于同一链路的攻击者通过构造畸形 UDP 数据包触发。
路由器选项验证方面,当 DHCP 租约中同时包含选项 121(无类静态路由选项)时,内部 DHCPv4 客户端现在将忽略 DHCP 选项 3(路由器选项),遵循 RFC 3442 的相关建议。
权限检查与废弃功能方面,对于限制特定用户访问的私有连接,NetworkManager 现在会验证相关用户是否具备访问所引用的 802.1X 证书和密钥的权限。
其他改进
本次发布还包含两项实用性补充:新增虚拟化网络隧道类型,以及修复了 NetworkManager 状态在重启后无法保留的问题。
NetworkManager 1.58 新增了对创建和管理 GENEVE 隧道接口的支持。GENEVE(通用网络虚拟化封装)是一种隧道协议,它将以太网帧封装在 UDP 数据包中传输,使虚拟网络或覆盖网络能够运行在物理三层基础设施之上。该协议主要应用于虚拟化和云计算环境,供虚拟机监控程序或容器网络层跨物理主机构建虚拟网段。此前,NetworkManager 无法直接创建或管理此类接口。
此外,本次发布还新增了托管状态持久化功能。NetworkManager 会追踪其是否负责管理某块网络设备,这一配置被称为设备的"托管状态"。此前,每次重启后该配置都会被重置,导致自动化配置工具每次系统重启后都必须重新应用该设置。NetworkManager 1.58 允许通过 nmcli 或 D-Bus API 设置的托管状态在系统重启后得以保留。
Van Hoof 表示:"这是一个细小的改动,但填补了一个真实存在的自动化空白:自动化配置工具和 cloud-init 类工作流现在可以通过 D-Bus 或 nmcli 一次性设置设备状态,并信任该状态在重启后依然有效,而无需每次都重新应用配置。"
Q&A
Q1:NetworkManager 1.58 新增的 CLAT 支持有什么作用?
A:CLAT(客户侧转换器)是 464XLAT 机制的客户端组成部分,能让纯 IPv4 应用在没有原生 IPv4 地址的纯 IPv6 网络上正常运行。它通过在端点执行无状态报头转换,配合运营商侧的 NAT64 转换器协同工作,无需额外安装中间件即可实现兼容,解决了纯 IPv6 网络中遗留应用无法通信的问题。
Q2:NetworkManager 1.58 修复了哪个安全漏洞?具体影响是什么?
A:本次修复了 CVE-2026-10805 漏洞,该漏洞涉及主机名和 MUD URL 在写入 dhclient 配置文件前未经充分验证,攻击者可能通过注入特殊字符篡改配置语法。此外,还修复了内部 DHCPv4 客户端中的越界读取漏洞,该漏洞可被处于同一网络链路的攻击者利用畸形 UDP 数据包触发。
Q3:NetworkManager 1.58 的托管状态持久化功能解决了什么问题?
A:此前,NetworkManager 对网络设备的托管状态会在每次系统重启后自动重置,导致自动化配置工具或 cloud-init 类工作流每次重启后都必须重新设置。1.58 版本新增的持久化功能允许通过 nmcli 或 D-Bus API 设置的托管状态在重启后继续保留,从而简化了自动化部署流程,减少了重复配置操作。
