# Centos安装chrony同步时间
chrony
是一个时间同步工具,旨在替换掉传统的ntpd
服务。特别适合现在的动态设备(如虚拟机、容器和移动设备),具有更快的同步速度和更高的灵活性。下面是关于chrony
的原理和安装教程。
# chrony
的原理
- 客户端和服务器通信:
chronyd
作为客户端,向配置的ntp
服务器发送时间同步请求。 - 计算时间偏差:根据服务器的响应时间,计算本地系统时间和服务器时间的偏差。
- 逐步调整时间:通过算法逐步调整时间,避免时间跳变。
- 持续监控:定期与服务器通信,去报时间的持续同步。
# 安装chrony
sudo yum install chrony -y
# 配置chrony
chrony
的配置文件位于/etc/chrony.conf
,你可以根据需要修改它。以下是一个基本的配置示例:
# 使用公共 NTP 服务器
server ntp.aliyun.com iburst
server ntp.tuna.tsinghua.edu.cn iburst
server time.cloud.tencent.com iburst
# 允许本地网络同步(可选)
allow 192.168.1.0/24
# 启用本地硬件时钟作为备用
local stratum 10
# 记录时间偏差日志
driftfile /var/lib/chrony/drift
# 启用日志
logdir /var/log/chrony
server
:指定ntp
服务器地址。iburst
:在初始同步时发送多个请求,以加快时间的同步速度。allow
:允许特定网络段进行时间同步。local stratum 10
:将本地硬件时钟作为备用,并设置其层级为10。driftfile
:指定时间偏差日志文件。logdir
:指定日志目录。
# 启动chrony
# 启动 chronyd 服务
sudo systemctl start chronyd
# 设置 chronyd 服务开机自启
sudo systemctl enable chronyd
# 查看chronyd服务状态
sudo systemctl status chronyd
● chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
Active: active (running) since 一 2025-01-13 10:46:13 CST; 18min ago
Docs: man:chronyd(8)
man:chrony.conf(5)
Process: 28226 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
Process: 28221 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 28223 (chronyd)
Tasks: 1
Memory: 436.0K
CGroup: /system.slice/chronyd.service
└─28223 /usr/sbin/chronyd
1月 13 10:46:13 k8s-master systemd[1]: Starting NTP client/server...
1月 13 10:46:13 k8s-master chronyd[28223]: chronyd version 3.4 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +SECHASH +IPV6 +DEBUG)
1月 13 10:46:13 k8s-master chronyd[28223]: Frequency -7.521 +/- 0.022 ppm read from /var/lib/chrony/drift
1月 13 10:46:13 k8s-master systemd[1]: Started NTP client/server.
1月 13 10:46:18 k8s-master chronyd[28223]: Selected source 203.107.6.88
1月 13 10:47:25 k8s-master chronyd[28223]: Selected source 106.55.184.199
1月 13 10:48:39 k8s-master chronyd[28223]: Source 101.6.6.172 replaced with 2402:f000:1:416:101:6:6:172
1月 13 10:50:39 k8s-master chronyd[28223]: Selected source 203.107.6.88
# 使用chronyc
监控和管理
# 查看时间同步状态
chronyc tracking
Reference ID : CB6B0658 (203.107.6.88)
Stratum : 3
Ref time (UTC) : Mon Jan 13 03:06:49 2025
System time : 0.000283244 seconds fast of NTP time
Last offset : -0.000016659 seconds
RMS offset : 0.000747371 seconds
Frequency : 8.316 ppm slow
Residual freq : -0.044 ppm
Skew : 1.792 ppm
Root delay : 0.025830340 seconds
Root dispersion : 0.004631587 seconds
Update interval : 128.9 seconds
Leap status : Normal
# 查看所有时间源
chronyc sources
210 Number of sources = 3
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 203.107.6.88 2 7 377 82 +717us[ +700us] +/- 24ms
^? 2402:f000:1:416:101:6:6:> 0 8 0 - +0ns[ +0ns] +/- 0ns
^+ 106.55.184.199 2 7 377 83 -974us[ -991us] +/- 60ms
# 手动同步时间
chronyc makestep
200 OK
# 检查ntp
服务器状态
chronyc sourcestats
210 Number of sources = 3
Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev
==============================================================================
203.107.6.88 22 13 22m +0.678 4.094 +27us 1785us
2402:f000:1:416:101:6:6:> 0 0 0 +0.000 2000.000 +0ns 4000ms
106.55.184.199 22 15 22m -0.102 1.510 +22us 783us