linux时间同步首选chrony,安装后配置国内ntp源、启用服务并用chronyc验证;资源受限可选systemd-timesyncd;大偏差需先ntpdate校准并同步硬件时钟;务必正确设置时区、utc模式及开放udp 123端口。

Linux 中配置时间同步服务,核心是选对工具、配好源、启动服务并验证状态。推荐优先使用 chrony,它比传统 ntpd 更适合现代环境(尤其云主机、虚拟机、网络不稳场景),启动快、收敛快、对时钟漂移适应强。
用 chrony 配置时间同步
chrony 是当前主流发行版(RHEL 8+/CentOS 8+、Ubuntu 20.04+)默认推荐方案。
- 安装:CentOS/RHEL 执行
yum install -y chrony;Ubuntu/Debian 执行apt install -y chrony - 编辑配置:
vi /etc/chrony.conf,清空或注释原有server行,添加至少两个国内可靠源,例如:server ntp.aliyun.com iburstserver time1.cloud.tencent.com iburst - 启用并启动:
systemctl enable --now chronyd - 立即校准一次(跳过等待):
chronyc makestep - 验证:运行
chronyc tracking查看Offset(当前偏差,理想值在 ±10ms 内),chronyc sources -v确认已连接上游服务器
用 systemd-timesyncd 快速启用(轻量级默认)
适用于仅需基础单向同步、资源受限或容器宿主机等场景,无需额外安装。
- 检查状态:
systemctl status systemd-timesyncd - 配置 NTP 源:
echo "NTP=cn.pool.ntp.org time1.aliyun.com" >> /etc/systemd/timesyncd.conf - 重启服务:
systemctl restart systemd-timesyncd - 确认生效:
timedatectl status,看到System clock synchronized: yes即表示已同步
手动强制校准(大偏差时必须先做)
当系统时间偏差超过 1000 秒(约 16 分钟),chrony 或 ntpd 默认拒绝步进式调整,需先手动校正再交由守护进程维持。
- 临时安装并执行:
ntpdate -s ntp.aliyun.com(-s 表示静默写入 syslog) - 将校准后的系统时间写入硬件时钟:
hwclock --systohc,避免重启后恢复错误时间 - 完成后再启动 chronyd 或 timesyncd
关键前提不能漏
无论选哪种方式,都必须确保:
- 时区设为
Asia/Shanghai:timedatectl set-timezone Asia/Shanghai - 硬件时钟(RTC)采用 UTC 模式(推荐):
timedatectl set-local-rtc 0 - 防火墙放行 UDP 123 端口:
firewall-cmd --add-port=123/udp --permanent && firewall-cmd --reload(CentOS/RHEL)











