chrony是centos 7默认时间同步工具,需修改/etc/chrony.conf,注释默认server并添加ntp.aliyun.com等阿里云ntp地址,务必带iburst参数;停用ntpd避免冲突,用chronyc sources -v验证生效。

修改 chrony.conf 中的 NTP 服务器地址(推荐方式)
CentOS 7 默认使用 chronyd 而非 ntpd,所以改的是 /etc/chrony.conf,不是 /etc/ntp.conf。直接编辑该文件,把默认的 pool.ntp.org 行注释掉,替换成国内可用、低延迟的服务器:
server ntp.aliyun.com iburstserver ntp1.aliyun.com iburstserver ntp2.aliyun.com iburstserver ntp3.aliyun.com iburst
iburst 是关键参数:首次连接时发 4 个包加速同步,避免因网络抖动导致初次同步失败。别漏写它。
为什么不能只改 ntp.conf?
如果你装了 ntpd 但没停用 chronyd,两个服务会抢着调系统时钟,timedatectl status 可能显示 NTP enabled: yes,但实际生效的是 chronyd —— 因为 CentOS 7 默认启用并优先使用它。检查当前活跃服务:
systemctl list-units | grep -E "(chronyd|ntpd)"
如果看到 chronyd.service loaded active running,那改 ntp.conf 完全无效。必须停用 ntpd 并确保 chronyd 在运行:
systemctl stop ntpdsystemctl disable ntpdsystemctl restart chronyd
验证新服务器是否真正生效
改完配置重启后,别只信 date 输出。用 chronyc 查真实连接状态:
chronyc sources -v
重点关注三列:MS(是否在线)、NR(是否选为参考源)、IP ADDRESS(是否是你配的阿里云地址)。如果全是 .INIT. 或 .REJECT.,说明服务器不可达或防火墙阻断了 UDP 123 端口。
常见卡点:
- 内网环境未开放出向 UDP 123(很多企业防火墙默认拦截)
- 配置里写了
server 0.centos.pool.ntp.org但该域名已失效或解析慢,chronyd会跳过它继续试下一个,但耗时增加 - 没加
iburst,首次同步超时被丢弃,chronyc tracking显示Leap status : Not synchronised
不建议用 ntpdate 手动强制同步来“覆盖”配置
ntpdate 是一次性命令,它绕过 chronyd 的平滑校准逻辑,直接跳变系统时间。在生产环境可能引发日志时间错乱、数据库事务异常、SSL 证书误判等问题。它只适合首次初始化或调试时临时验证连通性:
-
ntpdate -q ntp.aliyun.com(仅查询,不修改) -
ntpdate -u ntp.aliyun.com(加-u走非特权端口,绕过部分防火墙限制)
长期稳定同步,必须依赖 chronyd 的持续守护行为,而不是靠 crontab 反复跑 ntpdate —— 后者会干扰 chronyd 自身的漂移补偿机制。
真正的难点不在改哪几行配置,而在于确认 UDP 123 出向通畅、chronyd 是唯一活跃服务、且 chronyc sources 列出的 IP 确实是你指定的地址池节点。











