nmcli常见操作

下面为你整理 最常用、最实用的 nmcli 操作,按场景分类,附带示例和说明。


🔍 一、查看网络状态

1. 查看所有网络连接(已保存的配置)

复制代码
nmcli connection show
# 或简写
nmcli con show

输出包含:NAME(连接名)、UUID、TYPE(ethernet/wifi/bridge等)、DEVICE(绑定的网卡)

2. 查看当前活跃的连接

复制代码
nmcli con show --active

3. 查看网络设备状态

复制代码
nmcli device status

显示每块网卡的状态:connected / disconnected / unmanaged

4. 查看某个连接的详细配置

复制代码
nmcli con show "System eth0"   # 替换为你的连接名

🌐 二、配置有线网络(以太网)

假设你的网卡设备名为 eth0,连接名为 eth0(通常默认同名)

1. 设置静态 IP 地址

复制代码
# 修改连接配置
nmcli con mod eth0 ipv4.addresses 192.168.10.50/24
nmcli con mod eth0 ipv4.gateway 192.168.10.1
nmcli con mod eth0 ipv4.dns "8.8.8.8,114.114.114.114"
nmcli con mod eth0 ipv4.method manual   # 相当于 static

# 重启连接生效
nmcli con up eth0

2. 改回 DHCP 自动获取 IP

复制代码
nmcli con mod eth0 ipv4.method auto
nmcli con up eth0

3. 添加多个 DNS

复制代码
nmcli con mod eth0 ipv4.dns "8.8.8.8 114.114.114.114"
# 或追加(不覆盖)
nmcli con mod eth0 +ipv4.dns 192.168.10.10

4. 设置主机名(可选)

复制代码
nmcli con mod eth0 ipv4.dhcp-hostname "myserver"

📶 三、配置 Wi-Fi(无线网络)

1. 扫描可用 Wi-Fi

复制代码
nmcli device wifi list

2. 连接 Wi-Fi(自动保存连接)

复制代码
nmcli device wifi connect "MyWiFi" password "mypassword"

3. 断开 Wi-Fi

复制代码
nmcli device disconnect wlan0

4. 删除已保存的 Wi-Fi 配置

复制代码
nmcli con delete "MyWiFi"

🛠️ 四、高级操作

1. 创建新连接(例如给 eth1 配静态 IP)

复制代码
nmcli con add type ethernet con-name eth1-static ifname eth1 \
  ipv4.addresses 10.0.0.10/24 \
  ipv4.gateway 10.0.0.1 \
  ipv4.dns "8.8.8.8" \
  ipv4.method manual

2. 启用/禁用连接

复制代码
nmcli con up eth0      # 启用
nmcli con down eth0    # 禁用(断开但保留配置)

3. 删除连接配置

复制代码
nmcli con delete eth0

⚠️ 删除后,该配置文件(如 /etc/sysconfig/network-scripts/ifcfg-eth0)也会被移除。

4. 重载 NetworkManager 配置(一般不需要)

复制代码
nmcli general reload

🧪 五、调试与故障排查

1. 查看 DNS 实际生效情况

复制代码
systemd-resolve --status    # Ubuntu/Debian(较新)
# 或
cat /etc/resolv.conf        # 注意:可能是符号链接

在使用 NetworkManager 时,/etc/resolv.conf 通常由它动态管理。

2. 查看路由表

复制代码
ip route show
# 或
nmcli device show eth0 | grep IP4.ROUTE

3. 临时测试网络(不影响配置)

复制代码
# 临时设置 IP(重启失效,且不通过 NetworkManager)
sudo ip addr add 192.168.1.100/24 dev eth0
sudo ip route add default via 192.168.1.1

不推荐长期使用,仅用于紧急调试。


✅ 最佳实践建议

场景 建议
生产服务器 使用 nmcli 配置静态 IP,避免图形界面依赖
自动化脚本 nmcli con mod + nmcli con up,避免直接改配置文件
云服务器 注意:部分云平台(如 AWS、阿里云)使用 DHCP,不要随意改静态 IP
容器/虚拟机 若网络由外部管理(如 libvirt、Docker),可能需设为 unmanaged

📝 补充:连接名 vs 设备名

  • 设备名(Device) :物理/虚拟网卡名称,如 eth0, ens192, wlan0
  • 连接名(Connection) :NetworkManager 中的配置名称,可自定义(如 office-wifi, prod-static
  • 一个设备可以绑定多个连接,但同一时间只能激活一个
相关推荐
代码搬运媛8 小时前
Jest 测试框架详解与实现指南
前端
counterxing9 小时前
我把 Codex 里的 Skills 做成了一个 MCP,还支持分享
前端·agent·ai编程
wangqiaowq9 小时前
windows下nginx的安装
linux·服务器·前端
之歆9 小时前
DAY_12JavaScript DOM 完全指南(二):实战与性能篇
开发语言·前端·javascript·ecmascript
发现一只大呆瓜9 小时前
Vite凭什么这么快?3分钟带你彻底搞懂 Vite 热更新的幕后黑手
前端·面试·vite
Maimai108089 小时前
React如何用 @microsoft/fetch-event-source 落地 SSE:比原生 EventSource 更灵活的实时推送方案
前端·javascript·react.js·microsoft·前端框架·reactjs·webassembly
kyriewen11 小时前
产品经理把PRD写成“天书”,我用AI半小时重写了一遍,他当场愣住
前端·ai编程·cursor
humcomm12 小时前
元框架的工作原理详解
前端·前端框架
canonical_entropy12 小时前
Attractor Before Harness: AI 大规模开发的方法论
前端·aigc·ai编程
zhangxingchao12 小时前
多 Agent 架构到底怎么选?从 Claude Agent Teams、Cognition/Devin 到工程落地原则
前端·人工智能·后端