CentOS7环境下搭建基于chrony的NTP服务器

2019-10-15 23:00:04 浏览数 (1)

1、NTP网络时间协议:它是通过网络在计算机系统之间进行时钟同步的网络协议。换言之,它可以让那些通过 NTP 或者 Chrony 客户端连接到 NTP 服务器的系统保持时间上的一致(它能保持一个精确的时间)。

NTP 在公共互联网上通常能够保持时间延迟在几十毫秒以内的精度,并在理想条件下,它能在局域网下达到低于一毫秒的延迟精度。它使用用户数据报协议(UDP)在端口 123 上发送和接受时间戳。它是个 C/S 架构的应用程序

2、chrony是一个开源的自由软件,像CentOS 7或基于RHEL 7操作系统,已经是默认服务,默认配置文件/etc/chrony.conf 它能保持系统时间与时间服务器(NTP)同步,让时间始终保持同步。相对于NTP时间同步软件,占据很大优势,其用法也很简单。

3、Chrony有两个核心组件,分别是:

chronyd:是守护进程,主要用于调整内核中运行的系统时间和时间服务器同步。它确定计算机增减时间的比率,并对此进行调整补偿。

chronyc:提供一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。


下面CentOS7环境下搭建基于chrony的NTP服务器

CentOS7 10.20.10.93 chrony服务器

CentOS7 10.20.10.158 chrony客户端

1、yum安装chrony

2、vi /etc/chrony.conf

注释掉默认的ntp.org时钟源,添加一个NTP服务器时钟源,例如添加ntp.aliyun.com

然后设置NTP客户端的允许IP地址范围,allow 10.20.0.0/16

关于配置文件的解释如下

cat /etc/chrony.conf

# 使用pool.ntp.org项目中的公共服务器。

# Please consider joining the pool (http://www.pool.ntp.org/join.html).

server 0.centos.pool.ntp.org iburst

server 1.centos.pool.ntp.org iburst

server 2.centos.pool.ntp.org iburst

server 3.centos.pool.ntp.org iburst

# 根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中,在系统重启后为系统做出最佳时间补偿调整。

driftfile /var/lib/chrony/drift

# chronyd根据需求减慢或加速时间调整,

# 在某些情况下系统时钟可能漂移过快,导致时间调整用时过长。

# 该指令强制chronyd调整时期,大于某个阀值时步进调整系统时钟。

# 只有在因chronyd启动时间超过指定的限制时(可使用负值来禁用限制)没有更多时钟更新时才生效。

makestep 1.0 3

# 将启用一个内核模式,在该模式中,系统时间每11分钟会拷贝到实时时钟(RTC)。

rtcsync

# Enable hardware timestamping on all interfaces that support it.

# 通过使用hwtimestamp指令启用硬件时间戳

#hwtimestamp eth0

#hwtimestamp eth1

#hwtimestamp *

# Increase the minimum number of selectable sources required to adjust

# the system clock.

#minsources 2

# 指定一台主机、子网,或者网络以允许或拒绝NTP连接到扮演时钟服务器的机器

#allow 192.168.0.0/16

#deny 192.168/16

# Serve time even if not synchronized to a time source.

local stratum 10

# 指定包含NTP验证密钥的文件。

#keyfile /etc/chrony.keys

# 指定日志文件的目录。

logdir /var/log/chrony

# Select which information is logged.

#log measurements statistics tracking

3、启动chronyd服务并加入开机自启动

systemctl start chronyd.service

systemctl enable chronyd.service

systemctl status chronyd.service

4、修改系统时间进行测试

运行 chronyc sources 命令去显示当前时间源的信息 -v显示详细信息

从上图可以看到与时间源相差-26327s

这时手动重启服务进行校准systemctl start chronyd.service

5、Chrony客户端的配置

rpm -aq | grep chrony,检查是否安装过chrony

若没有,使用yum install -y chrony进行安装

vi /etc/chrony.conf

然后启动并加入开机自启动

systemctl start chronyd.service

systemctl enable chronyd.service

systemctl status chronyd.service

1)去检查 chrony 的追踪状态chronyc tracking

2)运行 chronyc sources命令去显示当前时间源的信息

3)chronyc sourcestats -v命令显示有关 chronyd 当前正在检查的每个源的漂移率和偏移估计过程的信息

4)当 chronyd 配置为 NTP 客户端,能通过 chronyc ntpdata 命令向每一个 NTP 源发送/接收时间戳模式和交错模式的报告

5)确认你的 NTP 源的状态,是否在线,只需要运行chronyc activity

6、chronyc也可以进入交互模式

7、当然依然可以用ntpdate命令进行同步

本文参考

https://www.linuxprobe.com/centos7-chrony-time.html

https://linux.cn/article-10250-1.html

https://linux.cn/article-10820-1.html

0 人点赞