NMCLI
说明
命令行的网络管理工具
语法
nmcli
[OPTIONS...]
{help | general | networking | radio | connection | device | agent | monitor}
[COMMAND]
[ARGUMENTS...]
描述
nmcli is used to create, display, edit, delete, activate, and deactivate network connections, as well as control and display network device status.
nmcli用来创建、显示、修改、删除、激活、禁用网络连接,同时控制和显示网络设备的状态。
选项
-t | --terse 简洁输出模式
-p | --pretty 友好输出模式
-m | --mode {tabular | multiline}
tabular 输出表,每行描述一个表项内容
multiline 一个表项输出多行
-c | --colors {yes| no| auto} 控制颜色输出
-f | --fields {field1, field2... | all | common} 控制输出的模块
-g | --get-values {field1, field2... | all | common} 控制输出模块的值
-e | --escape {yes | no} 是否需要转义
-a | --ask 会停止并询问缺失的参数
-s | --show-secrets 显示密码和秘钥
-w | --wait seconds nmcli等待NetworkManager的超时时间周期
--complete-args nmcli将列出最后一个参数可能的补全,而不是执行所需的操作
-v | --version 显示nmcli版本
-h | --help 打印帮助信息
通用命令
nmcli general {status | hostname | permissions | logging} [ARGUMENTS...]
status 显示NetworkManager的概述
hostname <hostname> 显示或设置hostname
permissions 显示调用者对NetworkManager提供的各种认证操作的权限
logging level level domains domains ... 获取和更改NetworkManager日志级别和域
网络控制命令
nmcli networking {on | off | connectivity} [ARGUMENTS...]
on | off 控制网络服务
connectivity 显示网络连接状态
none 网络未连接
portal 主机在防火墙内,无法连接网络
limited 主机连接到网络,但是没有权限访问网络
full 主机连接网络,并且能访问网络
unknown 连接状态没找到
信号发射控制命令
nmcli radio {all | wifi | wwan} [ARGUMENTS...]
显示、控制信号状态
wifi [on | off] 显示或设置wifi的状态
wwan [on | off] 显示或设置wwan(移动宽带)的状态
all [on | off]
活动监视器
nmcli monitor
观察连接状态、设备或连接配置文件的变化。
nmcli connection monitor
nmcli device monitor
连接管理命令
nmcli connection
{show | up | down | modify | add | edit | clone | delete | monitor | reload | load | import | export}
[ARGUMENTS...]
NetworkManager将所有的网络配置按照“connections”保存(主要包含L2 layer、IP Address),用于如何创建和连接网络。
show [--active] [--order [+-]category:...]
列出内存和磁盘上的连接配置文件
show [--active] [id | uuid | path | apath] ID...
显示指定连接的详细信息
up [id | uuid | path] ID [ifname ifname] [ap BSSID] [passwd-file file]
激活一个连接。如果不指定--wait,默认超时时间是90s
down [id | uuid | path | apath] ID...
取消一个连接,不影响后续的自动连接。如果不指定--wait,默认超时时间是10s
modify [--temporary] [id | uuid | path] ID {option value | [+|-]setting.property value}...
在连接配置文件中添加、修改或删除属性。空value表示删除该属性value。
参考nm-settings
add [save {yes | no}] {option value | [+|-]setting.property value}...
使用指定的属性创建一个新的连接。
edit {[id | uuid | path] ID | [type type] [con-name name] }
使用交互式编辑器编辑现有连接或添加新连接。不指定ID表示添加一个新的连接。
clone [--temporary] [id | uuid | path] ID new_name
克隆一个连接。
delete [id | uuid | path] ID...
删除一个配置的连接。如果不指定--wait,默认超时时间是10s
monitor [id | uuid | path] ID...
监视连接配置文件活动
reload
从磁盘重入所有连接文件。(monitor-connection-files=true in NetworkManager.conf)
load filename...
从磁盘加载/重新加载一个或多个连接文件
import [--temporary] type type file file
导入外部/外部配置作为NetworkManager连接配置文件。现在只支持vpn的配置文件。
export [id | uuid | path] ID [file]
导出一个连接。现在只支持vpn的连接。
设备管理命令行
nmcli device
{status | show | set | connect | reapply | modify | disconnect | delete | monitor | wifi | lldp} [ARGUMENTS...]
显示和管理网络接口
status 打印接口状态
show 显示接口信息
set 设置接口属性
connect 连接设备
reapply 尝试使用自上次应用以来对当前活动连接所做的更改来更新设备。
modify 修改当前接口设置
disconnect 断开接口连接
delete 删除一个接口
monitor 监控接口活动
wifi [list [--rescan | auto | no | yes] [ifname ifname] [bssid BSSID]]
列出可用的Wi-Fi接入点。
wifi connect (B)SSID [password password] [wep-key-type {key | phrase}] [ifname ifname] [bssid BSSID] [name name] [private {yes | no}] [hidden {yes | no}]
连接指定SSID或BSSID的Wi-Fi网络。
wifi rescan [ifname ifname] [ssid SSID...]
请求NetworkManager立即重新扫描可用的接入点。
lldp [list [ifname ifname]]
显示LLDP (Link Layer Discovery Protocol)协议学习到的邻居设备信息
私人代理
nmcli agent {secret | polkit | all}
运行nmcli作为NetworkManager的秘密代理,或polkit代理。
secret 将nmcli注册为NetworkManager秘密代理并监听秘密请求。
polkit 将nmcli注册为用户会话的polkit代理并监听授权请求。
all
环境变量
nmcli受如下的环境变量影响
LC_ALL
LC_MESSAGES
LANG
退出码
0 成功
1 未知或未指定的错误
2 无效用户输入,错误的nmcli调用。
3 超时
4 连接激活失败
5 取消激活失败
6 取消连接失败
7 删除连接失败
8 networkmanager没有运行
10 连接、设备、或者接入点不存在
参考
NMCLI-EXAMPLE