3.3. 使用 nmcli 配置 IP 网络
nmcli (NetworkManager 命令行界面)命令行工具用于控制 NetworkManager 和报告网络状态。它可用作 nm-applet 或其他图形客户端的替代。请参阅 第 2.5 节 “NetworkManager 工具”。nmcli 用于创建、显示、编辑、删除、激活和停用网络连接,以及控制和显示网络设备状态。
nmcli 工具可供用户和脚本用于控制 NetworkManager :
- 对于服务器、无头计算机和终端,nmcli 可用于直接控制 NetworkManager,无需 GUI,包括创建、编辑、启动和停止网络连接,以及查看网络状态。
- 对于脚本,nmcli 支持更适合脚本处理的 terse 输出格式。它是集成网络配置而不是手动管理网络连接的一种方式。
nmcli 命令的基本格式如下:
nmcli [OPTIONS] OBJECT { COMMAND | help }其中 OBJECT 可以是以下选项之一:
一般
、联网
、无线
、连接
、设备
、代理
和监控
器。您可以在命令中使用这些选项的任何前缀。例如,nmcli con help、nmcli c help 和nmcli 连接帮助生成相同的输出。
要开始的一些有用的可选 OPTIONS 是:
- -t, terse
- 此模式可用于计算机脚本处理,因为您可以看到仅显示值的 terse 输出。
例 3.1. 查看 terse 输出
nmcli -t device ens3:ethernet:connected:Profile 1 lo:loopback:unmanaged:
- -f, 字段
- 此选项指定输出中可以显示哪些字段。例如,NAME,UUID,TYPE,AUTOCONNECT,ACTIVE,DEVICE,STATE.您可以使用一个或多个字段。如果要使用更多,请不要在逗号后使用空格来分隔字段。
例 3.2. 指定输出中的字段
~]$ nmcli -f DEVICE,TYPE device DEVICE TYPE ens3 ethernet lo loopback
甚至更适合编写脚本:~]$ nmcli -t -f DEVICE,TYPE device ens3:ethernet lo:loopback
- -p,相当好。
- 此选项可使 nmcli 生成人类可读的输出。例如,值是一致的,打印标头。
例 3.3. 以用户友善模式查看输出
nmcli -p device ===================== Status of devices ===================== DEVICE TYPE STATE CONNECTION -------------------------------------------------------------- ens3 ethernet connected Profile 1 lo loopback unmanaged --
- -h, help
- 打印帮助信息.
nmcli 工具有一些内置上下文敏感的帮助:
- nmcli help
- 此命令列出可在后续命令中使用的可用选项和对象名称。
- nmcli 对象帮助
- 此命令显示与指定对象相关的可用操作列表。例如:
nmcli c help
3.3.1. nmcli 示例的简短选择
例 3.4. 检查 NetworkManager 的整体状态
~]$ nmcli general status
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
connected full enabled enabled enabled enabled
在 terse 模式中:
~]$ nmcli -t -f STATE general
connected
例 3.5. 查看 NetworkManager 日志状态
~]$ nmcli general logging
LEVEL DOMAINS
INFO PLATFORM,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,WIFI_SCAN,IP4,IP6,A
UTOIP4,DNS,VPN,SHARING,SUPPLICANT,AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,
WIMAX,INFINIBAND,FIREWALL,ADSL,BOND,VLAN,BRIDGE,DBUS_PROPS,TEAM,CONCHECK,DC
B,DISPATCH
例 3.6. 查看所有连接
~]$ nmcli connection show
NAME UUID TYPE DEVICE
Profile 1 db1060e9-c164-476f-b2b5-caec62dc1b05 ethernet ens3
ens3 aaf6eb56-73e5-4746-9037-eed42caa8a65 ethernet --
例 3.7. 仅查看当前活跃的连接
~]$ nmcli connection show --active
NAME UUID TYPE DEVICE
Profile 1 db1060e9-c164-476f-b2b5-caec62dc1b05 ethernet ens3
例 3.8. 仅查看 NetworkManager 识别的设备及其状态
~]$ nmcli device status
DEVICE TYPE STATE CONNECTION
ens3 ethernet connected Profile 1
lo loopback unmanaged --
您还可以使用以下 nmcli 命令缩写:
nmcli 命令 | 缩写 | |
---|---|---|
nmcli 常规状态 | nmcli g | |
nmcli 常规日志记录 | nmcli g 日志 | |
nmcli 连接显示 | nmcli con show | |
nmcli connection show --active | nmcli con show -a | |
nmcli 设备状态 | nmcli dev |
更多示例请查看 nmcli-examples(5) man page。