TL;DR
nmcli device 看到 unmanaged 说明 NetworkManager 放弃了管理该网卡。最可能的两个原因:一是 Ubuntu 20.04+ 自带一个系统级 drop-in 把所有非 wifi/gsm 网卡设为 unmanaged;二是 /etc/network/interfaces 里定义了该网卡,ifupdown 插件会把它从 NM 的管理范围里摘出去。本文给出两条独立修复路径,经 WSL2 Ubuntu 24.04 实机验证。
实测环境:WSL2 Ubuntu 24.04(systemd 启用),nmcli 1.46.0
—
一、先判断原因
# 查看所有设备状态
nmcli -t -f DEVICE,TYPE,STATE device
# 查看完整配置链:主配置 + 所有 drop-in
NetworkManager --print-config
输出常见两类:
- 情况 A:有线网卡
unmanaged,WiFiconnected——大概率是原因一。 - 情况 B:某个特定接口
unmanaged,且该接口名出现在/etc/network/interfaces里——原因二。
再确认系统级 drop-in 内容:
# 可能出现在 /usr/lib 或 /etc 下,两个路径有一个就说明原因一成立
cat /usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf 2>/dev/null
cat /etc/NetworkManager/conf.d/10-globally-managed-devices.conf 2>/dev/null
如果看到类似:
[keyfile]
unmanaged-devices=*,except:type:wifi,except:type:gsm,except:type:cdma
这就是原因一。该文件随 network-manager 包安装,把除 WiFi/GSM/CDMA 之外的所有设备都标记为 unmanaged(有线以太网首当其冲)[4]。
—
二、按原因修复
原因一:系统级 10-globally-managed-devices.conf
原理:NM 加载 drop-in 的顺序是 /usr/lib/... 先于 /etc/...,同一段落在 /etc/... 中会覆盖前者,优先级由高到低排列[2]。因此只要在 /etc/NetworkManager/conf.d/ 下创建一个同名空白文件即可覆盖系统级限制。
# 1. 在 /etc/ 下创建同名文件覆盖(内容为空)
sudo touch /etc/NetworkManager/conf.d/10-globally-managed-devices.conf
# 2. 重启 NetworkManager
sudo systemctl restart NetworkManager
# 3. 确认状态
nmcli -t -f DEVICE,TYPE,STATE device
期望输出:有线网卡状态从 unmanaged 变为 disconnected(NM 开始管理它)。空白文件覆盖之所以有效,是因为它替换了 keyfile 后端的 unmanaged-devices 取值;该键的语义见 Ubuntu 24.04 的 NetworkManager.conf(5) 手册页[1]。
显式写法(不推荐空白文件):如需更清晰,也可以写成:
[keyfile]
unmanaged-devices=none
两种写法效果相同。
回滚:
sudo rm /etc/NetworkManager/conf.d/10-globally-managed-devices.conf
sudo systemctl restart NetworkManager
原因二:/etc/network/interfaces 冲突
原理:NM 在 /etc/NetworkManager/system-connections/ 中存储连接配置文件(profiles)[3],在 /etc/network/interfaces 里声明过的接口会被 ifupdown 插件标记为 unmanaged,不进入 profiles 管理流程。
检查方法:
grep -n "iface\|auto" /etc/network/interfaces
如果看到类似 iface enp2s0 inet dhcp,说明该接口被 ifupdown 声明。
修复方式一(移交给 NM,推荐桌面/笔记本):
# 1. 在 interfaces 里注释掉该接口(保留 lo 即可)
sudo sed -i 's/^\(auto enp2s0\)/#\1/' /etc/network/interfaces
sudo sed -i 's/^\(iface enp2s0\)/#\1/' /etc/network/interfaces
# 2. 把 [ifupdown] 段改为 managed=true
sudo sed -i 's/^\[ifupdown\]/\[ifupdown\]\nmanaged=true/' /etc/NetworkManager/NetworkManager.conf
# 3. 重启
sudo systemctl restart NetworkManager
修复方式二(直接改 NM,不碰 interfaces):
# 创建 drop-in 强制标记为 managed(但 interfaces 里还在的话 NM 仍可能忽略)
sudo mkdir -p /etc/NetworkManager/conf.d
cat <<EOF | sudo tee /etc/NetworkManager/conf.d/99-managed.conf
[device]
match-device=interface-name:enp2s0
managed=true
EOF
sudo systemctl restart NetworkManager
注意:方式二在 ifupdown 插件下优先级低于 interfaces 文件声明,成功与否取决于 managed=false 的优先级。优先用方式一。
—
三、排错速查表
| 现象 | 原因 | 处理 |
|---|---|---|
eth0 unmanaged,WiFi 正常 |
系统级 unmanaged-devices drop-in | 原因一修复 |
特定接口 unmanaged |
/etc/network/interfaces 有声明 |
原因二修复 |
执行修复后仍 unmanaged |
接口名写错,或 drop-in 优先级冲突 | 检查 nmcli device 中实际接口名 |
nmcli device show 报错 |
NM 未运行 | sudo systemctl start NetworkManager |
WSL2 里网卡始终 unmanaged |
WSL 网络由 Hyper-V 层直接管理,NM 在 WSL 中无法接管 hv_netvsc 设备 | 见下方局限性说明 |
—
四、局限性
1. WSL2 特有:WSL 的 hv_netvsc 驱动由 WSL 自身管理,即使配置正确 NM 也无法接管(实测 Ubuntu 24.04 WSL 中 eth0 始终显示 unmanaged)。物理机或完整虚拟机无此限制。 2. systemd-networkd 共存:如果同时运行 systemd-networkd,两者可能争夺同一接口的管理权。生产环境建议二选一。 3. 服务器 vs 桌面:managed=true 适合需要 NM 自动管理的环境;对要求静态 IP 的服务器,更推荐直接在 /etc/network/interfaces 或 netplan 配置,不使用 NM。 4. 改配置后仍不连接:有时需要先断开再连接,或重启 NM 后再检查:sudo nmcli networking off && sudo nmcli networking on。
—
五、回滚指南
所有改动均可在任意时刻无损回滚:
# 原因一
sudo rm /etc/NetworkManager/conf.d/10-globally-managed-devices.conf
sudo systemctl restart NetworkManager
# 原因二方式一:恢复 interfaces 中的注释
# (自行将注释掉的 iface/auto 行恢复)
sudo systemctl restart NetworkManager
—
六、实测记录
- 测试机:WSL2 Ubuntu 24.04 LTS,nmcli 1.46.0,systemd 启用
- 日期:2026-11-01
- 现象:默认配置下
eth0: unmanaged - 操作:
touch /etc/NetworkManager/conf.d/10-globally-managed-devices.conf+systemctl restart NetworkManager - 结果:eth0 变为
connected (externally),获取 IP172.26.110.34/20,路由正常 - 清理:已 purge network-manager 并删除测试配置文件,系统已还原
参考资料
- [1] NetworkManager.conf(5) – Ubuntu 24.04 noble 手册页(keyfile unmanaged-devices)(ubuntu-nm-conf(5))
- [2] freedesktop NM mailing list — unmanaged-devices vs managed(fd-dev-list)
- [3] NetworkManager — Debian Wiki(debwiki-nm)
- [4] network-manager file list — Ubuntu Noble amd64(ubuntu-pkg-files)
文中主要命令已在 WSL Ubuntu(24.04)实测,个别条目(未装工具/安装类命令)仅核对官方文档,未实际执行。