服务器时间同步是很多站长容易忽略、却直接影响业务稳定性的基础配置。当服务器时钟发生漂移,日志时间错乱、SSL(安全传输协议)证书校验失败、数据库主从复制中断、定时任务提前或延后执行,这些问题排查起来往往非常耗时。本文将教你如何用 chrony 部署 NTP 时间同步,并给出时钟漂移的排障实战方法,帮助你快速定位并解决时间不同步带来的连锁故障。
为什么服务器时间会漂移,又为什么必须校准
NTP(网络时间协议)是让服务器与标准时间源保持一致的协议,它通过 UDP 123 端口与上游时间服务器通信,把本地时钟校准到毫秒级精度。chrony 是新一代的 NTP 实现,相比传统 ntpd,它在网络抖动、间歇性断网环境下同步精度更高,启动后收敛更快,因此成为主流 Linux 发行版的默认时间同步工具。对运行在 VPS(虚拟专用服务器)或独立服务器上的业务来说,稳定的时间同步是日志审计、证书校验和分布式协作的基础。
时钟漂移的根源在于服务器主板上的晶振存在物理误差,温度、负载、供电波动都会让本地时钟以每天数秒甚至更快的速度偏离标准时间。偏差一旦累积到分钟级,日志时间戳就会错乱,跨服务器排查问题时无法对齐时间线;SSL 证书的 notBefore/notAfter 校验会因本地时间超前或滞后而误判证书失效;数据库主从复制在时间偏差过大时会出现 clock skew 报错并中断。如果你还不清楚服务器基础配置如何规划,可以先阅读我们的VPS 主机分类文章,了解常见的基础设施管理要点。
安装与配置 chrony:一条命令起步
在 Debian/Ubuntu 系统上,安装 chrony 只需一条命令:apt install -y chrony。在 CentOS/RHEL 系系统上,则使用 yum install -y chrony。安装完成后,主配置文件位于 /etc/chrony/chrony.conf(Debian 系)或 /etc/chrony.conf(CentOS 系)。
核心配置项是 pool 指令,它指定上游时间服务器。默认配置通常已经包含一组公共 NTP 服务器,例如 pool 2.debian.pool.ntp.org iburst。iburst 参数让 chrony 在启动时快速发送多个同步请求,缩短首次收敛时间。如果你希望使用更稳定的国内时间源,可以把 pool 换成 ntp.aliyun.com 或 ntp.tencent.com 等国内公共服务器,减少跨地域网络延迟带来的抖动。配置完成后,重启服务并设为开机自启:systemctl restart chrony 与 systemctl enable chrony。
验证同步状态:判断配置是否真正生效
部署完成后,验证同步状态是判断配置是否生效的关键一步。使用 chronyc sources -v 查看同步源,输出中每一行代表一个上游时间源,^* 表示当前正在使用的同步源,^+ 表示候选源,^? 表示不可达。如果没有任何源被标记为 ^*,说明同步尚未建立。
接着查看同步精度,运行 chronyc tracking。输出中的 System time 字段表示本地时钟与标准时间的偏差,正常应保持在毫秒级;Leap status 为 Normal 表示系统处于正常同步状态。你还可以用 timedatectl 确认系统时间与硬件时间(RTC)是否一致。如果 System clock synchronized: yes 且 NTP service: active,说明时间同步链路已经打通;若显示 no,则需要继续排查,进入下一节的排障流程。

常见故障排障:按现象定位根因
即使配置正确,服务器仍可能出现时间不同步。下面按故障现象给出对应的排查路径。
同步源全部不可达:先查防火墙
当 chronyc sources -v 输出全部为 ^? 时,最常见的原因是 UDP 123 端口被防火墙拦截。先检查防火墙规则,如果发现 123 端口被 DROP,需要放行出站 UDP 123。以 ufw 为例:ufw allow out 123/udp。部分云厂商的安全组也会在更外层拦截 UDP 123,此时需要登录云控制台,在安全组规则中放行出站 UDP 123。放行后重启 chrony 并重新查看 chronyc sources -v,确认源是否变为 ^*。

偏差过大迟迟不收敛:手动强制校准
如果服务器时钟与标准时间偏差超过几分钟甚至几小时,chrony 默认的 makestep 策略可能不会立即大幅跳变,导致同步迟迟无法收敛。此时可以手动强制校准一次:chronyc makestep。makestep 会立即把本地时钟跳到标准时间。若希望系统在启动时自动处理大幅偏差,可在 chrony.conf 中启用 makestep 1 3,这表示在启动后的前 3 次同步中,如果偏差超过 1 秒就立即跳变,避免长时间缓慢收敛。
重启后时间回退:同步硬件时钟
服务器重启后时间回退,通常是硬件时钟与系统时间不同步导致。用 hwclock -w 把系统时间写入硬件时钟,同时确认系统时区设置正确,避免因时区错误造成时间显示偏差:timedatectl set-timezone Asia/Shanghai。
多机时间不一致:统一时间源
当多台服务器时间不一致时,跨服务器排查日志会非常困难。建议在每台服务器上统一使用同一组 NTP 源,并定期用 chronyc tracking 检查偏差。对运行数据库主从复制的场景,主从节点时间偏差过大会直接导致复制中断,这类问题往往在业务日志中表现为 clock skew 或 out of sync 报错。此时优先检查从节点的时间同步状态,再决定是否重建复制关系。
总结与行动建议
时间同步看似基础,却是保障日志审计、证书校验、数据库复制和定时任务稳定运行的前提。通过本文的部署与排障方法,你可以快速把服务器时钟校准到毫秒级精度,并在出现漂移时按现象定位根因。总结一下,我们建议你按以下顺序落地:先安装 chrony 并配置国内时间源,再用 chronyc sources -v 与 chronyc tracking 验证同步状态,最后把防火墙放行、硬件时钟同步和时区设置纳入日常巡检清单。
如果你需要一台网络稳定、便于统一管理时间同步的服务器,可以考虑Hostease的 VPS 主机或独立服务器方案,它们都提供完整的系统权限,方便你按本文步骤部署 chrony。若你的业务对页面加载速度同样敏感,也可以参考我们的网站建设分类内容,从基础设施到应用层做一次全面体检。

微信扫一扫打赏
支付宝扫一扫打赏