当前位置: 首页 > news >正文

[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
http://www.jsqmd.com/news/625732/

相关文章:

  • 必看!2026年深圳花园婚礼场地推荐榜单
  • ATcoder abc 453C题 状态压缩枚举,暂时没找到别的写法
  • AI一体机市场:热潮背后的泡沫与挑战
  • DeepWiki 优化实战:代码行号与确定性目录生成踊
  • 如何快速掌握文本差异对比:Diff Checker完整使用指南
  • 浏览器的缓存机制
  • 【2026年美团暑期实习- 4月11日-算法岗-第二题- 小美的优惠券预测模型】(题目+思路+JavaC++Python解析+在线测试)
  • 20254119 实验二《Python程序设计》实验报告
  • 告别调参焦虑:用Halcon MLP OCR快速构建你的专用字符识别库(以工业铭牌为例)
  • 模型不是壁垒,Harness 也不是
  • 接口测试——pytest框架续集怀
  • 百考通:AI助力每一份研究,让实习总结更高效、更专业
  • Shiftbrite驱动库:A6281 RGB LED矩阵的12位级联控制方案
  • qmcdump:2分钟解锁QQ音乐加密文件,让音乐重获自由播放权 [特殊字符]
  • 软件可访问性中的包容性设计原则
  • Rust 异步执行器的任务分配策略
  • 打字不如说话,说话不如截图——AI 代码助手的多模态输入实践捕
  • [读论文]CVPR2023: Neural Implicit Representations for 3D Reconstruction in Continuous Space
  • 你的观点值得被保留!百考通智能降重——为原创保驾护航 ��️
  • 当AI学会编程,我们还能做什么邑
  • GPT-6 Spud倒计时与技术前瞻:AGI前夜的最后冲刺
  • 模电进阶:从混合π模型到放大电路的全频段分析
  • 如何5分钟免费激活Windows和Office:KMS_VL_ALL_AIO智能脚本终极指南
  • Verilog实战:手把手教你实现基2-Booth乘法器(附完整代码与仿真)
  • 13.将手写 Agent 主流程迁移为 LangGraph 最小闭环,并接回 FastAPI + session 外壳
  • 浙江义乌:多家企业依托启山智软“线上商城4.0” 助推大中型企业商城系统建设
  • 《花见小路》与结对编程
  • [PaddleOCR]文本图像矫正模块:从原理到实战的完整指南
  • 自动写文章:我们如何与文字高效协作
  • 告别手动点按!用Python脚本自动化你的Trace32调试工作流