2.1 网络服务知识
Linux主机要与网络中的其他主机通信,首先要正确配置网络。网络配置通常包括主机名、IP地址、子网掩码、默认网关、DNS服务器等的设置。
2.1.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网络接口配置
可以单击桌面右上角的网络连接图标,打开网络配置界面,一步步完成网络信息查询和网络配置。具体过程如图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 对应关系