chronyc makestep 是唯一推荐的手动强制同步方式,因为 ntpdate 已废弃、会引发时间跳变且与 chronyd 冲突;其仅在偏差超1秒时生效,需 chronyd 运行并确认配置未禁用阶跃。

chronyc makestep 是唯一推荐的手动强制同步方式,其他方法要么已废弃,要么会引发时间跳变或服务冲突。
为什么不能用 ntpdate
CentOS 7 默认禁用 ntpdate,且它与 ntpd 或 chronyd 冲突:
- 如果 chronyd 正在运行,ntpdate pool.ntp.org 会报错 the NTP socket is in use
- 即使停掉服务再执行,ntpdate 会直接阶跃(step)修改系统时间,对数据库、Kafka、TLS 证书验证等敏感服务极不友好
- 官方已将其标记为废弃工具,RHEL/CentOS 文档明确建议改用 chronyc makestep
chronyc makestep 的正确用法
该命令只在时间偏差超过阈值(默认 1 秒)时才生效,且需提前确认 chronyd 已运行:
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
- 先检查服务状态:
systemctl is-active chronyd,不是active就先systemctl start chronyd - 查看当前偏移:
chronyc tracking,重点关注Offset字段(单位是秒) - 若偏移 >1s,执行:
sudo chronyc makestep - 执行后立刻生效,无需重启服务;再次
chronyc tracking应显示Offset接近 0
手动设置时间的替代场景(慎用)
仅限完全离线、无 NTP 服务器可用、且能接受时间跳变的临时调试:
- 用
timedatectl set-time '2026-07-08 02:14:00'直接设时间(注意格式必须带单引号,且时区以timedatectl status显示为准) - 设完后务必同步硬件时钟:
sudo hwclock --systohc,否则重启后还原 - 此操作会中断
chronyd的平滑校正逻辑,之后需手动触发chronyc makestep或等待自动收敛
容易被忽略的关键点
很多人卡在“明明执行了 chronyc makestep 却没反应”——这通常是因为:
-
makestep默认只对 >1 秒偏差生效,小偏差靠chronyd渐进调整,不能强求“立刻归零” -
/etc/chrony.conf中若配置了makestep 0 -1(即禁用阶跃),命令就完全失效 - 虚拟机环境下,宿主机时间漂移可能持续拉偏客户机,单纯手动同步治标不治本










