自RedHat7开始,默认的网络服务由NetworkManager应用提供,这是动态控制及配置网络的守护进程,它用于保持当前网络设备及连接处于工作状态,同时也支持传统的ifcfg类型的配置文件,但nmcli的功能更强大、更复杂。
语法
nmcli [OPTIONS] OBJECT <command>
参数说明
参数 | 说明 |
-t | 简洁输出,删除多余的空格 |
-p | 人性化输出,输出很漂亮 |
-n | 优化输出,有两个选项tabular(不推荐)和multiline(默认) |
-c | 颜色开关,控制颜色输出(默认启用) |
-f | 过滤字段,all为过滤所有字段,common打印出可过滤的字段 |
-g | 过滤字段,适用于脚本,以“:”分隔 |
-w | 超时时间 |
选项说明
常规选项:genera
使用此命令可以显示网络管理器状态和权限,你可以获取和更改系统主机名,以及网络管理器日志记录级别和域。
nmcli general <status|hostname|permissions|logging>
选项 | 说明 |
status | 显示网络管理器的整体状态 |
hostname | 获取主机名或该更主机名,在没有给定参数的情况下,打印配置的主机名,当指定了参数,它将被移交给NetworkManager,以设置为新的系统主机名 |
permissions | 显示当前用户对网络管理器可允许的操作权限。 如启用和禁用网络、更改WI-FI和WWAN状态、修改连接等 |
loggin | 获取和更改网络管理器日志记录级别和域,没有任何参数当前日志记录级别和域显示 |
网络控制:networking
查询网络管理器网络状态,开启和关闭网络。
nmcli networking <on|off|connectivity>
选项 | 说明 | |
on | 禁用所有接口 | |
off | 开启所有接口 | |
connectivity | 获取网络状态,可选参数check告诉网络管理器重新检查连接性,否则显示最近已知的状态,无需重新检查 | |
none | 主机为连接到任何网络 | |
portal | 无法到达完整的互联网 | |
limited | 主机已连接到网络,但无法访问互联网 | |
full | 主机连接到网络,并具有完全访问 | |
unknown | 无法找到连接状态 |
无线传输控制:radio
显示无线开关状态,或启用和禁用开关。
nmcli radio <all|wifi|wwan>
举几个例子:
# 显示所有无线设备状态 nmcli radio all # 关闭所有无线设备 nmcli radio all off # 启动无线wifi nmcli radio wifi on
连接管理:connection
nmcli connection <show|up|down|modify|add|edit|clone|delete|monitor|reload|load|import|export>
选项 | 说明 | |
show | 列出活动的连接,或进行排序(+-为升降序) | |
nmcli connection show --order +active | 以活动的连接进行排序 | |
nmcli connection show --order +name | 将所有连接以名称排序 | |
nmcli connection show --order -type | 将所有连接以类型排序(倒序) | |
查看指定连接的详细信息 | ||
nmcli connection show <network-name> | 查看network-name的网卡信息 | |
up | 激活连接,提供连接名称或uuid进行激活,若未提供,则可以使用ifname指定设备名进行激活 | |
nmcli connection up <network-name> | 以连接名进行激活 | |
nmcli connection up <uuid> | 以uuid进行激活 | |
nmcli connection up ifname <ifname> | 以设备接口名进行激活 | |
down | 停用连接,提供连接名称或uuid进行停用,若未提供,则可以使用ifname指定设备名进行禁用,操作方法参考“up”选项 | |
modify | 修改、添加或删除连接的属性,设置属性时,只需指定属性名称和值,空值时表示删除属性,同一属性使用“+”、“-”进行增删操作 | |
add | 创建一个新的连接,需要指定新创建连接的属性,语法与“modify”相同 | |
con-name | 连接名称 | |
type | 连接类型 | |
autoconnect | 是否自动连接 | |
ifname | 连接到的设备名称 | |
clone | 克隆连接,克隆一个存在的连接,除了连接名称和uuid是新生成的,其他都是一样的 | |
delete | 删除指定的连接 | |
load | 从磁盘加载/重新加载一个或多个连接文件,比如创建/etc/sysconfig/network-scripts/ifcfg-ens37连接文件后,把它加载到网络管理器 | |
monitor | 监视连接配置文件活动,每当指定的连接更改时, 此命令都会打印一行。要监视的连接由其名称、UUID 或 D 总线路径标识 |
举几个例子:
# 查看所有连接状态 nmcli connection show # 查看指定网卡IP信息,有多个IP时会显示索引 nmcli -f IP4 connection show ens33 # 根据上个命令提供的IP索引,删除索当前索引为2的地址 nmcli connection modify ens33 -ipv4.addresses 2 # 配置网卡IP nmcli connection modify ens33 ipv4.addresses 10.10.200.201/24 # 新增网卡IP nmcli connection modify ens33 +ipv4.addresses 10.10.200.201/24 # 新增网卡:名称eth1/类型ethernet/接口eth0 nmcli con add con-name eth1 type ethernet autoconnect yes ifname eth0 # 自ens33克隆一个连接至ens33_1 nmcli connection clone ens33 ens33_1 # 创建一个连接配置文件 echo -e "TYPE=Ethernet\nNAME=ethx" > /etc/sysconfig/network-scripts/ifcfg-ens37 # 从该配置文件重载连接 nmcli connection load /etc/sysconfig/network-scripts/ifcfg-ens37 # 监视指定的连接 nmcli connection monitor ens33
设备管理:device
显示和管理设备接口。该选项有很多功能,例如连接wifi,创建热点,扫描无线,邻近发现等,下面仅列出常用选项。详细功能可使用nmcli device help查看
nmcli device <status|show|set|connect|reapply|modify|disconnect|delete|monitor|wifi|lldp>
选项 | 说明 | |
status | 打印设备状态,nmcli device指定的默认操作 | |
show | 显示设备接口的详细信息,不指定设备接口名称时显示所有接口的详细信息 | |
set | 设置设备属性 | |
connect | 连接设备。提供一个设备接口,网络管理器将尝试找到一个合适的连接,将其激活 | |
reapply | 使用上次应用后对当前活动连接所做的更改来更新设备 | |
modify | 临时修改设备上处于活动的设备,并不写入文件,语法与“nmcli connection modify”相同 | |
disconnect | 断开当前连接的设备,防止自动连接,意味着连接停止,可通过“connect”重新连接 | |
delete | 从系统中删除诸如bonds/bridges/teams等软设备,无法删除硬件设备,超时时间为10秒 | |
monitor | 监视设备活动,每当指定的设备更改状态时,此命令都会打印一行,当所有指定的设备消失时,监视器将终止 |
举几个例子:
# 设置接口eth0为自动连接 nmcli device set ifname eth0 autoconnect yes # 连接到设备eth0 nmcli dev connect eth0 # 修改设备IP地址 nmcli device modify eth0 +ipv4.addresses 10.10.200.201/24 # 删除软设备team0 nmcli device delete team0
原创文章禁止转载:技术学堂 » Linux网络连接管理命令nmcli详解