Chrony 是一个多功能的 NTP (Network Time Protocol) 实现,类 Unix 系统上 NTP 客户端和服务器的替代品。它可以通过 NTP 服务或者类似 GPS 时钟接收器的硬件级参考时钟来同步系统时钟,具有更好的时钟准确度,并且对于那些间歇性互联网连接的系统很有帮助。Chrony 是免费开源的,并且支持 GNU/Linux 和 BSD 衍生版(比如:FreeBSD、NetBSD)、macOS 和 Solaris 等。
Chrony 有两个核心组件:一个是 chronyd 守护进程,主要用于调整内核中运行的系统时间和时间服务器同步。它确定计算机增减时间的比率,并对此进行调整补偿。另一个是 chronyc,它提供一个用户界面,用于监控性能并进行多样化的配置。chronyc 可以在 chronyd 实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。
Chrony 和 NTPD 精度对比测试
我们可以从 Chrony 的官方网站上可以看到与 NTPD 各维度详细对比:
从其测试结果上看似乎是各维度性能都可以吊打 NTPD。因此 Chrony 对自身的整体评价还是比较高的。
Chrony 相较于 NTPD 服务的优势
更快的同步只需要数分钟而非数小时时间,从而最大程度的减少时间和频率误差,这对于并非全天运行的台式计算机或系统而言非常有用。
能够更好的响应时间频率的快速变化,这对于具备不稳定时钟的虚拟机或导致时钟频率反复变化的节能技术而言非常有用。
在初始同步后,它并不会停止时钟,以防对需要系统时间保持单调的程序造成影响。
在应对临时非对称延迟时,(例如:大规模下载造成连接饱和时)提供了更好的稳定性。
无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟。
安装 Chrony
$ yum -y install chrony # [On CentOS/RHEL]
$ apt install chrony # [On Debian/Ubuntu]
$ dnf -y install chrony # [On Fedora 22+]
操作记录
[root@anolis8 ~]# dnf -y install chrony
Repository epel is listed more than once in the configuration
AnolisOS-8 - AppStream 135 kB/s | 4.3 kB 00:00
AnolisOS-8 - AppStream 640 kB/s | 9.5 MB 00:15
AnolisOS-8 - BaseOS 189 kB/s | 4.8 kB 00:00
AnolisOS-8 - BaseOS 8.1 MB/s | 6.8 MB 00:00
epel 32 kB/s | 4.7 kB 00:00
epel 225 kB/s | 13 MB 00:58
AnolisOS-8 - PowerTools 126 kB/s | 4.3 kB 00:00
AnolisOS-8 - PowerTools 5.7 MB/s | 2.1 MB 00:00
Extra Packages for Enterprise Linux Modular 8 - x86_64 4.8 kB/s | 9.5 kB 00:01
依赖关系解决。
============================================================================================================================================================================
软件包 架构 版本 仓库 大小
============================================================================================================================================================================
安装:
chrony x86_64 4.1-1.0.1.an8 BaseOS 326 k
安装弱的依赖:
timedatex x86_64 0.5-3.0.1.an8 BaseOS 23 k
事务概要
============================================================================================================================================================================
安装 2 软件包
总下载:349 k
安装大小:689 k
下载软件包:
(1/2): timedatex-0.5-3.0.1.an8.x86_64.rpm 218 kB/s | 23 kB 00:00
(2/2): chrony-4.1-1.0.1.an8.x86_64.rpm 22 kB/s | 326 kB 00:15
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计 23 kB/s | 349 kB 00:15
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
安装 : timedatex-0.5-3.0.1.an8.x86_64 1/2
运行脚本: timedatex-0.5-3.0.1.an8.x86_64 1/2
运行脚本: chrony-4.1-1.0.1.an8.x86_64 2/2
安装 : chrony-4.1-1.0.1.an8.x86_64 2/2
运行脚本: chrony-4.1-1.0.1.an8.x86_64 2/2
验证 : chrony-4.1-1.0.1.an8.x86_64 1/2
验证 : timedatex-0.5-3.0.1.an8.x86_64 2/2
已安装:
chrony-4.1-1.0.1.an8.x86_64 timedatex-0.5-3.0.1.an8.x86_64
完毕!
安装完成后,可以使用以下命令来检查 chronyd 的状态:
$ systemctl status chronyd # [On SystemD]
$ /etc/init.d/chronyd status # [On Init]
设置开机引导时自动启用 Chrony 的守护程序
$ systemctl enable chronyd # [On SystemD]
$ chkconfig --add chronyd # [On Init]
配置 Chrony
Chrony 的默认配置文件为 /etc/chrony.conf,下面将介绍一些常用的配置项。
1、server hostname [option]
server 指令用于指定要同步的 NTP 服务器。
server 0.centos.pool.ntp.org iburst
其中的 0.centos.pool.ntp.org 是 NTP 服务器的地址,默认有四组官方的 NTP 服务器。你也可以修改为自定义的时间服务器,例如:ntp1.aliyun.com。
iburst 是参数, 一般用此参数即可。该参数的含义是在头四次 NTP 请求以 2s 或者更短的间隔,而不是以 minpoll x 指定的最小间隔,这样的设置可以让 chronyd 启动时快速进行一次同步。
其他的参数有 minpoll x 默认值是 6,代表 64s。maxpoll x 默认值是 9,代表 512s。
2、driftfile file
Chrony 会根据实际时间计算修正值,并将补偿参数记录在该指令指定的文件里,默认为 driftfile /var/lib/chrony/drift。
与 ntpd 或者 ntpdate 最大的区别就是,Chrony 的修正是连续的,通过减慢时钟或者加快时钟的方式连续的修正。而 ntpd 或者 ntpdate 搭配 Crontab 的校时工具是直接调整时间,会出现间断,并且相同时间可能会出现两次。因此,请放弃使用 ntpd、ntpdate 来校时。
3、makestep threshold limit
此指令使 Chrony 根据需要通过加速或减慢时钟来逐渐校正任何时间偏移。例如:makestep 1.0 3,就表示当头三次校时,如果时间相差 1.0s, 则跳跃式校时。
4、 rtcsync
启用内核时间与 RTC
时间同步(自动写回硬件)。
5、logdir
该参数用于指定 Chrony 日志文件的路径。
6、stratumweight
该参数用于设置当 chronyd 从可用源中选择同步源时,每个层应该添加多少距离到同步距离。默认情况下设置为 0,让 chronyd 在选择源时忽略源的层级。
基本上常用的参数就只有这几个了,通常默认的配置文件就可以直接使用了,下面我们来看一个修改完成后的配置文件内容。
# 这里只修改了 server 中的 NTP 服务器地址,如果网络环境良好可以使用默认配置
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsynclogdir /var/log/chrony
使用 Chrony 客户端程序进行管理
1、检查 Chrony 是否实际同步
为了检查 Chrony 是否实际同步,我们将使用它的命令行程序 chronyc 来验证。
[root@anolis ~]# chronyc tracking
Reference ID : 64643D58 (100.100.61.88)
Stratum : 2
Ref time (UTC) : Sun Oct 02 09:09:07 2022
System time : 0.000038057 seconds slow of NTP time
Last offset : -0.000029285 seconds
RMS offset : 0.000087312 seconds
Frequency : 34.983 ppm slow
Residual freq : -0.001 ppm
Skew : 0.024 ppm
Root delay : 0.000189145 seconds
Root dispersion : 0.010348989 seconds
Update interval : 260.9 seconds
Leap status : Normal
这里主要关注 Update interval 这个参数, 说明最后两次更新的时间间隔是 260.9s。以上结果中的其它参数的含义分别是:
引用 ID - 计算机当前同步的引用 ID 和名称。
Stratum - 连接参考时钟的计算机的跳数。
参考时间 - 这是参考源的最后一次测量的 UTC 时间。
系统时间 - 来自同步服务器的系统时钟延迟。
最后一次偏移 - 上次时钟更新的估计偏移量。
RMS 偏移 - 偏移值的长期平均值。
频率 - 如果 chronyd 没有纠正它,那么系统的时钟错误的速率。它以 ppm (百万分率)提供。
残余频率 - 残余频率表示参考源的测量值与当前使用的频率之间的差异。
偏斜 - 估计频率的误差界限。
根延迟 - 网络路径延迟到计算机正在同步的层计算机的总和。
跳跃状态 - 这是跳跃状态,可以具有以下值之一:正常、插入秒、删除秒或不同步。
2、显示所有 NTP 源服务器的信息
这里需要注意的是第二个参数,* 代表当前同步的源,- 代表通过组合算法计算后排除的源。
##加v表示显示详细信息
# chronyc sources -v
[root@anolis ~]# chronyc sources -v
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current best, '+' = combined, '-' = not combined,
| / 'x' = may be in error, '~' = too variable, '?' = unusable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 100.100.61.88 1 8 377 228 -419us[ -532us] +/- 11ms
^+ 203.107.6.88 2 10 377 285 -100us[ -213us] +/- 15ms
^+ 120.25.115.20 2 10 16 36m -3770us[-4410us] +/- 22ms
^? 10.143.33.49 0 10 0 - +0ns[ +0ns] +/- 0ns
^+ 100.100.3.1 2 10 377 458 -453us[ -565us] +/- 20ms
^+ 100.100.3.2 2 10 377 93 -442us[ -442us] +/- 15ms
^+ 100.100.3.3 2 10 377 32m -1185us[-1768us] +/- 15ms
^? 10.143.33.50 0 10 0 - +0ns[ +0ns] +/- 0ns
^? 10.143.33.51 0 10 0 - +0ns[ +0ns] +/- 0ns
^? 10.143.0.44 0 10 0 - +0ns[ +0ns] +/- 0ns
^? 10.143.0.45 0 10 0 - +0ns[ +0ns] +/- 0ns
^? 10.143.0.46 0 10 0 - +0ns[ +0ns] +/- 0ns
^+ 100.100.5.1 2 10 377 627 +501us[ +387us] +/- 14ms
^+ 100.100.5.2 2 10 377 278 -774us[ -887us] +/- 14ms
^+ 100.100.5.3 2 10 377 306 +1156us[+1043us] +/- 15ms
[root@anolis ~]# chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 100.100.61.88 1 8 377 201 -440us[ -395us] +/- 10ms
^+ 203.107.6.88 2 10 377 516 -129us[ -213us] +/- 15ms
^+ 120.25.115.20 2 10 16 40m -3695us[-4410us] +/- 22ms
^? 10.143.33.49 0 10 0 - +0ns[ +0ns] +/- 0ns
^+ 100.100.3.1 2 10 377 684 -473us[ -565us] +/- 20ms
^+ 100.100.3.2 2 10 377 319 -482us[ -442us] +/- 15ms
^+ 100.100.3.3 2 10 375 127 -274us[ -274us] +/- 15ms
^? 10.143.33.50 0 10 0 - +0ns[ +0ns] +/- 0ns
^? 10.143.33.51 0 10 0 - +0ns[ +0ns] +/- 0ns
^? 10.143.0.44 0 10 0 - +0ns[ +0ns] +/- 0ns
^? 10.143.0.45 0 10 0 - +0ns[ +0ns] +/- 0ns
^? 10.143.0.46 0 10 0 - +0ns[ +0ns] +/- 0ns
^+ 100.100.5.1 2 10 377 853 +491us[ +387us] +/- 14ms
^+ 100.100.5.2 2 10 377 504 -803us[ -887us] +/- 14ms
^+ 100.100.5.3 2 10 377 532 +1128us[+1043us] +/- 15ms
3、查看 NTP 服务器的在线和离线状态
[root@anolis ~]# chronyc activity
200 OK
15 sources online
0 sources offline
0 sources doing burst (return to online)
0 sources doing burst (return to offline)
5 sources with unknown address
4、查看 Chrony 服务的日志
[root@anolis ~]# journalctl -u chronyd
-- Logs begin at Mon 2022-07-04 13:18:57 CST, end at Sun 2022-10-02 11:20:09 CST. --
Jul 04 13:18:57 debug010000002015.local.alipay.net systemd[1]: Stopping NTP client/server...
Jul 04 13:18:57 debug010000002015.local.alipay.net systemd[1]: chronyd.service: Control process exited, code=exited status=226
Jul 04 13:18:57 debug010000002015.local.alipay.net systemd[1]: chronyd.service: Failed with result 'exit-code'.
Jul 04 13:18:57 debug010000002015.local.alipay.net systemd[1]: Stopped NTP client/server.
-- Reboot --
Sep 15 15:06:38 localhost.localdomain systemd[1]: Starting NTP client/server...
Sep 15 15:06:38 localhost.localdomain chronyd[657]: chronyd version 4.1 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +NTS +SECHASH +IPV6 +DEB>
Sep 15 15:06:38 localhost.localdomain chronyd[657]: Frequency -36.262 +/- 11.631 ppm read from /var/lib/chrony/drift
Sep 15 15:06:38 localhost.localdomain systemd[1]: Started NTP client/server.
Sep 15 15:06:57 iZ8vb5tlkzsbo23y70jje3Z chronyd[657]: Selected source 100.100.61.88 (ntp.cloud.aliyuncs.com)
Sep 15 15:06:57 iZ8vb5tlkzsbo23y70jje3Z chronyd[657]: System clock wrong by 1.256817 seconds
Sep 27 10:08:19 anolis systemd[1]: Stopping NTP client/server...
Sep 27 10:08:19 anolis chronyd[657]: chronyd exiting
Sep 27 10:08:19 anolis systemd[1]: chronyd.service: Succeeded.
Sep 27 10:08:19 anolis systemd[1]: Stopped NTP client/server.
5、查看帮助
# chronyc help
6、检查是否对特定主机可访问当前服务器
chronyc accheck ip地址
[root@anolis ~]# chronyc accheck 172.21.157.44
209 Access denied
7、手动添加一台新的 NTP 服务器
# chronyc add server XXXX
##添加一台复旦大学的时间同步服务器
[root@anolis ~]# chronyc add server ntp.fudan.edu.cn
200 OK
[root@anolis ~]# chronyc sources -v
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current best, '+' = combined, '-' = not combined,
| / 'x' = may be in error, '~' = too variable, '?' = unusable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 100.100.61.88 1 8 377 184 -482us[ -491us] +/- 10ms
^+ 203.107.6.88 2 10 377 759 -104us[ -213us] +/- 15ms
^+ 120.25.115.20 2 10 16 44m -3617us[-4410us] +/- 22ms
^? 10.143.33.49 0 10 0 - +0ns[ +0ns] +/- 0ns
^+ 100.100.3.1 2 10 377 931 -443us[ -565us] +/- 20ms
^+ 100.100.3.2 2 10 377 566 -463us[ -442us] +/- 15ms
^+ 100.100.3.3 2 10 375 374 -260us[ -274us] +/- 15ms
^? 10.143.33.50 0 10 0 - +0ns[ +0ns] +/- 0ns
^? 10.143.33.51 0 10 0 - +0ns[ +0ns] +/- 0ns
^? 10.143.0.44 0 10 0 - +0ns[ +0ns] +/- 0ns
^? 10.143.0.45 0 10 0 - +0ns[ +0ns] +/- 0ns
^? 10.143.0.46 0 10 0 - +0ns[ +0ns] +/- 0ns
^+ 100.100.5.1 2 10 377 74 -3196us[-3196us] +/- 18ms
^+ 100.100.5.2 2 10 377 751 -779us[ -887us] +/- 14ms
^+ 100.100.5.3 2 10 377 779 +1153us[+1043us] +/- 15ms
^? 10.108.68.100 0 6 0 - +0ns[ +0ns] +/- 0ns
##临时添加,重启服务会失效,若想永久生效可以写入配置文件中
手动移除 NTP 服务器或对等服务器
# chronyc delete
8、强制同步系统时间
[root@anolis ~]# chronyc -a makestep
200 OK
9、显示当前时间源的同步统计信息
[root@anolis ~]# chronyc sourcestats
Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev
==============================================================================
100.100.61.88 7 5 25m -0.089 0.073 -475us 14us
203.107.6.88 19 10 310m -0.035 0.126 +130us 746us
120.25.115.20 26 15 568m +0.009 0.143 +101us 1969us
10.143.33.49 0 0 0 +0.000 2000.000 +0ns 4000ms
100.100.3.1 51 24 14h +0.056 0.045 +1084us 1347us
100.100.3.2 15 8 241m -0.245 0.369 -1833us 1506us
100.100.3.3 49 23 18h +0.036 0.031 +148us 1245us
10.143.33.50 0 0 0 +0.000 2000.000 +0ns 4000ms
10.143.33.51 0 0 0 +0.000 2000.000 +0ns 4000ms
10.143.0.44 0 0 0 +0.000 2000.000 +0ns 4000ms
10.143.0.45 0 0 0 +0.000 2000.000 +0ns 4000ms
10.143.0.46 0 0 0 +0.000 2000.000 +0ns 4000ms
100.100.5.1 29 17 482m +0.007 0.074 +663us 944us
100.100.5.2 13 9 206m -0.192 0.244 -623us 747us
100.100.5.3 43 20 12h +0.036 0.054 +923us 1214us
10、报告已访问本服务器的客户端列表
[root@anolis ~]# chronyc clients
Hostname NTP Drop Int IntL Last Cmd Drop Int Last
===============================================================================
519 Client logging is not active in the daemon
11、设置时区
##查看当前系统时区:
[root@anolis ~]# timedatectl
Local time: Sun 2022-10-02 17:17:26 CST
Universal time: Sun 2022-10-02 09:17:26 UTC
RTC time: Sun 2022-10-02 09:17:25
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
##查看所有可用的时区:
[root@anolis ~]# timedatectl list-timezones
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Bamako
Africa/Bangui
Africa/Banjul
Africa/Bissau
Africa/Blantyre
Africa/Brazzaville
Africa/Bujumbura
Africa/Cairo
Africa/Casablanca
Africa/Ceuta
Africa/Conakry
Africa/Dakar
Africa/Dar_es_Salaam
Africa/Djibouti
Africa/Douala
......
##查看上海时区:
[root@anolis ~]# timedatectl list-timezones | grep "Asia/Shanghai"
Asia/Shanghai
##设置当前系统为Asia/Shanghai上海时区:
[root@anolis ~]# timedatectl set-timezone Asia/Shanghai
设置完时区后,在强制同步下系统时钟
[root@anolis ~]# chronyc -a makestep
200 OK
##修改日期时间:timedatectl set-time "YYYY-MM-DD HH:MM:SS"
[root@localhost ~]# timedatectl set-time "2022-10-03 10:30:00"
[root@localhost ~]# timedatectl set-time "YYYY-MM-DD HH:MM:SS"
[root@localhost ~]# timedatectl set-time "YYYY-MM-DD"
[root@localhost ~]# timedatectl set-time "HH:MM:SS"
##启用或者禁止 NTP 时间同步:
[root@localhost ~]# timedatectl set-ntp true/flase
##设置硬件时间
# 硬件时间默认为 UTC,下面两条命令效果等同$ timedatectl set-local-rtc 1
$ hwclock --systohc --localtime
Chrony 客户端程序的功能非常强大,远不止上面介绍这些。不但支持命令行模式,而且还支持交互模式。如果你想了解更多 Chrony 客户端程序的使用方法,可以使用 man chronyc 命令获取更多帮助。
使用 Chrony 作为 NTP 服务器
需要修改 /etc/chrony.conf 文件,并添加以下配置
# 对于安全要求比较高的,这里可以限制谁能访问本机提供的 NTP 服务。
allow 192.168.1.0/24
# 设置 chronyd 监听在哪个网络接口
bindcmdaddress 0.0.0.0
# 这个地方很重要,如果服务器本身也不能同步时间,那么就用本地时间替代,层级为
10local stratum 10
其次,重启 Chronyd 服务,以加载新的配置。
# systemctl restart chronyd
Chronyd 服务启动成功后,会监听以下两个端口。
端口 123/udp 为标准的 NTP 监听端口,如果要对外提供 NTP Server 功能,必须开启防火墙和监听地址为外部可访问地址。如需修改,你可以通过配置 port 参数来修改。
端口 323/udp 为默认的管理端口。如需修改,你可以通过配置 cmdport 参数来修改。
最后,修改防火墙设置,以放行对 123/udp 的请求,这里以 CentOS 7 的 Firewalld 为例。
$ firewall-cmd --zone=public --add-port=123/udp --permanent$ firewall-cmd --reload
延伸阅读
一些可用的公共 NTP 服务
公共 NTP
服务网上很多,但国内环境下最好用的应该还属阿里云的公网 NTP
服务。
一些时间相关的概念介绍
1、 GMT、UTC、CST、DST 时间
UTC 整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时 (UTC, Universal Time Coordinated)。
GMT 格林威治标准时间 (Greenwich Mean Time) 指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。( UTC 与 GMT 时间基本相同)
CST 中国标准时间 (China Standard Time)
GMT + 8 = UTC + 8 = CST
DST 夏令时 (Daylight Saving Time) 指在夏天太阳升起的比较早时,将时间拨快一小时,以提早日光的使用。(中国不使用)
2、硬件时间和系统时间
硬件时间:RTC (Real-Time Clock) 或 CMOS 时间,一般在主板上靠电池供电,服务器断电后也会继续运行。仅保存日期时间数值,无法保存时区和夏令时设置。
系统时间:一般在服务器启动时复制 RTC 时间,之后独立运行,保存了时间、时区和夏令时设置。
初装后的配置文件
[root@anolis8 ~]# cat /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
pool ntp.aliyun.com iburst
# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift
# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3
# Enable kernel synchronization of the real-time clock (RTC).
rtcsync
# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *
# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2
# Allow NTP client access from local network.
#allow 192.168.0.0/16
# Serve time even if not synchronized to a time source.
#local stratum 10
# Specify file containing keys for NTP authentication.
keyfile /etc/chrony.keys
# Get TAI-UTC offset and leap seconds from the system tz database.
leapsectz right/UTC
# Specify directory for log files.
logdir /var/log/chrony
# Select which information is logged.
#log measurements statistics tracking
阿里云ECS主机安装后的 配置文件
[root@anolis ~]# cat /etc/chrony.conf
# Use Alibaba NTP server
# Public NTP
# Alicloud NTP
server ntp.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp1.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp1.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp10.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp11.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp12.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp2.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp2.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp3.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp3.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp4.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp4.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp5.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp5.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp6.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp6.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp7.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp8.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp9.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
# Ignore stratum in source selection.
stratumweight 0.05
# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift
# Enable kernel RTC synchronization.
rtcsync
# In first three updates step the system clock instead of slew
# if the adjustment is larger than 10 seconds.
makestep 10 3
# Allow NTP client access from local network.
#allow 192.168/16
# Listen for commands only on localhost.
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
# Disable logging of client accesses.
noclientlog
# Send a message to syslog if a clock adjustment is larger than 0.5 seconds.
logchange 0.5
logdir /var/log/chrony
#log measurements statistics tracking