一、chrony 介绍

Chrony是NTP(Network Time Protocol,网络时间协议,服务器时间同步的一种协议)的另一种实现,与ntpd不同,它可以更快且更准确地同步系统时钟,最大程度的减少时间和频率误差。

Chrony有两个核心组件,分别是:chronyd 和 chronyc

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

  • chronyc:提供一个用户界面,用于监控chronyd性能并进行多样化配置。它可以监控本机以及其他的计算机上运行的chronyd进程。



二、chrony 优势

在linux中,有些服务必须依靠准确的时间,才能够保证在运行的时候不出差错,例如DNS,LVS,HTTPS等,都需要后台的服务器之间保持时间的同步。而Centos系统中自带有安装对应的同步时间的服务,Centos7中默认安装的是chrony服务来同步时间,而Centos6则默认安装的ntpd服务来同步时间。相较与ntpd服务,chrony服务有如下几点优势:

  1. 更快的同步,只需要数分钟而非数小时的时间,从而最大程度减少了时间和频率误差,对于并非全天 24 小时运行的虚拟机而言非常有用

  2. 能够更好地响应时钟频率的快速变化,对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节能技术而言非常有用

  3. 在初始同步后,它不会停止时钟,以防对需要系统时间保持单调的应用程序造成影响

  4. 在应对临时非对称延迟时(例如,在大规模下载造成链接饱和时)提供了更好的稳定性

  5. 无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟

在配置的时候,首先需要配置chrony的服务器端,然后再去配置客户端与服务器端进行同步。如果是基于外网的时钟服务器,那可以不用配置chrony的服务器端。



三、chrony 安装与设置

1、安装chrony

1.1、检查系统是否已经默认安装chrony
rpm -qa |grep chrony


可以看到我的CentOS7中并没有默认安装chrony,接下来我们就来安装chrony

1.2、安装chrony服务
yum install –y chrony 




1.3、启动并加入开机自启
// 启动chrony服务
systemctl start chronyd

// 设置开机自启
systemctl enable chronyd

// 查看chrony服务状态
systemctl status chronyd



1.4、关闭 firewalld防火墙

因为NTP服务使用123/UDP端口协议,如果不关闭firewalld防火墙,NTP服务将会被拦截

//1、停止firewalld服务
systemctl stop firewalld
 
//2、禁止firewalld开机启动
systemctl disable firewalld

当然也可以不关闭 firewalld防火墙,这就需要我们在 firewalld防火墙内放行NTP服务

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


2、时区设置

2.1、检查时区
timedatectl


可以看到这里我的时区是Asia/Shanghai

2.2、修改时区

如果时区是Asia/Shanghai,请跳过该步骤,这里修改时区仅针对时区不是Asia/Shanghai

2.2.1、查看在亚洲S开头的上海可用时区
timedatectl list-timezones |  grep  -E "Asia/S.*"


可以看到这里上海的可用时区是Asia/Shanghai

2.2.2、设置当前系统为上海时区
timedatectl set-timezone "Asia/Shanghai"

2.2.3、手动同步系统时钟
chronyc -a makestep


3、配置chrony

3.1、修改 /etc/chrony.conf配置文件
vim /etc/chrony.conf



3.1.1、 配置阿里云的ntp服务

阿里云ntp服务器文档:https://help.aliyun.com/document_detail/92704.html

//注释掉默认的四个ntp服务器,因为该服务器同步时间略慢
#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

/**
 * 格式为:server 服务器ip地址 iburst 
 * 添加阿里云的ntp服务器,可以多写几个ntp服务器,防止第一个服务器宕机,备用的其他ntp服务器可以继续进行时间同步
 * ip地址为服务器ip地址,iburst代表的是快速同步时间 
 **/  
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server ntp3.aliyun.com iburst



3.2、重启chrony服务

注意:配置完/etc/chrony.conf后,需重启chrony服务,否则可能会不生效

//重启chrony服务
systemctl restart chronyd

// 查看chrony服务状态
systemctl status chronyd



3.3、手动同步系统时钟
// 手动同步系统时钟
chronyc -a makestep

// 查看时间同步源
chronyc sources -v



提示:如果想要修改系统时间,需要先关闭NTP时间同步服务,再去修改系统时间,最后再开启NTP时间同步服务,步骤如下:

//1、关闭NTP时间同步服务
timedatectl set-ntp flase

//2、修改系统时间
timedatectl set-time "2021-08-15 15:30:20"

//当然也可以修改其中一部分,如修改年月日 或者 时分秒
timedatectl set-time "2021-08-15"
or
timedatectl set-time "15:30:20"

//3、开启NTP时间同步服务
timedatectl set-ntp true



CentOS7配置与安装系列文章列表:

超详细的CentOS7.4下载与图文安装
Linux 下安装与设置Vim编辑器
CentOS7使用Chrony实现时间同步

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐