首页/系统/Linux 运维命令速查/nmcli NetworkManager 命令行
网络命令82 条

nmcli NetworkManager 命令行

NetworkManager 体系的标准管理入口:设备状态、连接配置、改 IP/DNS/网关并持久化,取代手改 ifcfg 文件。

Linux 运维命令速查系统更新于 2026-10-13

nmcli 是什么

nmcli 是 NetworkManager 的命令行前端,把网卡、连接配置与状态统一成 device(设备)和 connection(连接)两类对象。它取代了手工编辑 ifcfg 文件的传统做法:改 IP、网关、DNS 都通过 con modify 完成,配置持久化在 NetworkManager 自己的存储里,重启后仍然生效。

基本信息

适用平台RHEL、CentOS、Fedora、Ubuntu Server 等默认使用 NetworkManager 的发行版
命令语法nmcli [device|connection|general] 子命令
常用子命令dev status 设备状态、con show 连接列表、con modify 改配置、con up/down 启停连接、dev wifi list 扫描无线
持久化位置/etc/NetworkManager/system-connections/ 下的连接文件
权限说明查看状态普通用户即可,修改连接需要 root

典型使用场景

  • 配置静态 IP:把 DHCP 改为 manual 并写地址、网关、DNS
  • 排查网卡状态:确认设备是否被托管、连接是否激活
  • 临时切换:用 con up 或 con down 快速切换有线与无线
  • 多网卡与多连接:同一网卡配置多个连接并按需激活
  • 批量部署:脚本里用 nmcli 固化网络配置,避免手改文件出错

常用示例

常用示例
nmcli device status                                   # 网卡与连接状态概览
nmcli connection show                                 # 列出全部连接及其 UUID
nmcli -f NAME,UUID,DEVICE connection show             # 只看关心的字段
nmcli device wifi list                                # 扫描可用无线网络
nmcli connection modify 'eth0' ipv4.method manual ipv4.addresses 10.0.0.5/24 ipv4.gateway 10.0.0.1 ipv4.dns '1.1.1.1'
nmcli connection up 'eth0'                            # 应用修改并持久化
nmcli connection show 'eth0' | grep -E 'ipv4.(method|addresses|gateway|dns)'

设备与连接的分工

命令作用注意
nmcli device status设备与托管状态unmanaged 说明该设备未被 NetworkManager 接管
nmcli connection show连接清单与 UUID连接名可重复时用 UUID 更稳
con modify修改配置项只改配置,不立即生效
con up 与 down激活与停用连接操作活跃连接会瞬断
con add新增连接常与 con up 搭配完成首次激活
dev wifi list扫描无线扫描期间无线性能可能短暂下降
连接名可以改,UUID 不会:脚本与自动化里用 UUID 或数字索引来引用连接,比用显示名可靠。另外 nmcli -f 字段列表 能让输出稳定,便于脚本解析,比默认的多行表格友好。
修改或重启正在使用的连接会瞬断网络:远程 SSH 场景下执行 nmcli con up 前,务必确认带外通道(IPMI、云控制台)可用,或改用定时任务与至少两个网卡双活来规避风险。
改之前先留一份现状:nmcli connection show '连接名' 会把 ipv4.method、addresses、gateway、dns 等全部关键值列出来,把这份输出存到文件里,出问题可以照着改回去。对应的连接文件在 /etc/NetworkManager/system-connections/ 下,权限与属主由 NetworkManager 管理,不建议手工编辑。改 DNS 前还要确认解析由谁负责:NetworkManager 可能接管 resolv.conf,装有 systemd-resolved 时它甚至是软链接,手改这个文件会被覆盖。

易错点

  • 改正在使用的连接会瞬断,远程 SSH 场景执行 con up 前要确认带外通道可用
  • con modify 只改配置不立即生效,必须再执行一次 con up 才会落地
  • 设备显示 unmanaged 时 nmcli 管不了它:说明被其它工具或配置接管,先理清托管关系
  • 脚本里用连接显示名容易被改名或空格破坏,引用 UUID 更可靠
  • NetworkManager 与旧的 network-scripts 同时管理同一网卡会互相覆盖,先确认由谁接管

数据来源与参考

  • man 1 nmcli(NetworkManager 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌