Linux中nmcli命令怎么用

发布时间:2022-02-18 10:14:00 作者:小新
来源:亿速云 阅读:294
# Linux中nmcli命令怎么用

## 1. nmcli简介

`nmcli`是NetworkManager的命令行管理工具,用于在Linux系统中配置和管理网络连接。作为NetworkManager的组成部分,它提供了一种强大而灵活的方式来控制网络设置,无需依赖图形界面。

### 1.1 NetworkManager概述
NetworkManager是Linux系统中主流的网络配置守护进程,具有以下特点:
- 动态网络管理能力
- 支持有线、无线、VPN等多种连接类型
- 提供D-Bus接口供其他程序调用
- 自动处理网络切换和配置

### 1.2 nmcli的优势
相比传统的网络配置工具,nmcli具有明显优势:
- **统一管理**:整合多种网络类型的配置
- **脚本友好**:适合自动化部署和远程管理
- **实时生效**:修改配置无需重启服务
- **丰富功能**:支持连接、设备、DNS等全面管理

## 2. 基本命令结构

nmcli命令采用模块化设计,基本语法为:
```bash
nmcli [OPTIONS] OBJECT { COMMAND | help }

2.1 常用对象(OBJECT)

2.2 全局选项(OPTIONS)

3. 网络连接管理

3.1 查看连接列表

显示所有配置的连接:

nmcli connection show

激活状态的连接会显示ACTIVE标志,输出包含: - 连接名称 - UUID(唯一标识符) - 连接类型 - 关联设备

3.2 查看连接详情

获取特定连接的详细信息:

nmcli connection show <连接名或UUID>

示例查看有线连接:

nmcli connection show 'Wired connection 1'

3.3 启动/停止连接

激活已有连接:

nmcli connection up <连接名>

停止活动连接:

nmcli connection down <连接名>

3.4 创建新连接

有线连接配置

nmcli connection add type ethernet \
   con-name "Office-LAN" \
   ifname eth0 \
   ipv4.method manual \
   ipv4.addresses 192.168.1.100/24 \
   ipv4.gateway 192.168.1.1 \
   ipv4.dns "8.8.8.8 8.8.4.4"

无线连接配置

nmcli device wifi connect <SSID> password <密码>

或创建持久化配置:

nmcli connection add type wifi \
   con-name "Home-WiFi" \
   ifname wlan0 \
   ssid "Home-Network" \
   wifi-sec.psk "mypassword" \
   wifi-sec.key-mgmt wpa-psk

3.5 修改连接参数

修改IP地址配置:

nmcli connection modify "Office-LAN" \
   ipv4.addresses "192.168.1.150/24"

更改DNS服务器

nmcli connection modify "Office-LAN" \
   ipv4.dns "208.67.222.222 208.67.220.220"

3.6 删除连接

删除不再需要的配置:

nmcli connection delete "Old-Connection"

4. 网络设备管理

4.1 查看设备状态

列出所有网络设备:

nmcli device status

输出信息包括: - 设备名称 - 设备类型 - 状态(connected/disconnected) - 关联的连接

4.2 设备详细参数

查看特定设备的详细信息:

nmcli device show eth0

4.3 连接设备

将设备关联到已有连接:

nmcli device connect eth0

4.4 断开设备

临时禁用网络设备:

nmcli device disconnect wlan0

5. 无线网络管理

5.1 扫描可用网络

扫描周围WiFi网络:

nmcli device wifi list

5.2 连接开放网络

连接无需认证的WiFi:

nmcli device wifi connect <SSID>

5.3 连接加密网络

连接WPA/WPA2加密网络:

nmcli device wifi connect <SSID> password <密码>

5.4 显示WiFi密码

查看已保存的WiFi密码:

nmcli -s connection show "WiFi-Connection" | grep psk

5.5 管理WiFi射频

查看无线射频状态:

nmcli radio wifi

禁用WiFi射频:

nmcli radio wifi off

6. 网络诊断与监控

6.1 实时监控

监控网络状态变化:

nmcli monitor

按Ctrl+C退出监控模式

6.2 连接测试

测试连接是否活跃:

nmcli networking connectivity check

返回结果包括: - full:完全联网 - limited:受限连接 - none:无连接

6.3 重新加载配置

重载NetworkManager配置:

nmcli connection reload

7. 高级配置技巧

7.1 创建VLAN接口

配置VLAN虚拟接口:

nmcli connection add type vlan \
   con-name "VLAN-10" \
   ifname eth0.10 \
   dev eth0 \
   id 10 \
   ipv4.method auto

7.2 配置绑定接口

创建网络绑定(bonding):

nmcli connection add type bond \
   con-name "bond0" \
   ifname bond0 \
   mode active-backup

nmcli connection add type bond-slave \
   ifname eth1 \
   master bond0

nmcli connection add type bond-slave \
   ifname eth2 \
   master bond0

7.3 设置静态路由

添加永久静态路由:

nmcli connection modify "Office-LAN" \
   +ipv4.routes "10.0.0.0/8 192.168.1.254"

7.4 配置IPv6

设置IPv6地址和网关:

nmcli connection modify "Office-LAN" \
   ipv6.method manual \
   ipv6.addresses "2001:db8::a/64" \
   ipv6.gateway "2001:db8::1" \
   ipv6.dns "2001:4860:4860::8888"

8. 常见问题解决

8.1 连接失败排查

检查NetworkManager服务状态:

systemctl status NetworkManager

查看详细日志:

journalctl -u NetworkManager -n 50

8.2 恢复默认配置

删除所有自定义连接:

nmcli connection delete $(nmcli -t -f NAME connection)

重启NetworkManager:

systemctl restart NetworkManager

8.3 解决DNS问题

清空DNS缓存:

sudo systemd-resolve --flush-caches

临时覆盖系统DNS:

nmcli connection modify "Office-LAN" \
   ipv4.ignore-auto-dns yes \
   ipv4.dns "1.1.1.1 9.9.9.9"

9. 实际应用示例

9.1 企业网络配置

典型办公室网络设置:

# 创建VLAN接口
nmcli connection add type vlan \
   con-name "Corp-VLAN20" \
   ifname eth0.20 \
   dev eth0 \
   id 20 \
   ipv4.method manual \
   ipv4.addresses "10.20.0.10/24" \
   ipv4.gateway "10.20.0.1" \
   ipv4.dns "10.10.0.53 10.10.0.54"

# 激活连接
nmcli connection up "Corp-VLAN20"

9.2 家庭网络切换

自动切换家庭和办公室网络:

#!/bin/bash

CURRENT_SSID=$(nmcli -t -f active,ssid dev wifi | grep '^yes' | cut -d: -f2)

if [[ "$CURRENT_SSID" == "Home-WiFi" ]]; then
   nmcli connection up "Office-VPN"
elif [[ "$CURRENT_SSID" == "Office-WiFi" ]]; then
   nmcli connection down "Office-VPN"
fi

10. 总结

nmcli作为NetworkManager的命令行界面,提供了强大而灵活的网络管理能力。通过本文的介绍,您应该已经掌握:

  1. 基本连接和设备管理操作
  2. 无线网络配置技巧
  3. 高级网络功能实现方法
  4. 常见网络问题的诊断手段

建议在实际环境中多加练习,结合man nmcli查阅完整手册,逐步掌握这个现代化网络管理工具的全部功能。

注意:不同Linux发行版的NetworkManager版本可能略有差异,部分新功能需要较新版本支持。使用前请确认您的系统版本:nmcli --version “`

推荐阅读:
  1. 网络配置工具nmcli怎么用
  2. 使用linux的nmcli命令网络管理命令行工具

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux nmcli

上一篇:Linux中常用的关机命令有哪些

下一篇:Linux中如何将图像转换成ASCII艺术

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》