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

【Linux 运维必备】打通网络任督二脉:现代 Linux 网络管理利器 `nmcli` 全面精通指南 【Linux 运维必备】打通网络任督二脉现代 Linux 网络管理利器nmcli全面精通指南在过去很多老程序员或者运维在重置 Linux IP 地址时习惯去/etc/sysconfig/network-scripts/目录下疯狂改动黑白的文本配置文件。不仅格式难记一不小心敲错一个字母重启网卡时服务器就会直接“彻底断网”。从Rocky Linux 8/9、RHEL 8/9 以及现代 Ubuntu开始官方彻底淘汰了老旧的network服务全面转由NetworkManager来统一接管网络。而我们今天的主角 ——nmcliNetworkManager 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/24modify可简写为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 ens160nmcli 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 ens160nmcli 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.autoconnectyesnmcli con down ens160nmcli con up ens160 结语熟练使用nmcli是检验一个 Linux 运维或全栈后端是否“正规、专业”的分水岭。从今天起告别难用的黑白文本编辑全面拥抱这一行流利的彩色命令吧如果在配置过程中遇到任何 IP 冲突或网关不通的问题欢迎在评论区给我留言讨论