nmcli 命令详解

nmcli 是一个命令行工具,用于管理 NetworkManager 并报告网络状态。它能够配置网络接口、连接和设备。以下是 nmcli 的一些常用用法及其参数介绍:

基本用法

  1. 显示帮助信息

    nmcli --help

    显示 nmcli 命令的帮助信息,介绍其基本用法和可用参数。

  2. 显示所有连接

    nmcli connection show

    或者

    nmcli c show

    列出所有已配置的网络连接。

  3. 显示设备状态

    nmcli device status

    或者

    nmcli dev status

    列出所有网络设备及其状态。

配置网络连接

  1. 添加新的网络连接

    nmcli connection add type ethernet con-name ens160 ifname ens160 ipv4.method manual ipv4.address "192.168.1.2/24" gw4 192.168.31.1
    • type ethernet: 网络类型为以太网。
    • con-name ens160: 连接名称为 ens160
    • ifname ens160: 接口名称为 ens160
    • ipv4.method manual: 使用手动配置 IPv4 地址。
    • ipv4.address "192.168.1.2/24": 设置 IPv4 地址为 192.168.1.2,子网掩码为 24
    • gw4 192.168.31.1: 设置网关为 192.168.31.1
  2. 修改现有连接

    nmcli connection modify ens160 ipv4.addresses "192.168.1.3/24" ipv4.gateway "192.168.31.1"

    修改现有连接 ens160 的 IPv4 地址和网关。

  3. 激活连接

    nmcli connection up ens160

    激活连接 ens160

  4. 停用连接

    nmcli connection down ens160

    停用连接 ens160

  5. 删除连接

    nmcli connection delete ens160

    删除连接 ens160

显示详细信息

  1. 显示连接的详细信息

    nmcli connection show ens160

    显示连接 ens160 的详细信息。

  2. 显示设备的详细信息

    nmcli device show ens160

    显示设备 ens160 的详细信息。

配置WiFi连接

  1. 添加WiFi连接

    nmcli device wifi connect "SSID_NAME" password "PASSWORD" ifname wlan0
    • SSID_NAME: WiFi 网络的 SSID 名称。
    • PASSWORD: WiFi 网络的密码。
    • ifname wlan0: WiFi 接口名称为 wlan0

其他常用命令

  1. 显示WiFi扫描结果

    nmcli device wifi list

    列出可用的WiFi网络。

  2. 断开设备连接

    nmcli device disconnect ens160

    断开设备 ens160 的网络连接。

  3. 连接到一个设备

    nmcli device connect ens160

    连接设备 ens160 到网络。

示例

示例1:配置静态IP地址

假设我们有一个以太网设备 ens33,需要配置静态IP地址:

nmcli connection add type ethernet con-name ens33 ifname ens33 ipv4.method manual ipv4.address "192.168.50.10/24" gw4 192.168.50.1
nmcli connection up ens33

示例2:配置动态IP地址(DHCP)

假设我们有一个以太网设备 ens33,需要配置动态IP地址:

nmcli connection add type ethernet con-name ens33 ifname ens33 ipv4.method auto
nmcli connection up ens33

示例3:连接到一个WiFi网络

假设我们有一个WiFi设备 wlan0,需要连接到SSID为 HomeNetwork 的WiFi网络,密码为 password123

nmcli device wifi connect "HomeNetwork" password "password123" ifname wlan0

常用参数说明及示例

  1. --ask

    nmcli connection up ens160 --ask

    激活连接时询问需要的所有参数。

  2. --pretty

    nmcli connection show --pretty

    以更易读的格式显示信息。

  3. --fields

    nmcli connection show ens160 --fields name,uuid

    仅显示指定字段的信息。

  4. --timeout

    nmcli connection up ens160 --timeout 30

    设置命令的超时时间为30秒。

  5. --terse

    nmcli connection show --terse

    以紧凑模式显示信息。

  6. --escaped

    nmcli connection show --escaped

    转义特殊字符。

  7. --color

    nmcli connection show --color yes

    启用彩色输出。

  8. -g, --get-values

    nmcli -g uuid connection show ens160

    仅显示指定字段的值。

基本示例

添加新的静态IP连接

nmcli connection add type ethernet con-name eth0 ifname eth0 ipv4.method manual ipv4.addresses "192.168.50.10/24" ipv4.gateway "192.168.50.1" ipv4.dns "8.8.8.8"

修改现有连接的DNS

nmcli connection modify eth0 ipv4.dns "8.8.4.4"

连接到WiFi网络

nmcli device wifi connect "MyWifiNetwork" password "mypassword" ifname wlan0

删除连接

nmcli connection delete eth0

显示设备状态

nmcli device status

详细示例

  1. 确认连接名称
    使用 nmcli c show 命令查看当前网络连接的名称和UUID。

    # nmcli c show

    输出示例:

    NAME    UUID                                  TYPE      DEVICE 
    ens160  4038ec61-c64b-479b-ba6a-f5e627279fe4  ethernet  ens160 
    ens224  53365c8c-2aa3-4d2b-9d70-4ae47c8959e2  ethernet  ens224 
    virbr0  3b222075-1210-46c7-9bbb-ee3a04aba555  bridge    virbr0
  2. 配置网卡
    使用 nmcli c mod 命令配置指定网卡的IP地址和网关。

    # nmcli c mod ens160 ipv4.method manual ipv4.addr "192.168.1.2/24" gw4 192.168.31.1

    如果连接不存在或需要新增网卡,可以使用以下命令:

    nmcli c add type ethernet con-name ens160 ifname ens160 ipv4.method manual ipv4.address "192.168.1.2/24" gw4 192.168.31.1
  3. 重启网卡
    使用以下命令重启网卡以使配置生效:

    # nmcli c down ens160
    # nmcli c up ens160

提示

如果是已存在的连接,想改连接名字,可以先删除对应连接(nmcli c delete 连接名字),再用nmcli c add把网卡重新加回来。

本文由mdnice多平台发布


逼格高的汤圆
7 声望2 粉丝