第十一章 时间同步服务

2019-07-04 14:30:35 浏览数 (1)

第十一章 时间同步服务

11.1 NTP简介

NTP是网络时间协议(Network Time Protocol)的简称,功能是同步各主机的时间。因为在服务集群中,很多服务要求所有主机必须保持时间一致,所以就需要一台时间服务器,下面所有主机都遵守这台服务器的时间配置,并定期到这台服务器上做时间调整。

其实在windows中,我们也是可以设置连接时间服务器的,如下图:

这种时间服务器就可以使用NTP服务实现。

NTP服务器的服务端口是:UDP 123。

11.2 NTP服务部署

实验环境:NTP服务器 ip 192.168.10.1,关闭防火墙

NTP客户端 ip 192.168.10.10,关闭防火墙

服务器配置:

yum -y install ntp ---安装ntp软件包

vi /etc/ntp.conf ---编辑ntp配置文件

其中:resctrict 行,定义针对客户端的访问权限,一般按默认设置。

server 行,设定本服务器的上层服务器,即本服务器通过上层服务器来确定自身时间。文件中默认指向公网的时间服务器。若本机已连网且ip、gw、dns等配置正确,则可使用默认的centos的NTP服务器作为上层,但如果未连网,则只能把本机作为顶层时间服务器。

写入:server 127.127.1.0 prefer ---指定自己为优先服务器

注:NTP指定自己时ip必须写127.127.0.1,prefer表示最高优先级,即本机为根服务器,也就是顶层服务器。

systemctl restart ntpd ---启动服务

systemctl enable ntpd

ntpstat ---查看ntp服务状态

客户端配置:

客户端连接服务器有两种方式,一种是人为手动更新时间,另一种是自动联系服务器做时间更新,下面来分别介绍下:

方式一:手动更新

ntpdate 192.168.10.1 ---联系服务器做时间同步

图中可见共调整的多少秒。

方式二:自动更新

yum -y install ntp ---安装ntp软件包

vi /etc/ntp.conf ---写入

server 192.168.10.1 ---指定上层服务器

systemctl restart ntpd ---启动服务

客户端会在服务启动后的15分钟联系服务器更新同步一次时间。 注:启动ntp服务后,客户端不可再使用手动方式,即ntpdate命令失效。

11.3 配置参数介绍

在配置文件/etc/ntp.conf中,有很多的默认配置项,其实在生产环境中,我们很少对这些做改动,但是也需要大体了解他们的功能。下面就来稍作介绍:

restrict行,用来管理ntp权限,常见参数说明:

default:所有IP地址

ignore :关闭所有的 NTP 联机服务

nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时

notrust:客户端除非通过认证,否则该客户端来源将被视为不信任子网

noquery:不提供客户端的时间查询,即用户端不能使用ntpq,ntpdc等命令来查询ntp服务器的连接信息。但仍可调整时间。PS:客户端需要安装ntp包后,才可以使用ntpq 命令,如:ntpq –p

notrap:不提供trap远端登陆:拒绝为匹配的主机提供模式 6 控制消息陷阱服务。陷阱服务是 ntpdq 控制消息协议的子系统,用于远程事件日志记录程序。

nopeer:用于阻止主机尝试与服务器对等,并允许欺诈性服务器控制时钟

kod: 访问违规时发送 KoD 包。

restrict -6 :表示IPV6地址的权限设置

关于server行的配置,允许在上层服务器ip后设置三种配置:

prefer:优先级设定,表示优先使用该服务器做时间同步,可视为顶层服务器

iburst:作用是如果在一个标准的轮询间隔内没有应答,客户端会发送一定数量的包(八个包而不是通常的一个)给 NTP 服务器。如果在短时间内呼叫 NTP 服务器几次,没有出现可辨识的应答,那么本地时间将不会变化。

burst:该选项一般不用。这个选项不仅在轮询间隔发送大量包(明显又是八个),而且也会在服务器能正常使用时这样做。如果你在高层服务器持续发送包,甚至是它们在正常应答时,你可能会因为使用 “burst” 选项而被拉黑。

另外,客户端输入ntpq -p 命令后,会查看到连接服务器的信息:

参数说明:

remote - 本机和上层ntp的ip或主机名,“ ”表示优先,“*”表示次优先

refid - 参考上一层ntp主机地址

st - stratum阶层

when - 多少秒前曾经同步过时间

poll - 下次更新在多少秒后

reach - 已经向上层ntp服务器要求更新的次数

delay - 网络延迟

offset - 时间补偿

jitter - 系统时间与bios时间差

tips:本节内容借鉴了很多网络文章。但并非重点,能够了解即可。

11.4 其他相关参数

11.4.1 硬件时间

我们知道,计算机主板上有一个bios程序,它里面会记录一个时间,称为硬件时间,我们可以使用hwclock 命令查看到硬件时间。

而Linux系统中的时间为系统时间,二者可能会是不相同的,所以我们可以使用如下命令做二者的同步:

hwclock –w ---以系统时间为准同步到硬件时间

hwclock -s --- 以硬件时间为准,同步到系统时间

若要想让客户机通过ntp同步到时间后,一并同步给硬件时间,可以编辑/etc/sysconfig/ntpd,该其中的SYNC_HWCLOCK=yes即可:

11.4.2 时区设置

我们在安装centos系统时,我们已经指定过时区了,但后期也是可以更改的。

在Linux中可识别的、支持的所有时区,都以文件的形式存在,是存放在/usr/share/zoneinfo/下:

而系统中记录本机所在时区的配置文件是:/etc/localtime,其中存放的其实是某个时区文件中的内容,所以我们可以把某个时区文件的内容导入到/etc/localtime中,就等于更改了时区了,如下:

cat /usr/share/zoneinfo/Asia/Hong_Kong >/etc/localtime ---更改时区

11.5 chrony简介

在RHCE7中,开始改用新的时间服务chrony,它与NTP功能相同,可以认为是NTP的升级,它也借助于NTP服务工作。准确讲,chrony等同于NTP的功能,可认为是NTP的变身。其配置文件也与NTP类似,但配置更简洁。下面来看一下具体配置:

服务器配置

yum -y install chrony

vi /etc/chrony.conf ---编辑配置文件,写入:

allow192.168.10.0/24 ---指定允许来找本机做时间同步的客户端地址

local stratum10 ---如果无上层服务器则采用自己的时间来同步客户端

PS:这两行其实文件中已有,只是被注释了,也可以解注释后改之

systemctl restart chronyd

客户端配置:

yum -y install chrony

vi /etc/chrony.conf

在所有的server之前,写入:server192.168.10.1 iburst

systemctl restart chronyd ---重启后即可做时间同步了

注:同步可能会有延时,可以多重启几次试试。

chronyc sources –v ---查看服务器状态,相当于NTP的ntpq –p

0 人点赞