nmcli 与 NetworkManager
nmcli 是 NetworkManager 的命令行客户端。NetworkManager 统一接管网卡、连接配置与网络事件,信创桌面系统默认由它管理网络,服务器版在图形化安装场景下也常启用。它的核心抽象是「连接(connection)」:一份包含 IP 方式、地址、网关、DNS 的配置档案,落盘在 /etc/NetworkManager/system-connections/ 下,执行 con up 即按档案生效。相比手改 ifcfg 文件,nmcli 改完立刻生效、也不用重启网络服务,改静态 IP 时更不容易把自己断线。
基本信息
| 所属 | NetworkManager(nmcli 为其命令行前端) |
|---|---|
| 适用平台 | Kylin V10 桌面与服务器版、UOS、openEuler |
| 配置文件 | /etc/NetworkManager/system-connections/ 下的连接档案 |
| 语法 | nmcli [对象] [动作] [参数] |
| 常见对象 | connection(连接)、device(设备)、general(总体状态) |
| 权限 | 改配置需 root 或 sudo;查询普通用户可读 |
典型使用场景
- 新机配静态 IP:图形化安装或远程运维时改地址、网关、DNS 一步到位
- 排查网卡状态:确认设备是 connected 还是 disconnected,判断是链路问题还是配置问题
- 切换网段:同一台机器多做一套连接档案,靠 con up 切换而不用反复改文件
- DNS 不生效时定位:确认 DNS 是否写进了连接,而不是只改了 /etc/resolv.conf
- 多网卡分流:按连接分别配置,避免默认路由抢占
- 批量交付前核对:用 -f 字段输出成规整文本,便于记录与复核
查看现状
查看现状
nmcli device status # 设备与连接状态的对应关系
nmcli connection show # 列出所有连接档案
nmcli con show '有线连接 1' # 查看某连接的全部参数
nmcli -f IP4.ADDRESS,IP4.GATEWAY,IP4.DNS con show '有线连接 1' # 只取关键字段
ip -br a # 与内核视角互相印证配置静态 IP
配置静态 IP
nmcli con mod '有线连接 1' ipv4.method manual # 改为手工配置
nmcli con mod '有线连接 1' ipv4.addresses 10.0.10.20/24 # 地址与掩码
nmcli con mod '有线连接 1' ipv4.gateway 10.0.10.1 # 网关
nmcli con mod '有线连接 1' ipv4.dns '10.0.10.2 223.5.5.5' # DNS,多个用空格分隔
nmcli con up '有线连接 1' # 使配置生效
nmcli device reapply eth0 # 或者只重应用设备配置,尽量少断线常用子命令对照
| 子命令 | 用途 | 备注 |
|---|---|---|
| device status | 看设备是否接管、是否已连接 | unmanaged 表示未被 NM 管理 |
| con show | 列出或查看连接详情 | 连接名含空格必须加引号 |
| con mod | 修改连接参数 | 改完需要 up 或 reapply 生效 |
| con up / down | 启用或停用连接 | down 会断网,远程操作要留退路 |
| con add | 新建连接 | 用于同一网卡多套配置切换 |
| general status | 看总体联网状态 | 快速判断是否已连上 |
连接名和 UUID 都能定位连接,连接名含空格或中文时用引号包住;脚本里建议用 UUID,避免改名后失效。记不住连接名先执行 nmcli connection show 查列表。
不要只改 /etc/resolv.conf 来配 DNS:NetworkManager 管理网络时会在连接上下线时重写这个文件,手工改动会被覆盖。DNS 应写在连接参数 ipv4.dns 里,需要固定解析时再考虑额外的解析配置。