网络服务器搭建、配置与管理:Linux版(第3版)(微课版)
上QQ阅读APP看书,第一时间看更新

2.1 网络服务知识

Linux主机要与网络中的其他主机通信,首先要正确配置网络。网络配置通常包括主机名、IP地址、子网掩码、默认网关、DNS服务器等的设置。

2.1.1 检查并设置有线处于连接状态

单击桌面右上角的启动按钮49960-00-38-1,单击“Connect”按钮,设置有线处于连接状态,如图2-1所示。

图2-1 设置有线处于连接状态

设置完成后,右上角将出现有线连接的小图标,如图2-2所示。

图2-2 有线处于连接状态

特别提示:必须首先使有线处于连接状态,这是一切配置的基础,切记。

2.1.2 设置主机名

RHEL 7中有3种定义的主机名。

● 静态的(static):“静态”主机名也称为内核主机名,是系统在启动时从/etc/hostname自动初始化的主机名。

● 瞬态的(transient):“瞬态”主机名是在系统运行时临时分配的主机名,由内核管理。

例如,通过DHCP或DNS服务器分配的,如localhost。

● 灵活的(pretty):“灵活”主机名是UTF8格式的自由主机名,以展示给终端用户。

与之前版本不同,用户可以在配置文件中直接更改主机名,RHEL 7中的主机名配置文件是/etc/hostname。

1. 使用nmtui修改主机名

[root@RHEL7-1 ~]#  nmtui

在图2-3、图2-4中进行配置。

图2-3 配置hostname

图2-4 修改主机名为RHEL7-1

使用NetworkManager的nmtui接口修改静态主机名后(/etc/hostname文件),不会通知hostnamectl。要想强制让hostnamectl知道静态主机名已经被修改,需要重启hostnamed服务。

[root@RHEL7-1 ~]# systemctl restart systemd-hostnamed

2. 使用hostnamectl修改主机名

① 查看主机名。

[root@RHEL7-1 ~]# hostnamectl status
  Static hostname: RHEL7-1
  Pretty hostname: RHEL7-1

② 设置新的主机名。

[root@RHEL7-1 ~]# hostnamectl set-hostname my.smile.com

③ 查看主机名。

[root@RHEL7-1 ~]# hostnamectl status
  Static hostname: my.smile.com
      ......

3. 使用NetworkManager的命令行接口nmcli修改主机名

nmcli可以修改/etc/hostname中的静态主机名。

//查看主机名
[root@RHEL7-1 ~]# nmcli general hostname
my.smile.com
//设置新主机名
[root@RHEL7-1 ~]# nmcli general hostname RHEL7-1
[root@RHEL7-1 ~]# nmcli general hostname
RHEL7-1
//重启hostnamed 服务让 hostnamectl 知道静态主机名已经被修改
[root@RHEL7-1 ~]# systemctl restart systemd-hostnamed

2.1.3 使用系统菜单配置网络

接下来将学习如何在Linux系统上配置服务。但是在此之前,必须先保证主机之间能够顺畅地通信。如果网络不通,即便服务部署得再正确,用户也无法顺利访问,所以,配置网络并确保网络的连通性是学习部署Linux服务之前的最后一个重要知识点。

视频2-1 TCP-IP网络接口配置

可以单击桌面右上角的网络连接图标49960-00-40-2,打开网络配置界面,一步步完成网络信息查询和网络配置。具体过程如图2-5~图2-8所示。

图2-5 单击“Wired Settings”(有线连接设置)

图2-6 网络配置:单击“ON”按钮激活连接、单击齿轮按钮进行配置

图2-7 配置有线连接

图2-8 配置IPv4等信息

设置完成后,单击“Apply”按钮应用配置,返回图2-9所示的界面。注意网络连接应该设置在“ON”状态,如果在“OFF”状态,请修改。注意,有时需要重启系统配置才能生效。

图2-9 网络配置界面

建议:首选使用系统菜单配置网络。因为从RHEL 7开始,图形界面已经非常完善。在Linux系统桌面,单击“Applications”→“System Tools”→“Settings”→“Network”,同样可以打开网络配置界面。后面不再赘述。

2.1.4 通过网卡配置文件配置网络

网卡IP地址配置得是否正确是两台服务器是否可以相互通信的前提。在Linux系统中,一切都是文件,因此配置网络服务的工作其实就是在编辑网卡配置文件。

在RHEL 5、RHEL 6中,网卡配置文件的前缀为eth,第1块网卡为eth0,第2块网卡为eth1;以此类推。而在RHEL 7中,网卡配置文件的前缀则以ifcfg开始,加上网卡名称共同组成了网卡配置文件的名称,如ifcfg-ens33;好在除了文件名变化外,也没有其他大的区别。

现在有一个名称为ifcfg-ens33的网卡设备,将其配置为开机自启动,并且IP地址、子网、网关等信息由人工指定,操作步骤如下。

① 切换到/etc/sysconfig/network-scripts目录中(存放网卡的配置文件)。

② 使用vim编辑器修改网卡文件ifcfg-ens33,逐项写入下面的配置参数并保存退出。由于每台设备的硬件及架构是不一样的,因此请读者使用ifconfig命令自行确认各自网卡的默认名称。

● 设备类型:TYPE=Ethernet

● 地址分配模式:BOOTPROTO=static

● 网卡名称:NAME=ens33

● 是否启动:ONBOOT=yes

● IP地址:IPADDR=192.168.10.1

● 子网掩码:NETMASK=255.255.255.0

● 网关地址:GATEWAY=192.168.10.1

● DNS地址:DNS1=192.168.10.1

③ 重启网络服务并测试网络是否连通。

进入网卡配置文件所在的目录,然后编辑网卡配置文件,在其中输入下面的信息。

[root@RHEL7-1 ~]# cd /etc/sysconfig/network-scripts/
     [root@RHEL7-1 network-scripts]# vim ifcfg-ens33
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static
    NAME=ens33
    UUID=9d5c53ac-93b5-41bb-af37-4908cce6dc31
    DEVICE=ens33
ONBOOT=yes
    IPADDR=192.168.10.1
    NETMASK=255.255.255.0
    GATEWAY=192.168.10.1
    DNS1=192.168.10.1

执行重启网卡设备的命令(在正常情况下不会有提示信息),然后通过ping命令测试网络能否连通。由于在Linux系统中ping命令不会自动终止,因此需要手动按下“Ctrl+C”组合键来强行结束进程。

[root@RHEL7-1 network-scripts]# systemctl restart network
[root@RHEL7-1 network-scripts]# ping 192.168.10.1
PING 192.168.10.1 (192.168.10.1) 56(84) bytes  of data.
64 bytes  from 192.168.10.1:  icmp_ seq=1  ttl=64 time=0.095  ms
64 bytes  from 192.168.10.1:  icmp_ seq=2  ttl=64 time=0.048  ms
……

注意:使用配置文件配置网络,需要启动network服务,而从RHEL 7以后,network服务已被NetworkManager服务替代,所以不建议使用配置文件配置网络参数。

2.1.5 使用图形界面配置网络

使用图形界面配置网络是比较方便、简单的一种网络配置方式。

① 上节是使用网络配置文件配置网络服务,这一节使用nmtui命令来配置网络。

[root@RHEL7-1 network-scripts]# nmtui

② 显示图2-10所示的图形配置界面,选中Edit a connection并按下回车键,或单击“OK”按钮。

图2-10 选中“Edit a connection”并按下回车键

③ 配置过程如图2-11、图2-12所示。

图2-11 选中要编辑的网卡名称,然后单击“Edit”(编辑)按钮

图2-12 把网络IPv4的配置方式改成“Manual”(手动)

注意:本书的服务器主机IP地址均为192.168.10.1,而客户端主机一般设为192.168.10.20及192.168.10.30。之所以这样做,就是为了后面服务器配置方便。

④ 单击“Show”(显示)按钮,显示信息配置框,如图2-13所示。在服务器主机的网络配置信息中填写IP地址192.168.10.1/24等信息。单击“OK”按钮,如图2-14所示。

图2-13 填写IP地址

图2-14 单击“OK”按钮保存配置

⑤ 单击“back”按钮返回nmtui图形界面初始状态,选中“Activate a connection”选项,如图2-15所示,激活刚才的连接“ens33”。前面有“*”号表示激活,如图2-16所示。

⑥ 至此,在Linux系统中配置网络就结束了。

[root@RHEL7-1 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>   mtu  1500
       inet 192.168.10.1  netmask 255.255.255.0   broadcast 192.168.10.255
       inet6  fe80::c0ae:d7f4:8f5:e135  prefixlen 64  scopeid 0x20<link>
       ether  00:0c:29:66:42:8d  txqueuelen  1000  (Ethernet)
       RX packets 151   bytes  16024  (15.6  KiB)
       RX errors 0  dropped 0  overruns  0  frame  0
           TX packets 186   bytes  18291  (17.8  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
……
virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu  1500
       inet 192.168.122.1   netmask 255.255.255.0   broadcast 192.168.122.255
……

图2-15 选择“激活连接”选项

图2-16 激活(Activate)连接或使连接失效(Deactivate)

2.1.6 使用nmcli命令配置网络

NetworkManager是管理和监控网络设置的守护进程,设备即网络接口,连接是对网络接口的配置。一个网络接口可以有多个连接配置,但同时只有一个连接配置生效。

1. 常用命令

nmcli  connection  show:显示所有连接。
nmcli  connection  show --active:显示所有活动的连接状态。
nmcli  connection  show "ens33":显示网络连接配置。
nmcli  device status:显示设备状态。
nmcli  device show ens33 :显示网络接口属性。
nmcli  connection  add  help:查看帮助。
nmcli  connection  reload:重新加载配置。
nmcli  connection  down test2 :禁用 test2 的配置,注意一个网卡可以有多个配置。
nmcli  connection  up test2 :启用 test2 的配置。
nmcli  device disconnect  ens33 :禁用 ens33 网卡、物理网卡。
nmcli  device connect ens33 :启用 ens33 网卡。

2. 新连接配置

① 创建新连接配置default,IP地址通过DHCP自动获取。

[root@RHEL7-1 ~]# nmcli connection show
NAME    UUID                                  TYPE            DEVICE
ens33   9d5c53ac-93b5-41bb-af37-4908cce6dc31  802-3-ethernet  ens33
virbr0  f30a1db5-d30b-47e6-a8b1-b57c614385aa  bridge          virbr0
[root@RHEL7-1 ~]# nmcli connection add con-name default type Ethernet ifname ens33
Connection 'default' (ffe127b6-ece7-40ed-b649-7082e86c0775) successfully added.

② 删除连接。

[root@RHEL7-1 ~]# nmcli connection delete default
Connection 'default' (ffe127b6-ece7-40ed-b649-7082e86c0775) successfully deleted.

③ 创建新的连接配置test2,指定静态IP地址,不自动连接。

[root@RHEL7-1 ~]# nmcli connection add con-name test2 ipv4.method manual ifname ens
33 autoconnect no type Ethernet ipv4.addresses 192.168.10.100/24 gw4 192.168.10.1
Connection 'test2' (7b0ae802-1bb7-41a3-92ad-5a1587eb367f) successfully added.

参数说明如下。

● con-name:指定连接名称,没有特殊要求。

● ipv4.method:指定获取IP地址的方式。

● ifname:指定网卡设备名,也就是本次配置生效的网卡。

● autoconnect:指定是否自动启动。

● ipv4.addresses:指定IPv4地址。

● gw4:指定网关。

3. 查看/etc/sysconfig/network-scripts/目录

[root@RHEL7-1 ~]# ls /etc/sysconfig/network-scripts/ifcfg -*
/etc/sysconfig/network-scripts/ifcfg-ens33  /etc/sysconfig/network-scripts/ifcfg-test2
/etc/sysconfig/network-scripts/ifcfg-lo

多出一个文件/etc/sysconfig/network-scripts/ifcfg-test2,说明添加确实生效了。

4. 启用test2连接配置

[root@RHEL7-1 ~]# nmcli connection up test2
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManag
er/ ActiveConnection/6)
[root@RHEL7-1 ~]# nmcli  connection show
NAME    UUID                                  TYPE            DEVICE
test2   7b0ae802-1bb7-41a3-92ad-5a1587eb367f  802-3-ethernet  ens33
virbr0  f30a1db5-d30b-47e6-a8b1-b57c614385aa  bridge          virbr0
ens33   9d5c53ac-93b5-41bb-af37-4908cce6dc31  802-3-ethernet  --

5. 查看是否生效

[root@RHEL7-1 ~]#  nmcli  device show ens33
GENERAL.DEVICE:                    ens33
GENERAL.TYPE:                      ethernet
GENERAL.HWADDR:                      00:0C:29:66:42:8D
GENERAL.MTU:                       1500
GENERAL.STATE:                    100  (connected)
GENERAL.CONNECTION:                 test2
GENERAL.CON-PATH:                  /org/freedesktop/NetworkManager/ActiveConnection/6
WIRED -PROPERTIES.CARRIER:           on
IP4.ADDRESS[1]:                   192.168.10.100/24
IP4.GATEWAY:                      192.168.10.1
IP6.ADDRESS[1]:                   fe80::ebcc:9b43:6996:c47e/64
IP6.GATEWAY:                      --

基本的IP地址配置成功。

6. 修改连接设置

① 修改test2为自动启动。

[root@RHEL7-1 ~]# nmcli connection modify test2 connection.autoconnect yes

② 修改DNS为192.168.10.1。

[root@RHEL7-1 ~]# nmcli connection modify test2 ipv4.dns 192.168.10.1

③ 添加DNS 114.114.114.114。

[root@RHEL7-1 ~]# nmcli connection modify test2 +ipv4.dns 114.114.114.114

④ 查看是否成功。

[root@RHEL7-1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-test2
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=192.168.10.100
PREFIX=24
GATEWAY=192.168.10.1
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=test2
UUID=7b0ae802-1bb7-41a3-92ad-5a1587eb367f
DEVICE=ens33
ONBOOT=yes
DNS1=192.168.10.1
DNS2=114.114.114.114

可以看到均已生效。

⑤ 删除DNS。

[root@RHEL7-1 ~]# nmcli connection modify test2 -ipv4.dns 114.114.114.114

⑥ 修改IP地址和默认网关。

[root@RHEL7-1 ~]# nmcli connection modify test2 ipv4.addresses 192.168.10.200/24
gw4 192.168.10.254

⑦ 添加多个IP地址。

[root@RHEL7-1 ~]#  nmcli connection modify test2 +ipv4.addresses 192.168.10.250/24
[root@RHEL7-1 ~]#  nmcli  connection  show  "test2"

nmcli 命令和/etc/sysconfig/network-scripts/ifcfg-*文件的对应关系如表2-1所示。

表2-1 对应关系