1. 简介
nmcli是NetworkManager的一个命令行工具,它提供了使用命令行配置由NetworkManager管理网络连接的方法。nmcli命令的基本格式为:
nmcli [OPTIONS] OBJECT { COMMAND | help }
其中,OBJECT选项可以是general、networking、radio、connection或device等。OBJECT里面我们平时用的最多的就是connection和device。
这里需要简单区分一下connection和device:
device叫网络接口,是物理设备
connection是连接,偏重于逻辑设置
多个connection可以应用到同一个device,但同一时间只能启用其中一个connection。这样的好处是针对一个网络接口,我们可以设置多个网络连接,比如静态IP和动态IP,再根据需要up相应connection。
2. 常用命令介绍:
-
显示NetworkManager状态:
$ nmcli general status
-
显示所有连接:
$ nmcli connection show
-
只显示当前活动连接,如下所示添加 -a, --active:
$ nmcli connection show --active
-
显示由NetworkManager识别到设备及其状态:
$ nmcli device status
-
启用连接
nmcli con up eth1
-
删除连接
nmcli connection delete eth1
-
启动和停止网络接口,在root权限下执行如下命令:
# nmcli connection up id enp3s0 ifname enp3s0(前一个enp3s0是网络连接,后一个是设备接口) # nmcli device disconnect enp3s0
3.配置动态IP连接
配置IP要使用 DHCP 分配网络时,可以使用动态IP配置添加网络配置文件,命令格式如下:
nmcli connection add type ethernet con-name connection-name ifname interface-name
con add – 添加新的连接 con-name – 连接名 type – 设备类型 ifname – 接口名
例如创建名为enp125s0f0-dhcp的动态连接配置文件,绑定网卡为enp125s0f0。在root权限下使用以下命令:
# nmcli connection add type ethernet con-name enp125s0f0-dhcp ifname enp125s0f0
Connection 'enp125s0f0-dhcp' (a771baa0-5064-4296-ac40-5dc8973967ab) successfully added.
NetworkManager 会将参数 connection.autoconnect 设定为 yes,并将设置保存到“/etc/sysconfig/network-scripts/ifcfg-net-test”文件中,在该文件中会将 ONBOOT 设置为 yes。
可以看到直接生成配置文件,但是网卡设备没有绑定,所以并没有生效。
[java@localhost ~]$ nmcli connection show
NAME UUID TYPE DEVICE
enp125s0f0 8e4ba698-6293-4f6d-a184-937db07684da ethernet enp125s0f0
virbr0 e81f9c1d-4d5e-4c1b-8c58-24909f01acfe bridge virbr0
enp125s0f0-dhcp 5134c2ad-39be-4d74-8ba7-187599690204 ethernet --
enp125s0f1 90f9ef00-846f-4601-8699-39f0b6ee04c3 ethernet --
激活连接并检查状态,在root权限下使用以下命令激活网络连接:
# nmcli con up enp125s0f0-dhcp
Connection successfully activated (D-Bus active path:/org/freedesktop
/NetworkManager/ActiveConnection/5)
4.配置静态IP连接
配置IP添加静态 IPv4 配置的网络连接,可使用以下命令:
nmcli connection add type ethernet con-name enps0
ifname enps0 ip4 192.168.0.13/24 gw4 192.168.9.15
con add – 添加新的连接 con-name – 连接名 type – 设备类型 ifname – 接口名
由于命令过长,要善于使用TAB键补全,命令完成后,会在/etc/sysconfig/network-scripts/下生成一个配置文件,但是并未生效。
例:创建以个名字为static的,类型为以太网卡,绑定网卡为eth1,开机自动启动,定义ipv4地址和网关。
[root@CentOS 7 ~]# nmcli connection add con-name home type ethernet ifname
eth1 autoconnect yes ip4 10.1.252.60/24 gw4 10.1.0.254
可以看到直接生成配置文件,但是网卡设备没有绑定,所以并没有生效。
启用eth1连接配置
nmcli con up eth1
同一时间一个连接只能绑定在一个接口上。平时如果工作需要,可以多设置几套连接配置文件,环境需要时可以进行临时的切换。
当不需要再用时可以使用:nmcli connection delete eth1删除
5.通过ifcfg文件配置网络
说明:
通过ifcfg文件配置的网络配置不会立即生效,需要在root权限下执行systemctl reload NetworkManager.service;nmcli con reload命令以重启网络服务后才生效。
配置静态网络:
以enp4s0网络接口进行静态网络设置为例,通过在root权限下修改ifcfg文件实现,在/etc/sysconfig/network-scripts/目录中生成名为ifcfg-enp4s0的文件中,修改参数配置,示例如下:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=192.168.0.10
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp4s0
UUID=08c3a30e-c5e2-4d7b-831f-26c3cdc29293
DEVICE=enp4s0
ONBOOT=yes
修改连接配置后,需要重新连接和加载配置
# nmcli con up enps0 ifname enps0
# nmcli con reload
查看连接情况
$ nmcli connection show