Chrony 是一个开源的
时间同步工具
,用于在 Linux 系统上实现高精度的NTP(Network Time Protocol)
客户端和服务器功能。它比传统的ntpd
(NTP Daemon)更灵活、更高效,特别适用于不稳定的网络环境(如移动设备、虚拟机或间歇性连接的系统)。
核心组件
主要优势
常见使用场景
验证 NTP 服务器是否可用
#检查网络连通性
ping 192.168.31.110
#检查 NTP 端口 '123' 是否开放
nc -zv 192.168.31.110 123
如果 ping 通但 nc 失败,可能是 NTP 服务未运行或防火墙阻止。
设置时区
#列出所有时区
timedatectl list-timezones
#设置时区
sudo timedatectl set-timezone Asia/Shanghai
#查看时区
timedatectl
基本配置(/etc/chrony.conf)
# 时间源,使用阿里云NTP服务器
#server ntp.aliyun.com iburst
#server ntp1.aliyun.com iburst
#server ntp2.aliyun.com iburst
pool ntp.aliyun.com iburst maxsources 3 prefer
# 使用本地硬件时钟作为时间源(当外部源不可用时作为备用)
server 127.127.1.0 iburst
#本地时钟的层级设为 10(0-15,0最高;仅在其他源全部失效时使用)
local stratum 10
# 允许内网特定网段同步
allow 192.168.31.0/24
# 记录时间偏差
driftfile /var/lib/chrony/drift
# 如果系统时钟偏差太大,则步进调整而不是渐进调整
makestep 1.0 3
# 启用实时时钟(RTC)同步
rtcsync
# 日志目录
logdir /var/log/chrony
pool ntp.aliyun.com iburst maxsources 3 prefer
NTP 的约定规范:
常用命令
#查看同步状态,时区等
timedatectl
#手动指定优先源(临时添加)
sudo chronyc add server 192.168.31.110 iburst
#强制发起一轮突发同步
sudo chronyc burst 2/2
#手动同步时间
chronyc makestep
#查看时间源(^*:当前最优时间源)
chronyc sources -v
#检查同步状态(显示时间源、偏移量、延迟等信息)
chronyc tracking
#查看连接的客户端(在服务器上执行)
sudo chronyc clients
#重启 chronyd
sudo systemctl restart chronyd
场景:使用 chrony 给 4 台服务器配置时间同步,服务器如下:
配置方案
在这个配置中,我们将:
配置主时间服务器 s1
# 时间源,使用阿里云NTP服务器
pool ntp.aliyun.com iburst maxsources 3
# 使用本地硬件时钟作为时间源(当外部源不可用时作为备用)
server 127.127.1.0 iburst
#本地时钟的层级设为 10(0-15,0最高;仅在其他源全部失效时使用)
local stratum 10
# 允许内网特定网段同步
allow 192.168.31.0/24
# 记录时间偏差
driftfile /var/lib/chrony/drift
# 如果系统时钟偏差太大,则步进调整而不是渐进调整
makestep 1.0 3
# 启用实时时钟(RTC)同步
rtcsync
# 日志目录
logdir /var/log/chrony
配置备时间服务器 s2
pool ntp.aliyun.com iburst maxsources 3
server 192.168.31.110 iburst prefer
server 127.127.1.0 iburst
local stratum 10
allow 192.168.31.0/24
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony
配置客户端 c1, c2
server 192.168.31.110 iburst prefer
server 192.168.31.111 iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony
配置完重启生效 chrony 服务
sudo systemctl restart chronyd
验证时间源
方式一、去 ntp 时间服务器中,查看连接的客户端
sudo chronyc clients
方式二、在自己服务器中查看时间源(^*:当前最优时间源)
chronyc sources -v
参与评论
手机查看
返回顶部