阅读(4802) (0)

9.1.2 创建网络会话

2019-05-04 11:25:45 更新

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 设置虚拟机网卡的模式