查看网卡配置连接工具组合——nmcli + nmtui

1、背景

在使用带 NetworkManager 的 Linux(Ubuntu22.04、Rocky、CentOS 等)时,有两个配套网络工具:nmcli 和 nmtui。

很多人会纠结二选一。我的使用思路:

日常查看、快速校验、简单操作:用 nmcli(命令行)

复杂多字段网络配置、静态 IP、多路由、多 DNS:交给 nmtui(文本 UI)

不用死记一大堆 nmcli 长参数。查看状态、启停连接这种简单操作直接敲 nmcli;遇到配置项多、容易写错参数的场景,打开 nmtui 可视化填写,减少手敲命令出错。

前提:系统开启 NetworkManager

复制代码
# 查看服务状态
systemctl status NetworkManager
# 开机自启并立刻启动
systemctl enable --now NetworkManager

重要提醒:这两个工具只对 NetworkManager 托管的网卡生效 。

如果网卡状态是 unmanaged,NM 不会接管,两个工具都无法修改网卡配置。

2、nmcli:命令行,用来做「简单查看 + 轻量操作」

适合 SSH 远程,输出可以管道过滤,方便快速排查网络状态,适合简单指令。

复制代码
# 1. 网络总览,快速看网卡、IP、连接状态(排错第一条)
nmcli

# 2. 查看所有物理网卡设备状态
nmcli device status

# 3. 查看保存过的所有网络连接配置
nmcli connection show

# 4. 启用/断开连接
nmcli connection up "连接名"
nmcli connection down "连接名"

# 5. 查看网卡完整信息:IP、网关、DNS、MAC
nmcli device show ens33

# 6. 无线网卡扫描WiFi
nmcli device wifi list

适用场景:

  • 快速确认网卡是否在线、有没有拿到 IP
  • 启停网络连接
  • 查看当前 DNS、网关信息
  • 脚本 / 自动化巡检
    缺点:
    静态 IP、附加路由、多个 DNS、802.1x 这类复杂配置,nmcli 命令参数很长,很容易少打斜杠、逗号,配置出错。这类场景就不要硬写 nmcli 命令了,直接切 nmtui。

3、nmtui:文本交互式界面,专门处理「复杂配置」

终端输入即可启动,SSH 远程也能用,TUI 菜单可视化填表。

复制代码
nmtui

3.1、什么时候用 nmtui?

  • 设置静态 IPv4,同时配置多条静态路由、多个 DNS 服务器
  • 有线 + 多网卡,需要分开配置不同网关
  • WiFi 连接、配置无线安全
  • 802.1x、VPN 等复杂网络配置
  • 记不住 nmcli 一大串参数,避免手敲命令拼写错误
    操作流程示例:
  1. 执行 nmtui,选择 Edit a connection
  2. 选中要修改的网卡,回车进入编辑页面
  3. IPv4 配置从 Automatic(DHCP) 切换为 Manual
  4. 图形化表单填写 IP / 掩码、网关、DNS,还可以添加额外路由
  5. 保存退出,回到主界面,Activate a connection 重新激活连接生效

nmtui 本质也是调用 NetworkManager,保存的配置文件和 nmcli 完全一致。两者修改的是同一套配置,可以互相配合使用,互不冲突。

4、我的工作流:nmcli + nmtui 搭配使用

一套固定工作流程,非常适合服务器 / 嵌入式 Linux 调试:

  1. 先用 nmcli 快速查看当前网络状态,确认网卡名称、当前连接、IP,判断基础链路是否正常。
  2. 如果只需要查看、重启网络,全程 nmcli 搞定。
  3. 如果需要新增 / 修改静态 IP、多路由、复杂 DNS ,直接执行nmtui,可视化填写配置,保存。
  4. 配置完成后,切回 nmcli,执行 nmcli / nmcli device show xxx,验证配置是否成功写入。

5、nmcli 和 nmtui 的对比

项目 nmcli nmtui
形式 CLI 纯命令 TUI 文本图形界面
适合场景 查看状态、启停连接、简单操作、脚本 静态 IP、多路由等复杂网络配置
记忆成本 需要记忆命令 菜单填表,几乎不用记参数
自动化 ✅ 支持 shell 脚本 ❌ 无法脚本化
输出 支持 grep 过滤 交互式界面,不能管道处理

6、常见踩坑

  1. nmtui 修改完配置,必须重新 Activate 激活连接,否则新配置不生效。
  2. 网卡显示unmanaged:NetworkManager 不接管,nmcli 和 nmtui 都无法修改。需要修改NetworkManager.conf配置后重启服务。
  3. 不要同时启用 systemd-networkd 和 NetworkManager,两者会冲突。
  4. 手动修改 /etc/resolv.conf 会被 NetworkManager 覆盖,DNS 统一在 nmcli/nmtui 内配置。
相关推荐
Ruiery22 分钟前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器
linux·运维·服务器
丰锋ff3 小时前
压缩命令笔记
linux
GeW4 小时前
产业新优势基础软件的人才底盘,从Linux与数据库开始
linux·数据库
by209994 小时前
Linux GCC/G++ 编译与 Makefile 构建
linux·运维·服务器·经验分享
cq林志炫5 小时前
两个Linux服务器之间同步文件
linux·运维·服务器
无人生还别怕6 小时前
如何搭建k8s服务(containerd部署)
linux·云原生·容器·kubernetes·openanolisos
企鹅侠客7 小时前
Linux CPU 负载平均值(Load Average)详解:从原理到实践
linux·运维·服务器·服务器负载
易点云徐源7 小时前
HP 暗影精灵 PRO 16 安装双系统后,开机直接进入 Windows,按 F9 才能进入 Ubuntu:GRUB 菜单不显示的处理方法
linux·运维·ubuntu
第404号工位7 小时前
离职退电脑前别只点“清空回收站”!手把手教你彻底抹除凭证与数字痕迹
linux·python·架构
就像楞次定律8 小时前
【Linux 学习记之二】C++ 构建体系与底层链接机制的深度透视(1)
linux·后端