nmcli是用于控制NetworkManager和报告网络状态的命令行工具。nmcli用于创建、显示、编辑、删除、激活和停用网络连接,以及控制和显示网络设备状态。
1. 基本用法
nmcli [OPTIONS...] {help | general | networking | radio | connection | device | agent | monitor} [COMMAND] [ARGUMENTS...]
可以使用TAB键来补全命令,忘记了语法,可以按TAB键查看可用选项。如果按TAB键没有反应,也许是没有安装bash-completion
。
#安装bash-completion
[root@localhost ~]# yum -y install bash-completion
#退出重新登录
[root@localhost ~]# exit
![tab键查看可用选项 如何在CentOS 7中使用nmcli工具管理网络_配置文件](//dev-img.mos.moduyun.com/20231025/f09e06ae-3c49-44a0-b050-d2144f537120.png)
查看NetworkManager的状态:
[root@localhost ~]# nmcli general status
列出连接配置文件信息:
[root@localhost ~]# nmcli connection show
显示网卡的状态:
[root@localhost ~]# nmcli device status
![在这里插入图片描述 如何在CentOS 7中使用nmcli工具管理网络_d3_02](//dev-img.mos.moduyun.com/20231025/875ae04a-58f5-45d3-8014-2774ad3afedd.png)
可以使用nmcli命令行启动或停止网卡,相当于ifup/ifdown命令。
[root@localhost ~]# nmcli device disconnect enp0s3
![在这里插入图片描述 如何在CentOS 7中使用nmcli工具管理网络_配置文件_03](//dev-img.mos.moduyun.com/20231025/e70e5fdd-589f-41c4-8f35-4b3d81041059.png)
[root@localhost ~]# nmcli device connect enp0s3
![在这里插入图片描述 如何在CentOS 7中使用nmcli工具管理网络_d3_04](//dev-img.mos.moduyun.com/20231025/6e116c51-08b2-483d-9a38-d1f341ba48e3.png)
- 修改网卡信息,由原来的dhcp自动获取改为手动添加地址:
[root@localhost ~]# nmcli connection modify enp0s3 ipv4.method manual ipv4.addresses 192.168.0.110/24 ipv4.gateway 192.168.0.1 ipv4.dns 202.102.128.68
或者
[root@localhost ~]# nmcli connection modify ens33 ipv4.method manual ipv4.address 172.16.1.120/24 connection.autoconnect yes
然后
[root@localhost ~]# nmcli connection up enp0s3
![在这里插入图片描述 如何在CentOS 7中使用nmcli工具管理网络_配置文件_05](//dev-img.mos.moduyun.com/20231025/2e84a7fb-8391-45f1-8ffe-194b65183a1f.png)
[root@localhost ~]# nmcli connection modify enp0s3 +ipv4.addresses 192.168.0.108/24
# 启用配置文件
[root@localhost ~]# nmcli connection up enp0s3
# 查看ip地址
[root@localhost ~]# ip add show enp0s3
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:7b:d3:32 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.107/24 brd 192.168.0.255 scope global noprefixroute enp0s3
valid_lft forever preferred_lft forever
inet 192.168.0.108/24 brd 192.168.0.255 scope global secondary noprefixroute enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::d4d9:9043:1056:9e1a/64 scope link
[root@localhost ~]# nmcli connection modify enp0s3 -ipv4.addresses 192.168.0.108/24
# 启用配置文件
[root@localhost ~]# nmcli connection up enp0s3
# 查看ip地址
[root@localhost ~]# ip ad show enp0s3
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:7b:d3:32 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.107/24 brd 192.168.0.255 scope global noprefixroute enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::d4d9:9043:1056:9e1a/64 scope link
2. 其他使用方法
- nmcli命令与接口配置文件选项的对应关系
![在这里插入图片描述 如何在CentOS 7中使用nmcli工具管理网络_d3_06](//dev-img.mos.moduyun.com/20231025/d8a2cb3f-33ec-4a97-b68c-8b4810e84154.png)
- 使用例子
nmcli connection modify eth2 autoconnect no
nmcli connection modify eth2 ipv4.method auto
nmcli connection modify eth2 +ipv4.addresses 192.168.111.122/24
nmcli connection modify eth2 +ipv4.dns 8.8.8.8
nmcli connection reload
nmcli connection down eth0
nmcli connection up eth0
只显示活动连接
nmcli connection show --active
显示网卡详细信息(ens33是connection.id)
nmcli connection show ens33
nmcli device show eth0
显示设备状态
nmcli device status