Linux nmcli 网络管理完整教程
本教程所有命令均已在Deepin 25(基于 Debian bookworm/sid)上,使用NetworkManager 1.44.2 / nmcli 1.44.2实机验证,全部运行成功。
系统主要设备:ens33(有线以太网),无 Wi-Fi 硬件(WIFI-HW: missing),因此 Wi-Fi 相关命令通过--help与连接配置验证。
教程中带*的命令表示执行需要root 权限(sudo或以 root 身份)。
目录
- 系统环境确认
- 安装 NetworkManager 与 nmcli
- nmcli 命令结构与全局选项
- 对象(Object)速查
- 基础查询(general)
- 整体网络控制(networking)
- 无线电开关(radio)
- 设备管理(device)
- 连接管理(connection)
- 常用配置项速查
- 有线以太网实战
- Wi-Fi 实战
- IPv4 / IPv6 配置
- 主机名与 DNS
- VPN 管理
- 聚合 / VLAN / 桥接 / 隧道
- 监控与日志
- 代理与权限(agent)
- 配置文件导入导出
- 常见问题排查
1. 系统环境确认
# 查看发行版cat/etc/os-release# 输出:Deepin 25 / Debian base# 查看内核uname-r# 查看包管理器(Debian/Ubuntu/Deepin 系列)whichaptapt-getdpkg本机环境实测输出:
PRETTY_NAME="Deepin 25" ID=deepin VERSION_ID="25"2. 安装 NetworkManager 与 nmcli
nmcli 由network-manager软件包提供,Deepin/Ubuntu/Debian 默认已安装。如缺失或需要重装:
# 1) 更新软件源*sudoaptupdate# 2) 安装 network-manager(包含 nmcli 与守护进程)*sudoaptinstall-ynetwork-manager# 3) 验证安装dpkg-l|grepnetwork-managerwhichnmcli nmcli--version# 4) 启动并设置开机自启*sudosystemctlenable--nowNetworkManager# 5) 检查服务状态systemctl status NetworkManager验证结果(本机已安装):
network-manager 1.44.2-7deepin7 amd64 /usr/bin/nmcli nmcli 工具,版本 1.44.2 ● NetworkManager.service - Network Manager Active: active (running)备注:本系统还预装了常用 VPN 插件包:
network-manager-openvpn / openconnect / l2tp / pptp / sstp / vpnc / strongswan,需要 GUI 时可同步安装*-gnome后缀包。
3. nmcli 命令结构与全局选项
nmcli [选项] 对象 { 命令 | help }常用全局选项(已逐一验证--help输出):
| 选项 | 含义 |
|---|---|
-a, --ask | 询问缺少的参数 |
-c, --colors auto|yes|no | 是否使用彩色输出 |
-e, --escape yes|no | 转义值中的分隔符 |
-f, --fields <字段,...> | 指定输出字段 |
-g, --get-values <字段,...> | terse 模式取字段(-m tabular -t -f的快捷方式) |
-h, --help | 帮助 |
-m, --mode tabular|multiline | 输出模式 |
-o, --overview | 概览模式 |
-p, --pretty | 美化输出 |
-s, --show-secrets | 显示密码/密钥 |
-t, --terse | 简洁输出(适合脚本) |
-v, --version | 版本 |
-w, --wait <秒> | 等待操作完成的超时 |
验证:
nmcli--version# nmcli 工具,版本 1.44.2nmcli-t-fSTATE general# connectednmcli-p-mmultiline connection show"有线连接"|head-3# connection.id: 有线连接# connection.uuid: 92b9647b-6074-4835-9ade-d4d90bf3ae96# connection.type: 802-3-ethernet4. 对象(Object)速查
nmcli--help实测输出中的对象清单:
| 简写 | 全称 | 用途 |
|---|---|---|
g | general | NetworkManager 全局状态与操作 |
n | networking | 整体网络开关 |
r | radio | 无线电(Wi-Fi/ WWAN)开关 |
c | connection | 连接(配置集)管理 |
d | device | 设备管理 |
a | agent | 密钥/ polkit 代理 |
m | monitor | 监听 NetworkManager 变更 |
5. 基础查询(general)
# 5.1 查看整体状态nmcli general status# STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN# 已连接 完全 missing 已启用 missing 已启用# 5.2 只看某一个字段(terse 模式)nmcli-t-fSTATE general# connectednmcli-t-fCONNECTIVITY general# full# 5.3 查看当前权限(区分是否需要 root)nmcli general permissions# org.freedesktop.NetworkManager.network-control 是# ...# 5.4 查看/修改主机名nmcli generalhostname# lihaozhenmcli generalhostnamenew-host# * 需 rootnmcli generalhostnamelihaozhe# 恢复# 5.5 查看日志级别与域(域支持可单独用 -f 控制)nmcli general logging# LEVEL DOMAINS# WARN PLATFORM,RFKILL,ETHER,WIFI,...nmcli general logging level INFO domains CORE,IP4,DHCP4,DEVICE# * 需 rootnmcli general logging level WARN# * 恢复默认# 5.6 重载配置(等同让 NM 重新读取磁盘上的连接配置)*nmcli general reload# 访问遭到拒绝(普通用户无权限),需要 root6. 整体网络控制(networking)
# 6.1 开关网络(关闭会断开所有连接,请慎用)*nmcli networking on nmcli networking off nmcli networking on# 重新启用# 6.2 网络连通性探测nmcli networking connectivity# full # 完整连通nmcli networking connectivity check# full # 强制重新探测返回值含义:none / portal / limited / full / unknown。
7. 无线电开关(radio)
# 7.1 一次性查看所有无线电nmcli radio all# WIFI-HW WIFI WWAN-HW WWAN# missing 已启用 missing 已启用# 7.2 分别开关 Wi-Fi / WWAN(实测可执行)nmcli radio wifi on nmcli radio wifi off nmcli radio wwan on nmcli radio wwan off# 7.3 同时开关nmcli radio all on nmcli radio all off
WIFI-HW: missing表示机器没有 Wi-Fi 网卡硬件,命令本身执行成功,但不产生实际效果。
8. 设备管理(device)
# 8.1 查看命令清单nmcli device--help# 8.2 列出所有设备及其状态nmcli device status# DEVICE TYPE STATE CONNECTION# ens33 ethernet 已连接 有线连接# lo loopback 连接(外部) lo# 8.3 查看某设备的详细属性(IP、DNS、路由、状态…)nmcli device show nmcli device show ens33# 8.4 控制设备是否由 NetworkManager 管理nmcli devicesetens33 managedyes# *nmcli devicesetens33 managed no# 让 NM 放权给 ifupdown# 8.5 激活 / 停用 / 重应用nmcli device connect ens33# 激活nmcli device disconnect ens33# 停用nmcli device reapply ens33# 重新应用当前连接配置# 8.6 修改设备当前连接(影响正在运行的连接,不一定落盘)nmcli device modify ens33 +ipv4.routes"192.168.50.0/24 192.168.10.1"iproute# 查看内核已生效nmcli device modify ens33-ipv4.routes"192.168.50.0/24 192.168.10.1"# 8.7 监听设备变更(实时输出,按 Ctrl+C 终止)nmcli device monitor nmcli device monitor ens33# 8.8 LLDP 邻居发现nmcli device lldp list# 8.9 删除某个软件/虚拟设备(如临时 bond、dummy)*nmcli device delete dummy09. 连接管理(connection)
连接是 NetworkManager 的核心:每个连接是一个配置集(profile),可绑定到任意设备。
# 9.1 命令清单nmcli connection--help# 9.2 列出全部连接nmcli connection show# NAME UUID TYPE DEVICE# 有线连接 92b9647b-... ethernet ens33# lo 1263f2e7-... loopback lonmcli connection show--active# 仅激活的nmcli connection show--order+name# 按名称排序# 9.3 详细查看某个连接nmcli-pconnection show"有线连接"# 美化nmcli-p-mmultiline connection show"有线连接"nmcli-t-fipv4 connection show"有线连接"# 仅 IPv4 配置# 9.4 启用 / 停用连接nmcli connection up"有线连接"nmcli connection down"有线连接"# 9.5 克隆一个连接nmcli connection clone"有线连接""有线连接-办公"nmcli connection delete"有线连接-办公"# 9.6 修改连接(可加 + / - 追加或移除条目)nmcli connection modify"有线连接"\ipv4.method manual\ipv4.addresses192.168.10.200/24\ipv4.gateway192.168.10.2\ipv4.dns8.8.8.8,1.1.1.1# 临时修改(重启或重新激活后失效)nmcli connection modify--temporary"有线连接"ipv4.dns8.8.4.4# 9.7 让改动立即生效nmcli connection up"有线连接"# 重新激活# 9.8 删除连接nmcli connection delete"有线连接-办公"# 9.9 监听某个连接的变更nmcli connection monitor"有线连接"# 9.10 重新载入磁盘上的配置(不重启守护进程)*nmcli connection reload# 需 root10. 常用配置项速查
用
nmcli connection show <name>可看到完整字段;下面是高频字段。
| 类别 | 字段 | 取值 | 说明 |
|---|---|---|---|
| 通用 | connection.autoconnect | yes/no | 是否开机自动连接 |
| 通用 | connection.id/connection.uuid | 字符串 | 名称与唯一标识 |
| 通用 | connection.interface-name | 设备名 | 绑定的接口(如ens33) |
| 通用 | connection.type | 802-3-ethernet等 | 连接类型 |
| IPv4 | ipv4.method | auto/manual/link-local/shared/disabled | 获取方式 |
| IPv4 | ipv4.addresses | 192.168.1.10/24,10.0.0.1/24 | 静态 IP |
| IPv4 | ipv4.gateway | 192.168.1.1 | 网关 |
| IPv4 | ipv4.dns | 8.8.8.8,1.1.1.1 | DNS |
| IPv4 | ipv4.routes | 10.0.0.0/8 192.168.1.1 | 静态路由 |
| IPv4 | ipv4.never-default | yes/no | 是否作为默认路由 |
| IPv6 | ipv6.method | auto/manual/ignore/shared/disabled | IPv6 方式 |
| IPv6 | ipv6.addresses | fd00::1/64 | 静态 IPv6 |
| IPv6 | ipv6.gateway | fd00::ff | IPv6 网关 |
| 以太网 | 802-3-ethernet.mtu | 1500 | MTU |
| Wi-Fi | 802-11-wireless.ssid | MyWiFi | SSID |
| Wi-Fi | 802-11-wireless-security.key-mgmt | wpa-psk/wpa-eap/none | 认证方式 |
| Wi-Fi | 802-11-wireless-security.psk | mypassword | WPA 预共享密钥 |
| 代理 | proxy.method | none/auto/manual | 代理方式 |
11. 有线以太网实战
11.1 DHCP 自动获取(最常见)
# 创建/修改为自动获取nmcli connectionaddtypeethernet con-name"dhcp-ens33"ifname ens33 ipv4.method auto ipv6.method auto nmcli connection up"dhcp-ens33"11.2 静态 IP
nmcli connectionaddtypeethernet con-name"static-ens33"ifname ens33\ipv4.method manual\ipv4.addresses192.168.10.100/24\ipv4.gateway192.168.10.2\ipv4.dns"192.168.10.2 8.8.8.8"\ipv6.method ignore\autoconnectyesnmcli connection up"static-ens33"nmcli-t-fipv4 connection show"static-ens33"|head-5# ipv4.method: manual# ipv4.addresses: 192.168.10.100/24# ipv4.gateway: 192.168.10.2# ipv4.dns: 192.168.10.2,8.8.8.8# ipv4.dns-search:11.3 修改现有连接为静态
nmcli connection modify"有线连接"\ipv4.method manual\ipv4.addresses192.168.10.100/24\ipv4.gateway192.168.10.2\ipv4.dns192.168.10.2\ipv6.method ignore nmcli connection up"有线连接"11.4 添加静态路由
nmcli connection modify"有线连接"+ipv4.routes"192.168.50.0/24 192.168.10.1"nmcli connection up"有线连接"iproute# default via 192.168.10.2 dev ens33 proto static metric 100# 192.168.10.0/24 dev ens33 proto kernel scope link src 192.168.10.100 metric 100# 192.168.50.0/24 via 192.168.10.1 dev ens33 proto static metric 100# 删除路由(用同一个串,以 - 开头)nmcli connection modify"有线连接"-ipv4.routes"192.168.50.0/24 192.168.10.1"11.5 仅链路本地 / 不作为默认路由
nmcli connection modify"有线连接"ipv4.never-defaultyesnmcli connection modify"有线连接"ipv6.never-defaultyes12. Wi-Fi 实战
本机无 Wi-Fi 硬件,因此以下命令的“可执行性”通过
nmcli device wifi --help、nmcli connection add type wifi与nmcli radio wifi on/off验证(命令本身返回 0)。连接网络需在有 Wi-Fi 网卡的机器上执行。
12.1 启用 Wi-Fi
nmcli radio wifi on nmcli radio all# 确认nmcli device status# 列出 wlan0 / wlp3s0 等12.2 扫描可用网络
nmcli device wifi list# 列出附近 APnmcli device wifi list ifname wlan0# 指定接口nmcli device wifi list bssid 00:11:22:33:44:55 nmcli device wifi list--rescanyes# 强制重新扫描nmcli device wifi list--rescanno# 使用缓存12.3 一次性连接开放/WPA 网络
# 开放网络nmcli device wifi connect"FreeWiFi"# WPA-PSKnmcli device wifi connect"HomeWiFi"password"mypassword123"# 连接到隐藏 SSIDnmcli device wifi connect"HiddenSSID"password"secret"hiddenyes12.4 创建永久连接配置(推荐)
nmcli connectionaddtypewifi con-name"home-wifi"ifname wlan0\ssid"HomeWiFi"\wifi-sec.key-mgmt wpa-psk\wifi-sec.psk"mypassword123"\autoconnectyes# 查看配置nmcli-sconnection show"home-wifi"|grep-E"ssid|key-mgmt|psk"# 802-11-wireless.ssid: HomeWiFi# 802-11-wireless-security.key-mgmt: wpa-psk# 802-11-wireless-security.psk: mypassword123nmcli connection up"home-wifi"12.5 WPA-Enterprise(802.1X)
nmcli connectionaddtypewifi con-name"corp-wifi"ifname wlan0\ssid"CorpWiFi"\wifi-sec.key-mgmt wpa-eap\802-1x.eap peap\802-1x.phase2-auth mschapv2\802-1x.identity"user@corp.com"\802-1x.password"your-password"nmcli connection up"corp-wifi"12.6 创建 Wi-Fi 热点
nmcli device wifi hotspot ifname wlan0\con-name"my-hotspot"\ssid"MyHotspot"\password"hotspot123"# 至少 8 位# 关闭热点nmcli connection down"my-hotspot"nmcli device disconnect wlan012.7 查看已保存的 Wi-Fi 密码
nmcli-sconnection show"home-wifi"|grep-E"psk"# 802-11-wireless-security.psk: mypassword123# 或者交互编辑(自动调用文本编辑器)nmcli connection edit"home-wifi"# print# set 802-11-wireless-security.psk newpass# save# quit13. IPv4 / IPv6 配置
13.1 IPv4 多种模式
# 自动(默认)nmcli connection modify"有线连接"ipv4.method auto# 手动(静态)nmcli connection modify"有线连接"\ipv4.method manual\ipv4.addresses192.168.10.100/24\ipv4.gateway192.168.10.2\ipv4.dns"8.8.8.8 1.1.1.1"# 共享本机网络给其它设备(类似路由器的 NAT)nmcli connection modify"有线连接"ipv4.method shared# 仅链路本地nmcli connection modify"有线连接"ipv4.method link-local# 关闭 IPv4nmcli connection modify"有线连接"ipv4.method disabled13.2 IPv6 多种模式
nmcli connection modify"有线连接"ipv6.method auto# SLAAC / DHCPv6nmcli connection modify"有线连接"ipv6.method ignore# 完全忽略 IPv6nmcli connection modify"有线连接"ipv6.method disabled# 静态 IPv6nmcli connection modify"有线连接"\ipv6.method manual\ipv6.addresses fd00::1/64\ipv6.gateway fd00::ff\ipv6.dns2001:4860:4860::8888 nmcli connection up"有线连接"13.3 多地址 / 多 DNS / 搜索域
# 多个 IP(逗号分隔)nmcli connection modify"有线连接"ipv4.addresses"192.168.10.100/24,10.0.0.5/24"# 多个 DNSnmcli connection modify"有线连接"ipv4.dns"8.8.8.8,1.1.1.1,192.168.10.2"# 搜索域nmcli connection modify"有线连接"ipv4.dns-search"corp.local,example.com"14. 主机名与 DNS
14.1 主机名
nmcli generalhostname# 查看nmcli generalhostnamemy-server# * 修改(需 root)hostnamectl status# 验证14.2 当前生效的 DNS
cat/etc/resolv.conf# Generated by NetworkManager# nameserver 192.168.10.2# 也可从设备状态里取nmcli device show ens33|grep-E"DNS"14.3 让所有连接使用全局 DNS(覆盖各连接)*
nmcli general logging# 仅查看,不修改# 真正“全局 DNS”配置在 /etc/NetworkManager/NetworkManager.conf 的 [main] 段:# [main]# dns=none# 然后用 systemd-resolved 或 dnsmasq:# [main]# dns=default# 重启生效*sudosystemctl restart NetworkManager15. VPN 管理
15.1 支持的 VPN 协议(通过插件)
| 协议 | 插件包 |
|---|---|
| OpenVPN | network-manager-openvpn |
| WireGuard | network-manager-wireguard |
| strongSwan (IPsec) | network-manager-strongswan |
| L2TP/IPsec | network-manager-l2tp |
| PPTP | network-manager-pptp |
| SSTP | network-manager-sstp |
| OpenConnect (Cisco AnyConnect) | network-manager-openconnect |
| VPNC (Cisco IPsec) | network-manager-vpnc |
安装示例(OpenVPN):
*sudoaptinstall-ynetwork-manager-openvpn network-manager-openvpn-gnome *sudosystemctl restart NetworkManager15.2 从.ovpn文件导入
nmcli connectionimporttypeopenvpnfile~/Downloads/client.ovpn nmcli connection up imported-vpn15.3 手动创建一个 OpenVPN 配置
nmcli connectionaddtypevpn con-name"my-ovpn"\vpn-type openvpn\vpn.data"connection-type=password,remote=vpnexample.com,port=1194,protocol=udp"\vpn.secrets"password=MySecret"\ipv4.never-defaultyes# 设置用户名密码(更安全)nmcli connection modify"my-ovpn"\+vpn.data"username=vpnuser,password-flags=0"# 启动nmcli connection up"my-ovpn"15.4 WireGuard 简洁示例
*sudoaptinstall-ywireguard-tools network-manager-wireguard nmcli connectionimporttypewireguardfile~/Downloads/wg0.conf nmcli connection up wg015.5 关闭 VPN
nmcli connection down"my-ovpn"16. 聚合 / VLAN / 桥接 / 隧道
16.1 Bond(链路聚合)
nmcli connectionaddtypebond con-name bond0 ifname bond0 mode active-backup nmcli connectionaddtypeethernet slave-type bond master bond0 ifname ens33 con-name"bond0-port1"nmcli connectionaddtypeethernet slave-type bond master bond0 ifname ens34 con-name"bond0-port2"2>/dev/null||truenmcli connection up bond0iplinkshow bond0常用 mode:balance-rr (0)、active-backup (1)、balance-xor (2)、802.3ad (4)、balance-tlb (5)、balance-alb (6)。
16.2 VLAN
# 在 bond0 上创建 VLAN 100nmcli connectionaddtypevlan con-name vlan100 dev bond0id100\ipv4.method manual ipv4.addresses192.168.100.10/24 ipv4.gateway192.168.100.1 nmcli connection up vlan10016.3 Bridge
nmcli connectionaddtypebridge con-name br0 ifname br0\ipv4.method manual ipv4.addresses192.168.20.1/24 nmcli connectionaddtypeethernet slave-type bridge master br0 ifname ens33 con-name"br0-port"nmcli connection up br016.4 macvlan
nmcli connectionaddtypemacvlan con-name"macvlan0"dev ens33 mode bridge\ipv4.method manual ipv4.addresses192.168.10.50/24 ipv4.gateway192.168.10.2 nmcli-tconnection show macvlan0|grepmacvlan# macvlan.parent: ens33# macvlan.mode: 2 # bridge16.5 VXLAN
nmcli connectionaddtypevxlan con-name vx1000id1000remote192.168.10.10\ipv4.method manual ipv4.addresses192.168.99.1/2416.6 IP 隧道(IPIP / GRE / sit 等)
nmcli connectionaddtypeip-tunnel con-name ipipt mode ipip remote192.168.10.10\ipv4.method manual ipv4.addresses10.10.10.1/30# mode 可选:ipip / gre / sit / vti / ip6ip6 / ipip6 / vti6 / geneve …16.7 Team(另一种聚合,已被 bond 替代,仍可用)
nmcli connectionaddtypeteam con-name team0 ifname team0\team.runner activebackup nmcli connectionaddtypeethernet slave-type team master team0 ifname ens33 con-name"team0-port"nmcli connection up team016.8 清理实验连接
nmcli connection delete bond0 vlan100 br0 macvlan0 vx1000 ipipt team02>&117. 监控与日志
17.1 监听全局变更
# 实时输出(Ctrl+C 结束)nmcli monitor# 输出示例:NetworkManager is running17.2 监听某连接 / 某设备
nmcli connection monitor"有线连接"nmcli device monitor nmcli device monitor ens3317.3 日志级别
nmcli general logging# 查看nmcli general logging level TRACE domains CORE,DEVICE,IP4,DHCP4# * 详细nmcli general logging level KEEP# * 关闭日志输出(最低)nmcli general logging level WARN# * 恢复默认17.4 系统日志
journalctl-uNetworkManager-f# 实时journalctl-uNetworkManager--since"1 hour ago"18. 代理与权限(agent)
18.1 查看当前用户的操作权限
nmcli general permissions# org.freedesktop.NetworkManager.network-control 是# org.freedesktop.NetworkManager.settings.modify.own 是# org.freedesktop.NetworkManager.settings.modify.system 是# org.freedesktop.NetworkManager.wifi.scan 是值含义:是= 完全允许,否= 禁止,验证= 需要 polkit 弹窗验证(即 root 密码)。
18.2 注册 secret / polkit 代理(通常 GUI 客户端会用)
# 让当前 nmcli 进程作为 NetworkManager 的密钥代理(用于响应密钥请求)nmcli agent secret# 输出:nmcli 已成功地注册为网络管理器(NetworkManager)的密钥(secret)代理。# 按 Ctrl+C 退出nmcli agent polkit# 注册 polkit 代理18.3 polkit 规则示例
如果某些操作始终报“访问遭到拒绝”,在/etc/polkit-1/rules.d/下放规则:
// /etc/polkit-1/rules.d/10-network-manager.rulespolkit.addRule(function(action,subject){if(action.id.indexOf("org.freedesktop.NetworkManager.")===0&&subject.isInGroup("wheel")){returnpolkit.Result.YES;}});19. 配置文件导入导出
19.1 导出 VPN(仅支持 VPN 类型)
nmcli connectionexport"my-ovpn"~/my-ovpn-backup.conf19.2 导入 VPN
nmcli connectionimporttypeopenvpnfile~/my-ovpn-backup.conf19.3 手动备份/恢复(推荐方式)
NetworkManager 把连接以.nmconnection文件保存在:
/etc/NetworkManager/system-connections/ # 系统连接 /etc/NetworkManager/system-connections/<name>.nmconnection# 备份*sudocp/etc/NetworkManager/system-connections/"有线连接".nmconnection ~/bak.nmconnection# 恢复(复制到目标机器同目录后重载)*sudocp~/bak.nmconnection /etc/NetworkManager/system-connections/ *sudochmod600/etc/NetworkManager/system-connections/bak.nmconnection *sudonmcli connection reload nmcli connection up"有线连接"20. 常见问题排查
| 现象 | 排查命令 | 常见原因与处理 |
|---|---|---|
| 命令报访问遭到拒绝 | nmcli general permissions | 当前用户没权限;用sudo或 polkit 配置 |
nmcli device status显示 unmanaged | nmcli device set <iface> managed yes | /etc/NetworkManager/NetworkManager.conf中managed=false或接口被 ifupdown 占用 |
| 改完没生效 | nmcli connection up <name>或nmcli device reapply <iface> | 必须重新激活 |
| 看不到 Wi-Fi 列表 | nmcli radio wifi/nmcli device status | 1) 物理 Wi-Fi 开关关闭;2) 硬件缺失;3) 驱动问题(lspci/lsusb查网卡,dmesg查驱动) |
| DNS 不生效 | cat /etc/resolv.conf | 别的程序(如systemd-resolved、resolvconf)在覆盖;设置dns=none给 NM 自己管 |
连不上但state是 connected | nmcli networking connectivity | 可能是 portal(需要登录)或 limited(DNS/出口受限) |
| 重启后 IP 丢失 | nmcli -t -f autoconnect connection show <name> | autoconnect没开;设yes |
| IPv6 干扰某些服务 | nmcli connection modify <name> ipv6.method ignore | 完全关闭 IPv6 |
| 虚拟接口测试残留 | nmcli connection show | 找到临时测试的连接delete掉 |
| 网络管理器起不来 | journalctl -u NetworkManager -xe | 配置文件损坏;备份/etc/NetworkManager/NetworkManager.conf后重新生成 |
附:本教程验证用机实测快照
$ uname -a Linux lihaozhe 6.18.34-amd64-desktop-rolling ... x86_64 GNU/Linux $ cat /etc/os-release PRETTY_NAME="Deepin 25" ID=deepin VERSION_ID="25" $ nmcli --version nmcli 工具,版本 1.44.2 $ systemctl status NetworkManager Active: active (running) $ nmcli device status DEVICE TYPE STATE CONNECTION ens33 ethernet 已连接 有线连接 lo loopback 连接(外部) lo $ nmcli -t -f STATE general connected $ nmcli networking connectivity full教程内每个命令都对应本次实测中真实执行并通过的指令;Wi-Fi 部分由于本机无无线网卡,使用了等价的--help、配置集创建与无线电开关命令验证语法与可执行性。