Linux时间同步chrony配置教程:零基础也能让服务器时
服务器时间不准会导致日志错乱、证书验证失败、定时任务异常。Linux时间同步chrony 是新一代时间同步服务,比 NTP 更精准、更适合现代网络环境。
本文从零开始,带你完成 Chrony 的安装、配置、验证和排错。
前置准备
- 操作系统:CentOS 7/8、Ubuntu 18.04+、Debian 10+ 皆可。
- 权限:需要 root 或 sudo 权限。
- 网络:服务器能访问外网(至少能访问 NTP 服务器,如 ntp.aliyun.com)。
- 检查是否已安装其他时间服务:运行
systemctl list-units | grep -E '(ntp|chrony)',如果存在 ntp 或 ntpd,请先停止并禁用。
分步操作
1. 安装 Chrony
根据不同发行版执行对应命令:
# CentOS / RHEL / Rocky Linux
yum install -y chrony
Ubuntu / Debian
apt update && apt install -y chrony
安装后自动启动并设置开机自启。
2. 配置时间源
编辑配置文件 /etc/chrony.conf。
建议替换为国内时间服务器以提高同步速度和稳定性:
# 备份原配置
cp /etc/chrony.conf /etc/chrony.conf.bak
编辑
vim /etc/chrony.conf
将 pool 或 server 行修改为:
server ntp.aliyun.com iburst
server ntp.tencent.com iburst
pool cn.ntp.org.cn iburstiburst 表示首次同步快速发送多个请求加速对齐。
3. 启动与启用服务
systemctl restart chronyd
systemctl enable chronyd
systemctl status chronyd # 确认状态为 active (running)如果状态显示失败,查看日志:journalctl -u chronyd --no-pager | tail -20
4. 配置防火墙(如有需要)
Chrony 默认使用 UDP 123 端口。
如果本地只需要同步时间,不需要开放入站 123 端口;
如果作为 NTP 服务器对外提供服务,才需要开放:
firewall-cmd --add-service=ntp --permanent
firewall-cmd --reload避坑指南
- 端口冲突:如果先安装了 ntp(ntpd),两者会抢占 123 端口,导致 chrony 无法启动。必须先
systemctl stop ntpd && systemctl disable ntpd。 - 系统时间偏差过大:Chrony 默认不允许一次性调整超过 1000 秒。如果虚拟机休眠后恢复,偏差巨大,可先手动设置近似时间:
date -s "2025-03-20 10:00:00"再启动 chrony。 - 同步源不可用:阿里云 ECS 内网机器建议使用内网 NTP 地址(如 ntp.aliyun.com 内网版),延迟更低。如果你用境外服务器,选择就近的 NTP 池。
- SELinux 阻止:如果 CentOS/RHEL 开启 SELinux,且修改了 chrony 配置中的 bind 地址,需调整策略。通常默认配置不受影响。
高频问题解答
Q1:Chrony 和 NTP 有什么区别?哪个更好?
Chrony 是 NTP 的现代化替代,支持更快的同步、更好的网络波动适应、更低的 CPU 消耗。Linux时间同步chrony 在 CentOS 8+ 和 Ubuntu 20.04+ 已是默认时间服务。
建议优先使用 Chrony。
Q2:如何查看当前同步状态和偏差?
chronyc tracking # 显示系统时间与参考源的偏差、频率偏差等
chronyc sources -v # 列出配置的 NTP 源及其状态(^* 表示已同步)
chronyc sourcestats -v # 查看各源的统计信息输出中 Last offset 接近 0 表示同步良好,单位是秒。
效果验证
方法1:查看时间源状态
chronyc sources -v如果看到 ^* ntp.aliyun.com(或其他源带 ^*),表示该源已同步。
方法2:检查系统时间偏差
chronyc tracking | grep "Last offset"正常值应在 ±0.05 秒内。
方法3:对比标准时间
date与手机或已知准确时间对比,如果误差可接受则成功。
---
如果你正在处理 Linux时间同步chrony,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。
掌握 Chrony 后,你的服务器日志审计、定时任务、HTTPS 证书验证都会更加可靠。