CentOS 8系统做了不少更新,例如 nftables代替iptables、dnf代替yum成为默认包管理工具。这不,许多人发现CentOS 7熟悉的 ntpdate
命令没有了,也不能用yum安装上,同步时间顿时成了一个难题。
本文介绍CentOS 8使用chrony同步时间。
chrony介绍
Chrony是一个开源软件,能用来于时钟服务器(NTP)同步,从而保持系统时间精确。chrony由两部分组成:后台运行的
chronyd
,前端使用的chronyc
。chronyd
用于调整内核中系统时钟和时钟服务器同步,它确定计算机增减时间的比率,并对此进行补偿;chronyc
提供查询和配置接口,可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。chrony同步时间
首先安装crhony:
dnf install -y chrony
# 也可以用yum安装
yum install -y chrony
chrony配置文件是 /etc/chrony.conf
,其内容大体如下:
一般来说,配置文件无需改动就能正常使用。当然为了同步速度快,可以使用国内的ntp服务器,例如将第一行改成: pool ntp.ntsc.ac.cn iburst
(公共ntp服务器请参考:公共 NTP 服务器地址大全)。
接下来可以手动同步时间:
chronyd -q 'server ntp.ntsc.ac.cn iburst' # 输出如下 2020-03-13T09:44:30Z chronyd version 3.5 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +SECHASH +IPV6 +DEBUG) 2020-03-13T09:44:30Z Initial frequency -25.473 ppm 2020-03-13T09:44:34Z System clock wrong by -0.000340 seconds (step) 2020-03-13T09:44:34Z chronyd exiting
更好的方式是让chronyd后台运行,自动同步时间:
systemctl enable chronyd systemctl start chronyd
注意:chronyd服务启动后,不能再用chronyd方式手动同步时间,会报“Fatal error : Another chronyd may already be running”的错误。
chronyc tracking
命令可以查看同步状态(需要chronyd服务在运行):
Reference ID : 771CE546 (119.28.229.70) Stratum : 3 Ref time (UTC) : Fri Mar 13 09:49:25 2020 System time : 0.000000666 seconds slow of NTP time Last offset : +0.000767246 seconds RMS offset : 0.000767246 seconds Frequency : 25.561 ppm slow Residual freq : -117.006 ppm Skew : 6.375 ppm Root delay : 0.014839342 seconds Root dispersion : 0.026745666 seconds Update interval : 1.2 seconds Leap status : Normal
chronyc sources
命令可以查看同步的时间服务器(需要chronyd服务在运行):
210 Number of sources = 4 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^- time.cloudflare.com 3 6 17 87 -4121us[ -750us] +/- 44ms ^* 119.28.229.70 2 6 37 23 +557us[+3930us] +/- 21ms ^- undefined.hostname.local> 2 6 37 23 -2976us[ +398us] +/- 80ms ^- 203.95.213.129 2 6 17 87 -22ms[ -18ms] +/- 162ms
其他
1. 如果还是希望使用 ntpdate
,请参考这篇文章安装:CentOS8.0通过yum安装ntp同步时间
参考
1. How to Sync Time in Linux Server using Chrony
3. chrony概念详解
[root@iostreamx ~]# chronyc tracking
Reference ID : 00000000 ()
Stratum : 0
Ref time (UTC) : Thu Jan 01 00:00:00 1970
System time : 0.000000000 seconds slow of NTP time
Last offset : +0.000000000 seconds
RMS offset : 0.000000000 seconds
Frequency : 18.769 ppm slow
Residual freq : +0.000 ppm
Skew : 0.000 ppm
Root delay : 1.000000000 seconds
Root dispersion : 1.000000000 seconds
Update interval : 0.0 seconds
Leap status : Not synchronised
CentOS 7 国外的服务器
[root@iostreamx ~]# chronyd -q ‘server pool.ntp.org iburst’
2020-03-27T02:28:39Z chronyd version 3.4 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +SECHASH +IPV6 +DEBUG)
2020-03-27T02:28:39Z Initial frequency -18.769 ppm
2020-03-27T02:28:50Z No suitable source for synchronisation
2020-03-27T02:28:50Z chronyd exiting
他们客服也解决不了
[root@iostreamx ~]# chronyc tracking
Reference ID : 00000000 ()
Stratum : 0
Ref time (UTC) : Thu Jan 01 00:00:00 1970
System time : 0.000000000 seconds slow of NTP time
Last offset : +0.000000000 seconds
RMS offset : 0.000000000 seconds
Frequency : 18.769 ppm slow
Residual freq : +0.000 ppm
Skew : 0.000 ppm
Root delay : 1.000000000 seconds
Root dispersion : 1.000000000 seconds
Update interval : 0.0 seconds
Leap status : Not synchronised
[root@iostreamx ~]# chronyc sources
210 Number of sources = 4
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? 81.128.218.110 0 7 0 – +0ns[ +0ns] +/- 0ns
^? de-user.deepinid.deepin.> 0 7 0 – +0ns[ +0ns] +/- 0ns
^? horp-bsd01.horp.io 0 7 0 – +0ns[ +0ns] +/- 0ns
^? darwin.kenyonralph.com 0 7 0 – +0ns[ +0ns] +/- 0ns
换个同步地址?
换了好多都没用,其他服务器都行,就这个不行。
其他服务器都可以同步时间
感觉是你的服务器屏蔽了udp,网上找找tcp同步时间