Linux网络连接管理命令nmcli详解

自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详解

精彩评论

2+8=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏