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
  • 一个设备可以绑定多个连接,但同一时间只能激活一个
相关推荐
爱读源码的大都督7 小时前
Claude Code源码分析(三):为什么系统提示词中需要有tools呢?
前端·人工智能·后端
爱勇宝7 小时前
Claude Code 被曝暗藏“隐形检测”代码:封代理不是最可怕的,可怕的是你根本不知道它在干什么
前端·后端·程序员
小牛不牛的程序员7 小时前
我用 Claude Code 半天撸完了一个完整网站,AI 编程到底提升了多少效率?
前端
东风破_7 小时前
JavaScript 面试常考的字符串算法:从反转字符串到回文判断
前端·javascript
ITOM运维行者7 小时前
从零搭建企业级服务器监控体系:踩坑实录与架构设计
前端·后端
monologues7 小时前
深入 Vue 3 源码:响应式系统的精妙设计与编译优化
前端
hunterandroid7 小时前
Paging 3 分页:从手动分页到声明式加载
前端
用户4099322502127 小时前
Vue状态管理入门第四章:组合式store和SSR风险
前端·vue.js·后端
Csvn8 小时前
CSS :has() 选择器实战:没有它之前我们写了多少冗余 JS
前端·css
梨子同志8 小时前
TypeScript
前端