NTP时间同步之chrony服务安装配置

1. Chrony介绍

Chrony是一个开源的自由软件,它能帮助你保持系统时钟与时钟服务器(NTP)同步,因此让你的时间保持精确。它由两个程序组成,分别是chronyd和chronyc。

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

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

RedHat Linux7及Centos7使用chrony做为时间同步,目前也运行使用NTP。两个服务不能同是启用。

2. 安装环境

Linux系统版本:Centos 7.4最小化安装

Linux内核版本:3.10.0-693.el7.x86_64

使用两台设备做测试,一台做为服务端,另一台做为客户端。

3. 服务端配置

安装chrony之前,如果安装有NTP,需要卸载或使用mask命令关掉NTP:

systemctl mask ntpd

3.1 安装chrony

最小化安装的操作系统默认没有安装chrony,其他安装方式默认会安装有。如果没有安装chrony则可以使用YUM方式安装,前提是服务器能上外网或者配置本地YUM源。

yum install chrony

3.2 启动chrony

systemctl start chronyd
systemctl enable chronyd

3.3 查看

systemctl status chronyd
netstat -tulnp | grep chrony

可以看到,默认情况下只监控了127.0.0.1这些一环回接口,这样没法给客户端提供服务,所以接下来我们需要修改配置文件。原因是chrony默认不允许任何客户端连接,需要修改配置文件中的allow选项。

3.4 配置chrony

chrony的配置文件是 /etc/chrony.conf 。

在配置chrony过程中,我们再讲一下相关参数。

以下是整个配置文件的内容:

如果想要对外提供时间同步功能,服务器本身需要与其他时间同步服务器进行时间同步,确保服务器自身的时间是正确的,默认跟红帽的4台时间服务器进行同步:

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

而服务器只做为内网使用,又无法联网怎么办,将上面4行用"#"号注释,把自己写上去。

设置自己与自己同步:

将:# local stratum 10

改为:local stratum 10

就是去掉行首的"#"号

还可以设置允许哪些NTP客户端来进行时间同步,默认是禁止所有客户端连接,必须设置:

# allow 192.168.0.0/16

allow 0.0.0.0/0

allow FEC0::0/121

最终配置文件内容:

egrep -v "^#|^#34; /etc/chrony.conf

主要修改两个地方:

local stratum 10
allow 0.0.0.0/0
allow FEC0::0/121

3.5 重启服务

systemctl restart chronyd

重启服务后,服务器不是立即与自己同步,需要等几分钟才能同步,服务器没有与其他时间服务器同步的话,是不能给客户端提供服务的。

3.6 查看端口

netstat -tulnp | grep chronyd

端口监听正常。

3.7 配置防火墙

firewall-cmd --permanent --add-service=ntp
firewall-cmd --reload

4. 配置客户端

客户端也要安装chrony。

安装chrony之前,如果安装有NTP,需要卸载或使用mask命令关掉NTP:

systemctl mask ntpd

4.1 安装chrony

最小化安装的操作系统默认没有安装chrony,其他安装方式默认会安装有。如果没有安装chrony则可以使用YUM方式安装,前提是服务器能上外网或者配置本地YUM源。

yum install chrony

4.2 启动chrony

systemctl start chronyd
systemctl enable chronyd

4.3 查看

systemctl status chronyd
netstat -tulnp | grep chrony

4.4 配置

vi /etc/chrony.conf

#增加一行

server FEC0::3A iburst

#其他4行server注意掉

egrep -v "^#|^#34; /etc/chrony.conf

4.5 同步时间

在同步前我们先查看一下当前时间:

timedatectl

现在还没有与时间服务器进行同步。

重启服务:

systemctl restart chronyd

开启时间同步:

timedatectl set-ntp yes

再次查看时间:

#中间可能需要等几分钟。

timedatectl

NTP synchronized为yes则

4.6 查看与哪些服务器同步

chronyc sources -v

这个状态则表示与时间服务器连接正常。

查看时间同步源状态:

chronyc sourcestats -v

校准时间服务器:

chronyc tracking
原文链接:,转发请注明来源!