Centos7系统配置上的变化(二)网络管理基础

时间:2022-08-08 14:49:15

原文 Centos7系统配置上的变化(二)网络管理基础

上篇简单介绍了CentOS 7 在服务和网络方面的一点变化,先前很多烂熟于心的操作指令已经不适用了,不管是否习惯,总要接受、熟悉这些变化。 写上篇的时候还没有最小安装的ISO(CentOS-7.0-1406-x86_64-Minimal.iso),后来安装了首先发现ifconfig、netstat、route、arp都没有了,在哪儿呢?

1.[root@centos7 ~]# yum search ifconfig
2.......
3.======================== Matched: ifconfig =========================
4.net-tools.x86_64 : Basic networking tools
5.[root@centos7 ~]#

哦,最小安装默认没有包含这些老工具,如果非用不可,就 yum install net-tools 吧,但我就是要看看不用它们我们怎么来管理网络。 我们将要用到的是ip指令,ss指令和NetworkManager的两个工具 nmtui,nmcli。老实说,这几个工具更加强大了,但还真不太容易习惯呢。
一、ip ss指令替代 ifconfig route arp netstat
1、ip 指令入门 ip [ OPTIONS ] OBJECT { COMMAND | help }   OBJECT 和 COMMAND可以简写到一个字母 ip help          可以查到OBJECT列表和OPTIONS,简写 ip h ip <OBJECT> help   查看针对该OBJECT的帮助,比如 ip addr help,简写 ip a h ip addr          查看网络接口地址,简写 ip a
查看网络接口地址,替代ifconfig:

01.[root@centos7 ~]# ip addr
02.1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
03.link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
04.inet 127.0.0.1/8 scope host lo
05.valid_lft forever preferred_lft forever
06.inet6 ::1/128 scope host
07.valid_lft forever preferred_lft forever
08.2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
09.link/ether 08:00:27:15:35:d2 brd ff:ff:ff:ff:ff:ff
10.inet 192.168.150.110/24 brd 192.168.150.255 scope global enp0s3
11.valid_lft forever preferred_lft forever
12.inet6 fe80::a00:27ff:fe15:35d2/64 scope link
13.valid_lft forever preferred_lft forever
14.[root@centos7 ~]#

网络接口统计信息

01.[root@centos7 ~]# ip -s link
02.1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
03.link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
04.RX: bytes  packets  errors  dropped overrun mcast  
05.0          0        0       0       0       0     
06.TX: bytes  packets  errors  dropped carrier collsns
07.0          0        0       0       0       0     
08.2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
09.link/ether 08:00:27:15:35:d2 brd ff:ff:ff:ff:ff:ff
10.RX: bytes  packets  errors  dropped overrun mcast  
11.8135366    131454   0       0       0       456   
12.TX: bytes  packets  errors  dropped carrier collsns
13.646297     2441     0       0       0       0

2、ip route显示和设定路由

显示路由表

1.[root@centos7 ~]# ip route
2.default via 192.168.150.254 dev enp0s3  proto static  metric 1024
3.192.168.150.0/24 dev enp0s3  proto kernel  scope link  src 192.168.150.110

太难看了,格式化一下(显示的是默认网关和局域网路由,两行的内容没有共通性):

1.[root@centos7 tmp]# ip route|column -t
2.default           via  192.168.150.254  dev    enp0s3  proto  static  metric  1024
3.192.168.150.0/24  dev  enp0s3           proto  kernel  scope  link    src    192.168.150.110

添加静态路由

01.[root@centos7 ~]# ip route add 10.15.150.0/24 via 192.168.150.253 dev enp0s3
02.[root@centos7 ~]#
03.[root@centos7 ~]# ip route|column -t
04.default           via  192.168.150.254  dev    enp0s3  proto  static  metric  1024
05.10.15.150.0/24    via  192.168.150.253  dev    enp0s3  proto  static  metric  1
06.192.168.150.0/24  dev  enp0s3           proto  kernel  scope  link    src    192.168.150.110
07.[root@centos7 ~]#
08.[root@centos7 ~]# ping 10.15.150.1
09.PING 10.15.150.1 (10.15.150.156(84) bytes of data.
10.64 bytes from 10.15.150.1: icmp_seq=1 ttl=63 time=1.77 ms
11.64 bytes from 10.15.150.1: icmp_seq=1 ttl=63 time=1.08 ms
12.64 bytes from 10.15.150.1: icmp_seq=1 ttl=63 time=1.57 ms
13.^C

删除静态路由只需要把 add 替换成 del,或者更简单的只写目标网络

1.[root@centos7 ~]# ip route del 10.15.150.0/24
2.[root@centos7 ~]#

但是,ip route 指令对路由的修改不能保存,重启就没了。 设置永久的静态路由的方法RHEL官网文档讲了几种,试验成功的只有一种:

1.[root@centos7 ~]#echo '10.15.150.0/24 via 192.168.150.253 dev enp0s3' > /etc/sysconfig/network-scripts/route-enp0s3

重启计算机,或者禁用再启用设备enp0s3才能生效, 注意:/etc/sysconfig/static-routes,/etc/sysconfig/network 配置文件都不好用。
3、用 ip neighbor 代替 arp -n

1.[root@centos7 ~]# ip nei
2.192.168.150.254 dev enp0s3 lladdr b8:a3:86:37:bd:f8 STALE
3.192.168.150.100 dev enp0s3 lladdr 90:b1:1c:94:a1:20 DELAY
4.192.168.150.253 dev enp0s3 lladdr 00:09:0f:85:86:b9 STALE

4、用ss 代替 netstat 对应netstat -ant

1.[root@centos7 ~]# ss -ant
2.State       Recv-Q Send-Q   Local Address:Port     Peer Address:Port
3.LISTEN      0      100          127.0.0.1:25                  *:*    
4.LISTEN      0      128                  *:22                  *:*    
5.ESTAB       0      0      192.168.150.110:22    192.168.150.100:53233
6.LISTEN      0      100                ::1:25                 :::*    
7.LISTEN      0      128                 :::22                 :::*

对应netstat -antp

01.[root@centos7 tmp]# ss -antp
02.State      Recv-Q Send-Q        Local Address:Port          Peer Address:Port
03.LISTEN     0      100               127.0.0.1:25                       *:*     
04.users:(('master',1817,13))
05.LISTEN     0      128                       *:22                       *:*     
06.users:(('sshd',1288,3))
07.ESTAB      0      0           192.168.150.110:22         192.168.150.100:59413 
08.users:(('sshd',2299,3))
09.LISTEN     0      100                     ::1:25                      :::*     
10.users:(('master',1817,14))
11.LISTEN     0      128                      :::22                      :::*     
12.users:(('sshd',1288,4))
13.[root@centos7 tmp]#

看着真的很别扭,不管多宽的终端屏,users:部分都会折到下一行,其实是在一行的。
格式化一下,内容整齐了,但是标题行串了:

1.[root@centos7 tmp]# ss -antp|column -t
2.State   Recv-Q  Send-Q  Local               Address:Port           Peer                        Address:Port
3.LISTEN  0       100     127.0.0.1:25        *:*                    users:(('master',1817,13))
4.LISTEN  0       128     *:22                *:*                    users:(('sshd',1288,3))
5.ESTAB   0       0       192.168.150.110:22  192.168.150.100:59413  users:(('sshd',2299,3))
6.LISTEN  0       100     ::1:25              :::*                   users:(('master',1817,14))
7.LISTEN  0       128     :::22               :::*                   users:(('sshd',1288,4))

5、旧的network脚本和ifcfg文件 Centos7 开始,网络由 NetworkManager 服务负责管理,相对于旧的 /etc/init.d/network 脚本,NetworkManager是动态的、事件驱动的网络管理服务。旧的 /etc/init.d/network 以及 ifup,ifdown 等依然存在,但是处于备用状态,即:NetworkManager运行时,多数情况下这些脚本会调用NetworkManager去完成网络配置任务;NetworkManager么有运行时,这些脚本就按照老传统管理网络。

1.[root@centos7 ~]# /etc/init.d/network start
2.Starting network (via systemctl):                          [  OK  ]

注意(via systemctl)。
6、网络配置文件: /etc/sysconfig/network   说是全局设置,默认里面啥也没有 /etc/hostname            用nmtui修改hostname后,主机名保存在这里 /etc/resolv.conf         保存DNS设置,不需要手工改,nmtui里面设置的DNS会出现在这里 /etc/sysconfig/network-scripts/            连接配置信息 ifcfg 文件 /etc/NetworkManager/system-connections/    VPN、移动宽带、PPPoE连接

二、nmtui配置基本网络连接 nmtui 属于curses-based text user interface(文本用户界面), 类似 Centos6 的 setup 工具,但只能编辑连接、启用/禁用连接、更改主机名。系统初装之后可以第一时间用nmtui配置网络,挺方便。 看图吧,功能跳转可以用 tab 键或光标键,用空格或回车执行。每个子功能完成了、退出了或取消了会直接回命令行(觉得不方便就试试 nmtui help,有直达的方法)。
在命令行运行 nmtui Centos7系统配置上的变化(二)网络管理基础
添加连接,支持的连接很丰富啊,还有WiFi呢。但是vpn在哪?呵呵,nmtui目前还不支持。 Centos7系统配置上的变化(二)网络管理基础
编辑连接。 Centos7系统配置上的变化(二)网络管理基础
想编哪里就跳到哪里,如果不喜欢enp0s3这样的连接名,可以在Profile name处改掉,后面会说改名的好处。 Centos7系统配置上的变化(二)网络管理基础
注意,编辑复选框只能用空格 Centos7系统配置上的变化(二)网络管理基础
启用/禁用连接,远程连接的时候可以试试执行一下 <Deactivate>,然后以泪洗面吧。。。。 Centos7系统配置上的变化(二)网络管理基础
改主机名,改完后重启才有效,不想重启就回命令行执行 hostname <你的主机名> ,注销再登录就好了。 Centos7系统配置上的变化(二)网络管理基础
三、nmcli和其他网络设置 nmcli的功能要强大、复杂的多

01.[root@centos7 ~]# nmcli help
02.Usage: nmcli [OPTIONS] OBJECT { COMMAND | help }
03. 
04.OPTIONS
05.-t[erse]                                   terse output
06.-p[retty]                                  pretty output
07.-m[ode] tabular|multiline                  output mode
08.-f[ields] <field1,field2,...>|all|common   specify fields to output
09.-e[scape] yes|no                           escape columns separators in values
10.-n[ocheck]                                 don't check nmcli and NetworkManager versions
11.-a[sk]                                     ask for missing parameters
12.-w[ait] <seconds>                          set timeout waiting for finishing operations
13.-v[ersion]                                 show program version
14.-h[elp]                                    print this help
15. 
16.OBJECT
17.g[eneral]       NetworkManager's general status and operations
18.n[etworking]    overall networking control
19.r[adio]         NetworkManager radio switches
20.c[onnection]    NetworkManager's connections
21.d[evice]        devices managed by NetworkManager

OBJECT和COMMAND可以用全称也可以用简称,最少可以只用一个字母,建议用头三个字母。OBJECT里面我们平时用的最多的就是connection和device,这里需要简单区分一下connection和device。

device叫网络接口,是物理设备 connection是连接,偏重于逻辑设置 多个connection可以应用到同一个device,但同一时间只能启用其中一个connection。 这样的好处是针对一个网络接口,我们可以设置多个网络连接,比如静态IP和动态IP,再根据需要up相应的connection。

上篇说了,/etc/udev/rules.d/70-persistent-net.rules 文件没有了,新添加的网卡NetworkManager自动识别。我们现在试试,给Virtualbox虚拟机增加第二块网卡,虚拟机启动后直接可以看到并且生效了。 Centos7系统配置上的变化(二)网络管理基础

1.[root@centos7 ~]# nmcli con show
2.NAME                UUID                                  TYPE            DEVICE
3.Wired connection 1  0c451785-b098-4c5c-994d-9107171b439d  802-3-ethernet  enp0s8
4.enp0s3              295e1841-0ff3-4db9-8800-4e25fc2944da  802-3-ethernet  enp0s3

“Wired connection 1”是新增的网络连接,对应的网络接口叫enp0s8; “enp0s3”是最初的网络连接,默认与网络接口同名。
我们可以用nmtui把两个连接改成我们熟悉的名字(nmcli也能,但比较麻烦哦)。改完了看看连接:

1.[root@centos7 ~]# nmcli con show
2.NAME  UUID                                  TYPE            DEVICE
3.eth3  0c451785-b098-4c5c-994d-9107171b439d  802-3-ethernet  enp0s8
4.eth0  295e1841-0ff3-4db9-8800-4e25fc2944da  802-3-ethernet  enp0s3

这样就舒服多了!
看看设备:

01.[root@centos7 ~]# nmcli dev show enp0s3
02.GENERAL.DEVICE:                         enp0s3
03.GENERAL.TYPE:                           ethernet
04.GENERAL.HWADDR:                         08:00:27:15:35:D2
05.GENERAL.MTU:                            1500
06.GENERAL.STATE:                          100 (connected)
07.GENERAL.CONNECTION:                     eth0
08.GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/4
09.WIRED-PROPERTIES.CARRIER:               on
10.IP4.ADDRESS[1]:                         ip = 192.168.150.110/24, gw = 192.168.150.254
11.IP4.DNS[1]:                             192.168.150.254
12.IP6.ADDRESS[1]:                         ip = fe80::a00:27ff:fe15:35d2/64, gw = ::
13.[root@centos7 ~]#
14.[root@centos7 ~]# nmcli dev show enp0s8
15.GENERAL.DEVICE:                         enp0s8
16.GENERAL.TYPE:                           ethernet
17.GENERAL.HWADDR:                         08:00:27:98:D1:B7
18.GENERAL.MTU:                            1500
19.GENERAL.STATE:                          100 (connected)
20.GENERAL.CONNECTION:                     eth3
21.GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/3
22.WIRED-PROPERTIES.CARRIER:               on
23.IP4.ADDRESS[1]:                         ip = 10.0.3.15/24, gw = 10.0.3.2
24.IP4.DNS[1]:                             10.0.3.2
25.IP6.ADDRESS[1]:                         ip = fe80::a00:27ff:fe98:d1b7/64, gw = ::
26.[root@centos7 ~]#

但是试试用连接名查设备呢?

1.[root@centos7 ~]# nmcli dev show eth0
2.Error: Device 'eth0' not found.

用设备名查连接也是一样出错:

1.[root@centos7 ~]# nmcli con show enp0s3
2.Error: enp0s3 - no such connection profile.

这回能看清楚了吧?懂得了连接和设备的区别,在一些指令帮助里面有的参数需要connection,有的需要device,就不会糊涂了。
需要注意的是,enp0s3设备对应的连接名改为eth0,但对应的ifcfg文件并没有改名,我们改改试试,改之前先备份原配置文件到其他目录(注意,不能备份到network-scripts目录!)。

01.[root@centos7 network-scripts]# cat ifcfg-enp0s3
02.TYPE=Ethernet
03.BOOTPROTO=none
04.DEFROUTE=yes
05.IPV4_FAILURE_FATAL=no
06.IPV6INIT=no
07.IPV6_AUTOCONF=yes
08.IPV6_DEFROUTE=yes
09.IPV6_PEERDNS=yes
10.IPV6_PEERROUTES=yes
11.IPV6_FAILURE_FATAL=no
12.NAME=eth0
13.UUID=295e1841-0ff3-4db9-8800-4e25fc2944da
14.ONBOOT=yes
15.IPADDR0=192.168.150.110
16.PREFIX0=24
17.GATEWAY0=192.168.150.254
18.DNS1=192.168.150.254
19.HWADDR=08:00:27:15:35:D2
20.[root@centos7 network-scripts]#
21.[root@centos7 network-scripts]# cp ifcfg-enp0s3 /root/
22.[root@centos7 network-scripts]# mv ifcfg-enp0s3 ifcfg-eth0
23.[root@centos7 network-scripts]#
24.[root@centos7 network-scripts]# systemctl restart network
25.[root@centos7 network-scripts]#

没有问题,配置文件改名成功,强迫症又一次胜利了,耶! 我们还可以看到,ifcfg-eth0里面没有参数指明设备enp0s3,唯一与设备enp0s3相对应的是MAC地址(HWADDR 08:00:27:15:35:D2)。
现在试试增加一个针对新网络接口enp0s8的连接,现有连接是 eth3:

01.[root@centos7 network-scripts]# cat ifcfg-eth3
02.HWADDR=08:00:27:98:D1:B7
03.TYPE=Ethernet
04.BOOTPROTO=dhcp
05.DEFROUTE=yes
06.PEERDNS=yes
07.PEERROUTES=yes
08.IPV4_FAILURE_FATAL=no
09.IPV6INIT=yes
10.IPV6_AUTOCONF=yes
11.IPV6_DEFROUTE=yes
12.IPV6_PEERDNS=yes
13.IPV6_PEERROUTES=yes
14.IPV6_FAILURE_FATAL=no
15.NAME=eth3
16.UUID=0c451785-b098-4c5c-994d-9107171b439d
17.ONBOOT=yes

嗯,是自动获得IP的。

我们新建一个连接eth3-1,分配固定IP,用nmtui可以很容易的建立 Centos7系统配置上的变化(二)网络管理基础

01.[root@centos7 ~]# nmcli con show
02.NAME    UUID                                  TYPE            DEVICE
03.eth3-1  ef5c3fbc-f07a-4d6e-9f4d-83f239ffc2e9  802-3-ethernet  --    
04.eth3    0c451785-b098-4c5c-994d-9107171b439d  802-3-ethernet  enp0s8
05.eth0    295e1841-0ff3-4db9-8800-4e25fc2944da  802-3-ethernet  enp0s3
06.只是增加了一个连接,其他的没有变化。
07.我们启动新连接 eth3-1
08.[root@centos7 ~]# nmcli con up eth3-1
09.Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
10.[root@centos7 ~]#
11.[root@centos7 ~]# nmcli con show
12.NAME    UUID                                  TYPE            DEVICE
13.eth3-1  ef5c3fbc-f07a-4d6e-9f4d-83f239ffc2e9  802-3-ethernet  enp0s8
14.eth3    0c451785-b098-4c5c-994d-9107171b439d  802-3-ethernet  --    
15.eth0    295e1841-0ff3-4db9-8800-4e25fc2944da  802-3-ethernet  enp0s3
16.[root@centos7 ~]#
17.[root@centos7 ~]# nmcli -t -f IP4.ADDRESS dev show enp0s8
18.IP4.ADDRESS[1]:ip = 10.0.3.110/24, gw = 10.0.3.2

“nmcli -t -f IP4.ADDRESS dev show enp0s8” 是以脚本友好的方式显示网络接口信息。 现在可以很明显的看到,将连接eth3-1 up了之后,eth3-1占据了原来由eth3占据的DEVICE enp0s8,并且IP地址已经是指定的10.0.3.110/24 了。

01.[root@centos7 network-scripts]# cat ifcfg-eth3-1
02.TYPE=Ethernet
03.BOOTPROTO=none
04.IPADDR0=10.0.3.110
05.PREFIX0=24
06.GATEWAY0=10.0.3.2
07.DNS1=10.0.3.2
08.DEFROUTE=yes
09.IPV4_FAILURE_FATAL=no
10.IPV6INIT=no
11.NAME=eth3-1
12.UUID=ef5c3fbc-f07a-4d6e-9f4d-83f239ffc2e9
13.DEVICE=enp0s8
14.ONBOOT=yes

ifcfg-eth3-1文件里没有HWADDR参数,但是多了一个DEVICE参数,等于enp0s8,你可以对比一下ifcfg-eth3看看区别在哪。 连接的配置文件 ifcfg-*,可以用 DEVICE 指定设备名,也可以用HWADDR指定设备的MAC地址,最终结果都一样的指向某个设备(网络接口)。
我们再试试用nmcli增加连接:

01.[root@centos7 ~]# nmcli con add con-name eth3-2 ifname enp0s8 type ethernet ip410.0.3.120/24 gw4 10.0.3.2
02.Connection 'eth3-2' (468815f5-ce97-43bd-904a-3078e2e59fec) successfully added.
03.[root@centos7 ~]#
04.[root@centos7 ~]# nmcli con show
05.NAME    UUID                                  TYPE            DEVICE
06.eth3-1  ef5c3fbc-f07a-4d6e-9f4d-83f239ffc2e9  802-3-ethernet  enp0s8
07.eth3    0c451785-b098-4c5c-994d-9107171b439d  802-3-ethernet  --    
08.eth0    295e1841-0ff3-4db9-8800-4e25fc2944da  802-3-ethernet  enp0s3
09.eth3-2  468815f5-ce97-43bd-904a-3078e2e59fec  802-3-ethernet  --    
10.[root@centos7 ~]#
11.[root@centos7 ~]# nmcli con up eth3-2
12.Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
13.[root@centos7 ~]#
14.[root@centos7 ~]# nmcli con show
15.NAME    UUID                                  TYPE            DEVICE
16.eth3-1  ef5c3fbc-f07a-4d6e-9f4d-83f239ffc2e9  802-3-ethernet  --    
17.eth3    0c451785-b098-4c5c-994d-9107171b439d  802-3-ethernet  --    
18.eth0    295e1841-0ff3-4db9-8800-4e25fc2944da  802-3-ethernet  enp0s3
19.eth3-2  468815f5-ce97-43bd-904a-3078e2e59fec  802-3-ethernet  enp0s8
20.[root@centos7 ~]#
21.[root@centos7 ~]# nmcli -t -f IP4.ADDRESS dev show enp0s8
22.IP4.ADDRESS[1]:ip = 10.0.3.120/24, gw = 10.0.3.2
23.[root@centos7 ~]#

再看看新的ifcfg文件:

01.[root@centos7 network-scripts]# cat ifcfg-eth3-2
02.TYPE=Ethernet
03.BOOTPROTO=none
04.IPADDR0=10.0.3.120
05.PREFIX0=24
06.GATEWAY0=10.0.3.2
07.DEFROUTE=yes
08.IPV4_FAILURE_FATAL=no
09.IPV6INIT=yes
10.IPV6_AUTOCONF=yes
11.IPV6_DEFROUTE=yes
12.IPV6_PEERDNS=yes
13.IPV6_PEERROUTES=yes
14.IPV6_FAILURE_FATAL=no
15.NAME=eth3-2
16.UUID=468815f5-ce97-43bd-904a-3078e2e59fec
17.DEVICE=enp0s8
18.ONBOOT=yes
19.[root@centos7 network-scripts]#

现在up的连接是eth3-2,网络接口enp0s8的IP是10.0.3.120 如果重新up连接eth3-1,nmcli con up eth3-1,网络接口enp0s8的IP变成了10.0.3.110 如果重新up连接eth3,  nmcli con up eth3,  网络接口enp0s8的IP就回到原来自动获得的值10.0.3.15
所以,对一个网络接口设置不同的连接,可以快速的切换不同的网络配置,这个真的满厉害的。
编辑连接 用nmtui编辑连接后,ifcfg文件也会有相应的改动;手工修改ifcfg后,nmtui中也能看到。 但是,不论用nmtui还是直接修改ifcfg文件,想让新的配置生效,我们需要load连接配置文件并重新up连接。
举例,我们编辑ifcfg-eth3-1,把IP改为10.0.3.111,然后执行nmcli con reload 或 nmcli con load /etc/sysconfig/network-scripts/ifcfg-eth3-1 结果如下:

01.[root@centos7 ~]# nmcli con load /etc/sysconfig/network-scripts/ifcfg-eth3-1
02.[root@centos7 ~]# nmcli con up eth3-1
03.Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
04.[root@centos7 ~]# ip addr show enp0s8
05.3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
06.link/ether 08:00:27:98:d1:b7 brd ff:ff:ff:ff:ff:ff
07.inet 10.0.3.111/24 brd 10.0.3.255 scope global enp0s8
08.valid_lft forever preferred_lft forever
09.inet6 fe80::a00:27ff:fe98:d1b7/64 scope link
10.valid_lft forever preferred_lft forever
11.[root@centos7 ~]#

新的IP地址生效了。
BONUS:如果有物理WLAN,nmcli能查看wifi,瞅瞅来,好玩吧?(示例来自nmcli-examples(5) man page,指令: man 5 nmcli-examples)

1.$ nmcli device wifi list
2. 
3.*  SSID               MODE    CHAN  RATE     SIGNAL  BARS  SECURITY
4.netdatacomm_local  Infra   6     54 MB/s  37      ▂▄__  WEP
5.*  F1                 Infra   11    54 MB/s  98      ▂▄▆█  WPA1
6.LoremCorp          Infra   1     54 MB/s  62      ▂▄▆_  WPA2 802.1X
7.Internet           Infra   6     54 MB/s  29      ▂___  WPA1
8.HPB110a.F2672A     Ad-Hoc  6     54 MB/s  22      ▂___  --

鉴于很多基本配置可以用nmtui做,而且往往设置一次就够了,nmcli命令行其他强大功能等用的时候再查吧,这里不多讲了。