Chrony NTP 时间同步服务器部署教程替代 ntpd搭建内网 NTP 服务准确的系统时间是分布式系统、日志审计、SSL 证书验证、数据库事务等众多场景的基础。传统的 ntpd 已有数十年历史而 Chrony 是其现代替代品由 Red Hat 主导开发在精度、稳定性和资源消耗方面均有显著优势。Chrony 能够更好地处理网络延迟抖动在间歇性网络连接下也能维持良好的时钟精度是 RHEL 7、Ubuntu 20.04 等主流发行版的默认 NTP 实现。对于拥有多台服务器的内网环境搭建私有 NTP 服务器是最佳实践。内网 NTP 服务器从上游公共 NTP 服务器同步时间再为局域网内所有节点提供时间服务既减少了对外部网络的依赖也能将所有内网节点的时钟偏差控制在微秒级别。这对于分布式数据库如 CockroachDB、TiDB、Kafka 集群和 Kubernetes 等对时间敏感的系统尤为重要。本教程将详细介绍 Chrony 的安装配置流程包括作为 NTP 客户端使用、搭建内网 NTP 服务端以及使用 chronyc 命令进行时钟精度监控和故障排查。环境要求Chrony 对硬件要求极低任何一台 Linux 服务器都可以胜任 NTP 服务端角色。推荐使用雨云服务器 rainyun-com注册填优惠码2026off领 5 折优惠券。1 核 2GB 机型完全满足 Chrony NTP 服务的运行需求Chrony 进程的内存占用通常不超过 10MBCPU 使用率接近 0%。搭配稳定的网络环境可为数十台内网服务器提供高精度时间同步服务。操作系统推荐 Ubuntu 22.04 LTS 或 CentOS Stream 9。安装准备工作停止并禁用旧版 ntpd如有sudosystemctl stop ntp2/dev/nullsudosystemctl disable ntp2/dev/nullsudoaptremove-yntp ntpdate2/dev/null同时禁用 systemd-timesyncd避免冲突sudosystemctl stop systemd-timesyncdsudosystemctl disable systemd-timesyncd安装 ChronyUbuntu / Debiansudoaptupdatesudoaptinstall-ychronyCentOS / RHEL / Rocky Linuxsudodnfinstall-ychrony安装完成后 Chrony 会自动启动sudosystemctlenable--nowchronydsudosystemctl status chronyd确认时区设置timedatectl status# 如需修改时区sudotimedatectl set-timezone Asia/Shanghai详细配置配置文件位置Ubuntu/Debian/etc/chrony/chrony.confCentOS/RHEL/etc/chrony.conf客户端模式配置适用于需要从上游 NTP 服务器同步时间的普通节点sudonano/etc/chrony/chrony.conf# 上游 NTP 服务器使用 iburst 加速初始同步 server ntp.aliyun.com iburst prefer server ntp1.aliyun.com iburst server ntp2.aliyun.com iburst server cn.pool.ntp.org iburst # 允许的时钟偏差秒超出时强制步进同步 makestep 1.0 3 # 硬件时钟RTC同步 rtcsync # 记录时钟漂移 driftfile /var/lib/chrony/drift # 日志目录 logdir /var/log/chrony # 记录测量统计、追踪和 rtc 信息 log measurements statistics tracking搭建内网 NTP 服务端将以下配置部署在专用 NTP 服务器上同时向上游同步并对内网提供服务# 上游时间源至少配置 3 个以提高可靠性 server ntp.aliyun.com iburst prefer server ntp1.aliyun.com iburst server time1.cloud.tencent.com iburst server cn.pool.ntp.org iburst # 本地时钟作为后备stratum 10仅在无法连接上游时使用 local stratum 10 # 允许内网网段访问按实际网段修改 allow 192.168.0.0/16 allow 10.0.0.0/8 allow 172.16.0.0/12 # 其他配置 makestep 1.0 3 rtcsync driftfile /var/lib/chrony/drift logdir /var/log/chrony log measurements statistics tracking rtc # 硬件时间戳如网卡支持可大幅提升精度 # hwtimestamp eth0重启服务使配置生效sudosystemctl restart chronyd内网客户端配置将内网其他服务器的 NTP 源指向内网 NTP 服务器假设其 IP 为 192.168.1.10# 优先使用内网 NTP 服务器 server 192.168.1.10 iburst prefer # 保留外部时间源作为后备 server ntp.aliyun.com iburst makestep 1.0 3 rtcsync driftfile /var/lib/chrony/drift logdir /var/log/chrony防火墙配置NTP 使用 UDP 123 端口# UFWsudoufw allow123/udp# firewalldsudofirewall-cmd--permanent--add-servicentpsudofirewall-cmd--reload# iptablessudoiptables-AINPUT-pudp--dport123-jACCEPT进阶用法chronyc 命令行工具chronyc 是 Chrony 的交互式管理工具用于实时监控和管理时间同步状态。查看时间源状态chronyc sources-v输出示例.-- Source mode ^ server, peer, # local clock. / .- Source state * current best, combined, - not used. |/ .- Log2(Polling interval) :: Reach :: Last Rx || / \ / \ MS Name/IP Refid St Poll Reach LastRx Last sample ^* ntp.aliyun.com .ACTL. 1 6 377 22 -82us[ -88us] /- 1848us ^ ntp1.aliyun.com .ACTL. 1 7 377 21 234us[ 231us] /- 3412us*表示当前使用的最佳时间源表示参与组合计算的源。查看时钟跟踪信息chronyc tracking输出示例Reference ID : 6BD7... (ntp.aliyun.com) Stratum : 2 Ref time (UTC) : Mon Jun 01 10:00:00 2026 System time : 0.000082341 seconds fast of NTP time Last offset : 0.000019234 seconds RMS offset : 0.000043210 seconds Frequency : 12.345 ppm slow Residual freq : 0.003 ppm Skew : 0.127 ppm Root delay : 0.001834 seconds Root dispersion : 0.000891 seconds Update interval : 64.2 seconds Leap status : Normal强制立即同步sudochronyc makestep查看 NTP 统计信息chronyc sourcestats-v精度调优调整轮询间隔# 最小和最大轮询间隔单位2^n 秒 server ntp.aliyun.com iburst minpoll 4 maxpoll 6 # 2^416秒 到 2^664秒 之间动态调整提高精度的额外配置# 增加测量样本数提高时钟校正精度 minsources 2 # 允许的最大时钟倾斜ppm maxdistance 1.5 # 拒绝 stratum 过高的时间源 maxdistance 0.1监控脚本编写一个简单的时钟偏差监控脚本#!/bin/bash# /usr/local/bin/check_chrony.shOFFSET$(chronyc tracking|grepSystem time|awk{print $4})THRESHOLD0.1# 100msif(($(echo $OFFSET$THRESHOLD|bc-l)));thenechoWARNING: NTP offset${OFFSET}s exceeds threshold${THRESHOLD}sexit1fiechoOK: NTP offset is${OFFSET}sexit0实战示例搭建高可用双节点 NTP 集群在两台服务器192.168.1.10 和 192.168.1.11上配置互为 peer# 两台服务器均添加以下配置 peer 192.168.1.10 iburst # 在 .11 上添加 peer 192.168.1.11 iburst # 在 .10 上添加 # 上游时间源 server ntp.aliyun.com iburst prefer server cn.pool.ntp.org iburst allow 192.168.0.0/16 local stratum 10Kubernetes 集群时间同步最佳实践在 K8s 环境中确保所有节点时钟误差小于 1 秒etcd 要求# 在所有 K8s 节点执行sudochronyc makestep chronyc tracking|grepSystem time# 验证偏差fornodein192.168.1.{1..10};doecho-n$node: ssh$nodechronyc tracking | grep System timedone常见问题Qchronyc sources 显示 “?” 状态时间源无法连接A检查防火墙是否放开了 UDP 123 出站端口以及 NTP 服务器域名能否正常解析。可用ntpdate -q ntp.aliyun.com测试连通性。Q系统时间突然跳变A这是makestep配置触发的强制步进同步属于正常行为。若不希望时钟跳变可将 makestep 中的允许次数改为 0仅开机时允许跳步makestep 1.0 -1仅在偏差超过1秒时才允许步进。Q内网客户端无法连接内网 NTP 服务器A确认服务端chrony.conf中allow指令包含了客户端所在网段并检查服务端防火墙 UDP 123 端口是否开放。Qstratum 值为什么这么大Astratum 表示距参考时钟的层数。公共 NTP 服务器通常是 stratum 1-2内网 NTP 服务器将是 stratum 2-3内网客户端则是 stratum 3-4。stratum 越小精度越高但 stratum 16 以内均为有效同步状态。Q如何查看历史时钟偏差A如果开启了 log 选项日志文件保存在/var/log/chrony/目录下cat/var/log/chrony/statistics.log|tail-20Chrony 以极低的资源占用提供了远超 ntpd 的时钟精度是现代 Linux 环境时间同步的首选方案。无论是单台服务器的简单同步需求还是数百节点集群的内网 NTP 基础设施Chrony 都能胜任。如果你正在寻找一台稳定、低成本的服务器来部署内网 NTP 服务推荐雨云服务器 rainyun-com的1 核 2GB 机型注册填优惠码2026off即可领取 5 折优惠券轻松搭建属于自己的时间同步基础设施。