# Chrony 时间同步服务
# 一、时间同步基本概念
时间同步就是将本地时间与互联网时间进行校对,为系统提供一个统一时间的过程。由于本地时间的计时速率、运行环境不一致性。所有本地时钟纵使在某一刻被校准了 ,一段时间后,这些本地时钟也会出现不一致。为了本地时钟再次达到相同的时间值,所以需要进行时间同步的操作。
# 二、Chrony 时间服务
# 2.1 Chrony 介绍
chrony 是基于 ntp 协议的实现时间同步服务,它既可以当做服务端,也可以充当客户端;
- 1、chrony 是 NTP 的替代品,能更精确的时间和更快的速度同步时钟;
- 2、chrony 占用系统资源少,只有被唤起时才占用少部分 CPU,chrony 兼容 ntpdate;
- 3、chrony 允许本地网络其他主机像本地进行时间同步;
# 2.2 Chrony 安装
[root@chrony ~]# yum install chrony -y |
- 主配置文件:/etc/chrony.conf
- 客户端程序:/usr/bin/chronyc
- 服务端程序:/usr/sbin/chronyd
# 2.3 Chrony 服务端
[root@chrony ~]# cat /etc/chrony.conf | |
#使用同步的远程时钟源,理论上可以同步无限个 | |
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 | |
#如果系统时钟的偏移量大于 1 秒,则允许系统时钟在前三次更新中步进 | |
makestep 1.0 3 | |
#启用实时时钟(RTC)的内核同步 | |
rtcsync | |
#通过使用 hwtimestamp 指令启用硬件时间戳 | |
#hwtimestamp * | |
#增加调整所需的可选择源的最小数量 | |
#minsources 2 | |
# 允许指定网络的主机同步时间,不指定就是允许所有,默认不开启。 | |
allow 192.168.0.0/16 | |
# 默认情况下本地服务器无法同步互联网时间时,可能会出现不精确,所以会拒绝提供授时服务; | |
# 开启此选项,则表示允许接受不精确时间,继续为客户端提供授时服务; | |
local stratum 10 | |
#指定包含 NTP 身份验证密钥的文件 | |
#keyfile /etc/chrony.keys | |
#指定日志文件 | |
logdir /var/log/chrony | |
#选择日志文件要记录的信息 | |
log measurements statistics tracking |
1.Chrony 服务端配置,修改 /etc/chrony.conf 文件三处,设定外部时间服务器、允许内网同步此服务端、设置断网继续同步
[root@Harbor ~]# cat /etc/chrony.conf | |
# Use public servers from the pool.ntp.org project. | |
# Please consider joining the pool (https://www.pool.ntp.org/join.html). | |
server ntp.aliyun.com iburst | |
# Allow NTP client access from local network. | |
allow 192.168.1.0/24 | |
# Serve time even if not synchronized to a time source. | |
local stratum 10 |
2. 重启 Chrony 服务
[root@chrony ~]# systemctl restart chronyd |
# 2.4 Chrony 客户端
1. 客户端使用 ntpdate 或 chronyc 命令的方式进行手动同步
# ntpdate | |
[root@chrony ~]# yum install ntpdate -y | |
[root@chrony ~]# ntpdate 192.168.1.68 | |
# chronyc | |
[root@chrony ~]# chronyc -a makestep | |
200 OK |
2. 客户端使用 chrony 守护进程方式进行时间自动化同步
[root@chrony ~]# yum install chrony -y | |
[root@chrony ~]# vim /etc/chrony.conf | |
# 指向至服务端 | |
server 192.168.1.68 iburst | |
[root@chrony ~]# systemctl restart chronyd |
3. 查看时间同步是否正常
[root@chrony ~]# chronyc sources | |
210 Number of sources = 1 | |
MS Name/IP address Stratum Poll Reach LastRx Last sample | |
=============================================================================== | |
^* 192.168.1.68 3 6 17 1 +1652ns[ +17us] +/- 32ms |