【Linux 运维必备】打通网络任督二脉:现代 Linux 网络管理利器 `nmcli` 全面精通指南

【Linux 运维必备】打通网络任督二脉:现代 Linux 网络管理利器nmcli全面精通指南

在过去,很多老程序员或者运维在重置 Linux IP 地址时,习惯去/etc/sysconfig/network-scripts/目录下疯狂改动黑白的文本配置文件。不仅格式难记,一不小心敲错一个字母,重启网卡时服务器就会直接“彻底断网”。

Rocky Linux 8/9、RHEL 8/9 以及现代 Ubuntu开始,官方彻底淘汰了老旧的network服务,全面转由NetworkManager来统一接管网络。

而我们今天的主角 ——nmcli(NetworkManager Command Line Interface),就是官方唯一指定的现代网络管理大管家。本文将从零基础出发,带你全面征服这个强大的命令行工具!


一、 核心概念:为什么服务器一定要用nmcli

在 Windows 上,我们改 IP、换 WiFi 都是用鼠标去右下角点开网络图标。
但在纯命令行的 Linux 服务器里,没有鼠标,nmcli就是你的网络控制台

💡 核心设计:Device(设备)与 Connection(连接)的区别

在使用nmcli之前,必须分清两个高频词,这是绝大多数新手踩坑的根源:

  • Device(设备):这是硬件概念。指的是你的物理网卡或虚拟机模拟出的网卡(如物理网卡、虚拟网卡ens160等)。你可以把它想象成你的手机卡槽
  • Connection(连接):这是软件配置。指的是一套网络参数(包含了 IP 地址、网关、DNS 等)。你可以把它想象成你的电话卡/套餐

大白话概括:一个卡槽(Device)在不同场景下,可以插不同的电话卡(Connection)。nmcli的本质,就是创建出一套好用的“配置参数”,然后把它“绑定”到指定的“网卡硬件”上。


二、 基础篇:查看与监控网络状态

在排查网络故障(比如 Xshell 连不上)时,先用这三条命令进行“望闻问切”:

1. 查看网卡硬件状态

nmcli device status
  • 作用:列出系统里所有的网卡硬件,并展示它们是否连接(connected)或断开(disconnected)。

2. 查看网络连接(配置)列表

nmcli connection show
  • 作用:展示当前系统里生效的网络参数。
  • 亮眼功能:该命令自带彩色高亮。绿色的行代表当前正在生效并已经绑定到网卡上的配置;白色的行代表存在但未启用的配置。

3. 查看某张网卡的全部详细信息

nmcli device show ens160
  • (注:需将ens160换成你通过ip addr查到的真实网卡名)
  • 作用:全方位展示该网卡当前的实际 IP、子网掩码、网关、MAC 地址和 DNS 服务器。

三、 实战篇:彻底征服“一键固定静态 IP”

这是全栈和后端开发最常用到的高频场景。为了不让虚拟机每次重启都变 IP 导致 Xshell 失联,我们需要用nmcli一劳永逸地将 IP 卡死。

假设我们要把网卡ens160的网络配置修改为:

  • 固定 IP192.168.123.100
  • 子网掩码前缀24(即255.255.255.0)
  • 网关192.168.123.2
  • 首选 DNS223.5.5.5(阿里公共 DNS)

请按照以下四步法操作:

🛠️ 第一步:设置静态 IP 地址与掩码

nmcli connection modify ens160 ipv4.addresses192.168.123.100/24
  • modify(可简写为mod):代表修改配置。
  • ipv4.addresses:指定固定 IP,后面的/24绝对不能漏掉。

🛠️ 第二步:设置网关(出口大门)

nmcli connection modify ens160 ipv4.gateway192.168.123.2

🛠️ 第三步:设置 DNS(域名解析服务器)

nmcli connection modify ens160 ipv4.dns223.5.5.5

🛠️ 第四步:将获取 IP 的模式改为“手动指定”

nmcli connection modify ens160 ipv4.method manual
  • 核心细节:这一步至关重要。manual(手动)代表关闭 DHCP 自动获取。如果不敲这一行,上面配的静态 IP 开机后还是会被路由器的动态 IP 覆盖掉。

四、 激活篇:网卡重启与自启动管理

网络参数修改完之后,Linux 并不会立刻生效。我们必须通知网卡“重新读取配置文件”。

1. 刷新网卡配置(重连大法)

nmcli connection down ens160&&nmcli connection up ens160
  • 原理:先让网卡顺时断网(down),再立刻联网(up)。网卡在重新抬起时,会吃进我们刚刚修改好的静态 IP 组合拳。
  • ⚠️ 警告必须用&&把两条命令连着敲。如果你只敲了down并没有敲up,当你按回车的瞬间,远程的 Xshell 就会因为你亲手拔了网线而直接断开连接,你就只能苦哈哈地跑去 VMware 图形界面里拯救它了。

2. 设置开机自动联网

很多同学装完系统发现虚拟机死活上不去网,直到去图形界面点了一下开关才行。其实一行命令就能让它开机死心塌地自动联网:

nmcli connection modify ens160 connection.autoconnectyes

五、 救命进阶篇:快速从“静态”切回“动态自动获取”

如果在做实验时,不小心把静态 IP 算错或敲错,导致虚拟机彻底断网怎么办?
不用慌,用下面两行命令,可以瞬间推翻刚才所有的手动改动,重新让虚拟路由器的 DHCP 自动拯救你的网络:

# 1. 把模式改回 auto (自动获取)nmcli connection modify ens160 ipv4.method auto# 2. 刷新网卡,重新向路由器申请合法 IPnmcli connection down ens160&&nmcli connection up ens160

📝 本地极客备忘卡(Cheat Sheet)

为了方便大家日常快速复制粘贴,这里将nmcli的核心常用语总结为一张卡片:

nmcli device status# 查看硬件网卡状态nmcli connection show# 查看网络配置列表(绿色为生效)nmcli connection delete 配置名# 删除一个不想要的垃圾网络配置# 终极一键配静态网络模板(注意替换你的网卡名与IP段)nmcli con mod ens160 ipv4.addresses192.168.1.100/24 ipv4.gateway192.168.1.1 ipv4.dns223.5.5.5 ipv4.method manual connection.autoconnectyes&&nmcli con down ens160&&nmcli con up ens160

💡 结语

熟练使用nmcli是检验一个 Linux 运维或全栈后端是否“正规、专业”的分水岭。从今天起,告别难用的黑白文本编辑,全面拥抱这一行流利的彩色命令吧!如果在配置过程中遇到任何 IP 冲突或网关不通的问题,欢迎在评论区给我留言讨论!