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 小时前
React 父子组件通信 Todo List 看透单向数据流与不可变数据
前端
软件开发技术深度爱好者8 小时前
国际音标魔法实验室工具HTML5实现
前端·html5·英语学习
FogLetter8 小时前
嘘!WebSocket正在“偷听”你的网络请求——全双工通信的魔法
前端·面试
用户938515635078 小时前
从零构建 React Todo 应用:组件化设计与数据流深度解析
前端·javascript
IT_陈寒8 小时前
Python线程池把我坑惨了,这些盲区你不踩?
前端·人工智能·后端
程序员爱钓鱼8 小时前
第一个 Go 程序:Hello World
前端·后端·go
阳光是sunny8 小时前
LangGraph 核心概念详解:从编译到可视化
前端·人工智能·后端
不好听6139 小时前
React 父子组件通信:从 Todo 应用理解单向数据流
前端·react.js
_lucas9 小时前
做了一个glsl在线调试工具
前端·javascript·three.js
不好听61317 小时前
从一行 JSX 到屏幕像素:前端开发者必须懂的浏览器渲染管线
前端