RHEL和CentOS系统默认使用NetworkManager来提供网络服务,这是一种动态管理网络配置的守护进程,能够让网络设备保持连接状态。可以使用nmcli命令来管理Network Manager服务。nmcli是一款基于命令行的网络配置工具,功能丰富,参数众多。它可以轻松地查看网络信息或网络状态:
[root@linuxprobe ~]# nmcli connection show NAME UUID TYPE DEVICE eno16777736 ec77579b-2ced-481f-9c09-f562b321e268 802-3-ethernet eno16777736 [root@linuxprobe ~]# nmcli con show eno16777736 connection.id: eno16777736 connection.uuid: ec77579b-2ced-481f-9c09-f562b321e268 connection.interface-name: -- connection.type: 802-3-ethernet connection.autoconnect: yes connection.timestamp: 1487348994 connection.read-only: no connection.permissions: connection.zone: -- connection.master: -- connection.slave-type: -- connection.secondaries: connection.gateway-ping-timeout: 0 ………………省略部分输出信息……………… 另外,RHEL7系统支持网络会话功能,允许用户在多个配置文件中快速切换(非常类似于firewalld防火墙服务中的区域技术)。如果我们在公司网络中使用笔记本电脑时需要手动指定网络的IP地址,而回到家中则是使用DHCP自动分配IP地址。这就需要麻烦地频繁修改IP地址,但是使用了网络会话功能后一切就简单多了—只需在不同的使用环境中激活相应的网络会话,就可以实现网络配置信息的自动切换了。
可以使用nmcli命令并按照“connection add con-name type ifname”的格式来创建网络会话。假设将公司网络中的网络会话称之为company,将家庭网络中的网络会话称之为house,现在依次创建各自的网络会话。
使用con-name参数指定公司所使用的网络会话名称company,然后依次用ifname参数指定本机的网卡名称(千万要以实际环境为准,不要照抄书上的eno16777736),用autoconnect no参数设置该网络会话默认不被自动激活,以及用ip4及gw4参数手动指定网络的IP地址:
[root@linuxprobe ~]# nmcli connection add con-name company ifname eno16777736 autoconnect no type ethernet ip4 192.168.10.10/24 gw4 192.168.10.1 Connection 'company' (86c71220-0057-419e-b615-38f4014cfdee) successfully added. 使用con-name参数指定家庭所使用的网络会话名称house。因为我们想从外部DHCP服务器自动获得IP地址,因此这里不需要进行手动指定。
[root@linuxprobe ~]# nmcli connection add con-name house type ethernet ifname eno16777736 Connection 'house' (44acf0a7-07e2-40b4-94ba-69ea973090fb) successfully added. 在成功创建网络会话后,可以使用nmcli命令查看创建的所有网络会话:
[root@linuxprobe ~]# nmcli connection show NAME UUID TYPE DEVICE house 44acf0a7-07e2-40b4-94ba-69ea973090fb 802-3-ethernet -- company 86c71220-0057-419e-b615-38f4014cfdee 802-3-ethernet -- eno16777736 ec77579b-2ced-481f-9c09-f562b321e268 802-3-ethernet eno16777736 使用nmcli命令配置过的网络会话是永久生效的,这样当我们下班回家后,顺手启用house网络会话,网卡就能自动通过DHCP获取到IP地址了。
[root@linuxprobe ~]# nmcli connection up house Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2) [root@linuxprobe ~]# ifconfig eno1677773628: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.100.128 netmask 255.255.255.0 broadcast 192.168.100.255 inet6 fe80::20c:29ff:fec4:a409 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:c4:a4:09 txqueuelen 1000 (Ethernet) RX packets 42 bytes 4198 (4.0 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 75 bytes 10441 (10.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 0 (Local Loopback) RX packets 518 bytes 44080 (43.0 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 518 bytes 44080 (43.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 如果大家使用的是虚拟机,请把虚拟机系统的网卡(网络适配器)切换成桥接模式,如图9-9所示。然后重启虚拟机系统即可。
图9-9 设置虚拟机网卡的模式