查看网卡配置连接工具组合——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 内配置。
相关推荐
xiaoye-duck1 小时前
《Linux 网络编程》从 0 手写 Reactor 反应堆(上):拆解 Reactor 架构 —— 连接抽象、Poller 封装与事件派发核心
linux·网络
脚踏实地,坚持不懈!1 小时前
Android 电池健康度检测全流程(驱动 → 内核 → HAL → Framework)
android·linux
IT技术分享社区1 小时前
在 Windows 上跑未改动的 Linux 程序:微软 LiteBox v0.1 把这件事变简单了
linux·运维·windows·microsoft·开源
进击的荆棘2 小时前
Linux系统——库的原理与制作之制作和使用动静态库
linux·动静态库
论文复现现场2 小时前
8卡 A100 服务器哪里租?NVLink、RDMA 与 NCCL 验收指南
linux·服务器·php·分布式训练·rdma·nvlink·nccl
小小的木头人2 小时前
CentOS 7.9 离线安装 NVIDIA Container Toolkit:1.14.0 与 1.20.1 两种版本方案
linux·运维·centos
哭哭啼2 小时前
Linux 资源紧缺模拟:CPU、内存、磁盘与文件描述符压力测试
linux·运维·压力测试
等我调个Bug3 小时前
Linux基本指令
linux·服务器
_upupup12 小时前
Linux的调试工具——gdb/cgdb
linux·服务器