为什么我的 Linux 系统时间总是漂移不同步?

使用 chrony、timedatectl 和网络检查来诊断和修复 Linux 时钟漂移与 NTP 同步问题。

Linuxtimedatectl 时间设置时区时间同步systemd诊断chrony 时间同步中风险
先运行 chronyc tracking 检查 chrony 是否真的在同步;如果参考 ID 是 .LOCL 或偏移量很大,说明时钟没有被校正。

快速开始

Linux 时钟漂移通常意味着 NTP 或 chrony 没有同步,或者时区配置错误。按下面的步骤排查原因并修复。

症状

?系统时间逐渐偏离真实时间;日志时间戳错误;定时任务在奇怪的时间触发;timedatectl 显示 NTP 服务未激活或等待同步。

检查 chrony 是否真的在同步时钟

这是判断时钟是否被校正的最快方法。tracking 输出会显示当前偏移量、层级和参考服务器;sources 输出列出可用的 NTP 服务器。如果参考 ID 是 .LOCL、层级为 0,或者偏移量是秒级而不是毫秒级,说明 NTP 没有工作。

确认 chrony 是否在正常校准系统时间,以及正在使用哪些 NTP 服务器。

命令
$ chronyc tracking && chronyc sources -v

如果时区不对,先修正时区

时钟漂移和时区错误是两个不同的问题,但时区配置错误会让所有时间戳看起来都不对,干扰排查。用 timedatectl 设置正确的时区,然后确认 NTP 服务已启用并处于活动状态。如果时区本来就正确,这一步可以跳过。

Linux用 timedatectl 设置系统时区中风险步骤 2可选

timedatectl 可以查看、设置时区并控制 NTP 时间同步,不用手动软链 /etc/localtime。

命令
$ sudo timedatectl set-timezone Asia/Shanghai
▾ 撤销
撤销
$ sudo timedatectl set-timezone UTC

验证到 NTP 服务器的网络稳定性

NTP 需要稳定的网络路径。对 NTP 服务器或网关持续 ping,观察是否有丢包或延迟尖峰。如果回复稳定、时间戳一致,说明网络不是同步失败的原因;如果看到丢包,先解决网络问题再指望 NTP 保持时间。

让 ping 一直运行,并在每条回复前打印 Unix 时间戳,方便定位丢包发生的具体时间。

命令
$ ping -D 8.8.8.8
!更改时区可能会改变日志和定时任务的时间戳。不要在运行数据库的系统上手动向前或向后调整时钟;应使用 NTP 平滑校正时间。

如何确认已解决

再次运行 chronyc tracking,确认偏移量很小(几毫秒以内)、stratum 不为 0,且参考 ID 是真实的 NTP 服务器。同时检查 timedatectl 显示 NTP synchronized: yes。

一键全部撤销

上面每一条命令都可以撤销。按此顺序执行即可全部还原。

一键全部撤销
$ sudo timedatectl set-timezone UTC

执行前请先确认——部分步骤之间可能并非相互独立。

来源

  • chrony documentation
    chrony project · community · 2026-09-17
    依据: Official documentation for the tracking and sources commands and the meaning of Leap/Stratum/Root delay fields.
  • timedatectl(1) - Linux manual page
    Ubuntu Manpages · technical · 2026-09-17
    依据: timedatectl set-timezone sets the system timezone, list-timezones shows available zones, and set-ntp controls network time synchronization.
  • ping(8) — send ICMP ECHO_REQUEST to network hosts
    man7.org · technical · 2026-09-17
    依据: Documents -D to print timestamps before each line and -i interval / -c count semantics.
  • chronyc(1) - command-line interface for chrony
    Ubuntu Manpages · community · 2026-09-17
    依据: chronyc tracking reports system time, last offset and stratum; chronyc sources shows the NTP servers chrony is using and their reach/state.

最后验证: 2026-09-22

相关指南