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
  • 一个设备可以绑定多个连接,但同一时间只能激活一个
相关推荐
a1117768 小时前
医院挂号预约系统(开源 Fastapi+vue2)
前端·vue.js·python·html5·fastapi
0思必得09 小时前
[Web自动化] Selenium处理iframe和frame
前端·爬虫·python·selenium·自动化·web自动化
行走的陀螺仪11 小时前
uni-app + Vue3编辑页/新增页面给列表页传参
前端·vue.js·uni-app
We་ct11 小时前
LeetCode 205. 同构字符串:解题思路+代码优化全解析
前端·算法·leetcode·typescript
2301_8127314112 小时前
CSS3笔记
前端·笔记·css3
ziblog12 小时前
CSS3白云飘动动画特效
前端·css·css3
越努力越幸运50812 小时前
CSS3学习之网格布局grid
前端·学习·css3
半斤鸡胗12 小时前
css3基础
前端·css
ziblog12 小时前
CSS3创意精美页面过渡动画效果
前端·css·css3
akangznl12 小时前
第四章 初识css3
前端·css·css3·html5