news 2026/4/16 21:51:48

[Linux系列]实战nmcli:从基础配置到高级网络管理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[Linux系列]实战nmcli:从基础配置到高级网络管理

1. nmcli与NetworkManager基础入门

第一次接触nmcli是在五年前的一个深夜,当时服务器网络突然中断,传统的ifconfig命令怎么都配置不成功。在同事的提醒下尝试了nmcli,没想到三行命令就解决了问题。这个经历让我彻底迷上了这个强大的网络管理工具。

nmcli是NetworkManager的命令行客户端,就像是一个万能遥控器,可以控制Linux系统中的所有网络设备。与传统的网络配置方式相比,它最大的优势在于:

  • 实时生效:修改配置无需重启网络服务
  • 状态感知:可以实时监控网络连接状态
  • 配置灵活:支持多种网络类型(以太网、Wi-Fi、VPN等)

先来看几个最基础的命令:

# 查看NetworkManager服务状态 systemctl status NetworkManager # 启动服务 systemctl start NetworkManager # 设置开机自启 systemctl enable NetworkManager

新手常犯的错误是记不住命令格式,这里有个小技巧:nmcli的命令结构就像是在说一个完整的句子。比如"nmcli device show ens33"就是在说"网络管理器,请显示ens33设备的详细信息"。

2. 网络信息查询实战技巧

2.1 设备与连接状态查询

上周帮一个朋友排查网络问题时,发现他花了半小时在配置文件中找网卡信息。其实用nmcli只需要几秒钟:

# 查看所有网络设备 nmcli device status # 查看指定网卡详情(以ens33为例) nmcli device show ens33

这个命令会返回一堆信息,重点看这几个字段:

  • GENERAL.STATE:连接状态(100表示已连接)
  • IP4.ADDRESS:IPv4地址
  • IP4.GATEWAY:默认网关
  • IP4.DNS:DNS服务器

2.2 连接配置查询

有时候我们需要查看具体的连接配置,这时候要用到connection子命令:

# 列出所有连接配置 nmcli connection show # 只显示活跃连接 nmcli connection show --active

这里有个实用技巧:输出的UUID字段虽然很长,但在脚本中比连接名更可靠。因为连接名可以修改,但UUID是唯一的。

3. 网络配置全流程详解

3.1 创建新连接配置

去年给公司部署新服务器时,我总结了一套标准的网络配置流程。假设我们要为ens38网卡配置静态IP:

# 第一步:创建连接配置 nmcli connection add con-name office_network ifname ens38 type ethernet \ ip4 192.168.1.100/24 gw4 192.168.1.1 # 第二步:设置DNS nmcli connection modify office_network ipv4.dns "8.8.8.8 8.8.4.4" # 第三步:激活连接 nmcli connection up office_network

这里有几个容易踩的坑:

  1. 子网掩码要写成CIDR格式(如/24)
  2. 多个DNS服务器要用空格分隔,且整体用引号包裹
  3. 修改配置后记得up连接才能生效

3.2 动态IP配置

如果是需要DHCP获取IP的场景,命令更简单:

nmcli connection add con-name dhcp_profile ifname ens38 type ethernet \ ipv4.method auto

4. 高级网络管理技巧

4.1 多IP地址绑定

在搭建测试环境时,经常需要给网卡配置多个IP。nmcli可以很优雅地实现:

# 添加辅助IP nmcli connection modify office_network +ipv4.addresses 192.168.1.101/24 # 删除特定IP nmcli connection modify office_network -ipv4.addresses 192.168.1.101/24

4.2 连接优先级调整

当系统有多个网络连接时,可以通过调整路由metric来控制优先级:

nmcli connection modify office_network ipv4.route-metric 100

数值越小优先级越高。这个技巧在同时连接有线网络和WiFi时特别有用。

4.3 网络诊断与监控

nmcli还内置了一些实用的诊断功能:

# 实时监控网络状态变化 nmcli monitor # 测试网络连通性 nmcli networking connectivity check

最近一次服务器迁移中,我就是用nmcli monitor发现了网卡频繁断开的问题,最终定位是网线接触不良。

5. 生产环境实战案例

5.1 批量部署脚本示例

这是我在实际工作中使用的网络初始化脚本片段:

#!/bin/bash # 配置以太网连接 configure_network() { local iface=$1 local ip=$2 local gateway=$3 nmcli connection add con-name ${iface}_static ifname $iface type ethernet \ ip4 ${ip}/24 gw4 $gateway nmcli connection modify ${iface}_static ipv4.dns "192.168.1.53 8.8.8.8" nmcli connection up ${iface}_static } # 调用示例 configure_network ens38 192.168.1.150 192.168.1.1

5.2 网络配置备份与恢复

重要服务器迁移前,我总会先备份网络配置:

# 备份所有连接配置 nmcli connection show > network_backup.txt # 恢复特定连接 nmcli connection reload nmcli connection up <connection-name>

6. 常见问题排查指南

遇到网络问题时,可以按照这个检查清单来排查:

  1. 检查物理连接状态

    nmcli device show | grep -i carrier

    如果CARRIER是off,说明网线没插好

  2. 验证IP配置是否生效

    nmcli connection show --active ip addr show
  3. 检查路由表

    ip route show
  4. 测试DNS解析

    nmcli dev show | grep DNS dig example.com

记得去年处理过一个特别棘手的问题,客户反映网络时断时续。最后发现是NetworkManager的自动连接功能与手动配置冲突,用以下命令解决了问题:

nmcli connection modify <connection-name> connection.autoconnect no
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 7:25:08

微软发布的《生成式人工智能初学者.NET 第二版》课程视

本课概览 Microsoft Agent Framework (MAF) 提供了一套强大的 Workflow&#xff08;工作流&#xff09; 框架&#xff0c;用于编排和协调多个智能体&#xff08;Agent&#xff09;或处理组件的执行流程。 本课将以通俗易懂的方式&#xff0c;帮助你理解 MAF Workflow 的核心概念…

作者头像 李华
网站建设 2026/4/16 21:51:48

Qt 动态加载第三方字体库的实践与优化

1. 为什么需要动态加载第三方字体&#xff1f; 在Qt应用开发中&#xff0c;设计师常常会使用一些特殊字体&#xff08;比如思源字体&#xff09;来提升界面美观度。但问题在于&#xff0c;这些字体通常不会预装在用户的操作系统上。我遇到过不少这样的情况&#xff1a;在自己电…

作者头像 李华
网站建设 2026/4/11 22:26:52

.NET 诊断技巧 | 日志框架原理、手写日志框架学习秸

一、 什么是 AI Skills&#xff1a;从工具级到框架级的演化 AI Skills&#xff08;AI 技能&#xff09; 的概念最早在 Claude Code 等前沿 Agent 实践中被强化。最初&#xff0c;Skills 被视为“工具级”的增强&#xff0c;如简单的文件读写或终端操作&#xff0c;方便用户快速…

作者头像 李华
网站建设 2026/4/16 19:22:47

新手程序员必看:轻松掌握大模型技能,开启AI行动专家之路(收藏版)

本文介绍了Anthropic Agent Skills的发展历程、核心概念和应用场景。Agent Skills是解决通用大模型在垂直场景中“知道但不会做”问题的标准能力包&#xff0c;通过封装专业领域的知识和流程&#xff0c;使大模型能够像专家一样执行具体任务。文章详细解释了Skills的文件结构、…

作者头像 李华
网站建设 2026/4/13 0:56:12

高维高斯分布:从马氏距离到实际应用解析

1. 高维高斯分布的核心概念 第一次接触高维高斯分布时&#xff0c;很多人会被复杂的数学公式吓到。其实我们可以把它想象成一个"多维空间的泡泡"&#xff0c;这个泡泡的形状、大小和方向都由协方差矩阵决定。在实际项目中&#xff0c;我经常用这个比喻来帮助团队成员…

作者头像 李华