chronyd 服务默认未启用,需手动启动并配置国内NTP源;面板时间缓存与系统时间不同步,应以 date -R 或 timedatectl 为准;虚拟机需检查宿主机时间透传设置。

chronyd 服务没启动,时间根本不会自动同步
宝塔面板默认不启用任何系统级时间同步服务,哪怕你点过十次“同步”按钮,chronyd 依然可能是 inactive (dead)。这不是面板故障,而是 CentOS 8+/Ubuntu 20.04+ 的默认行为:避免与云厂商自带时间服务冲突。
实操建议:
- 先确认状态:
systemctl status chronyd,如果显示Active: inactive (dead),说明它压根没跑 - 直接启用并立即运行:
sudo systemctl enable --now chronyd - 别用
ntpd—— 它在虚拟机/云服务器上容易失步,chronyd才是现代推荐方案 - 验证是否真生效:
chronyc tracking输出中必须看到System clock status: synchronized
/etc/chrony.conf 配置国内 NTP 源才有效
默认配置里的 pool.ntp.org 在国内多数云环境(阿里云、腾讯云)会被拦截或解析失败,chronyc sources -v 会显示全是 ^? 或 ^X,看似配了,实则连不上。
实操建议:
- 编辑配置:
sudo nano /etc/chrony.conf - 注释掉所有原始
server行,替换为云厂商可信源:server ntp1.aliyun.com iburst或server time.tencentyun.com iburst -
iburst参数不能省——没有它,首次同步可能卡住几十秒甚至失败 - 改完必须重启:
sudo systemctl restart chronyd,仅 reload 不生效
宝塔面板右上角时间不准,不代表系统时间错
面板前端读取的是自己缓存的 /www/server/panel/data/time.pl,约每 5 分钟更新一次,和真实系统时间不同步。你看到右上角还停在昨天,date -R 却已显示正确北京时间,这是正常现象。
实操建议:
- 排查时间问题时,永远以
date -R或timedatectl输出为准,别信面板右上角 - 强制刷新面板时间缓存:
sudo bt reload(不是重启面板) - 更彻底的办法:删掉缓存文件
sudo rm -f /www/server/panel/data/time.pl,再执行bt reload - SSL 证书报错、定时任务延迟等生产问题,必须依据
date -R判断,否则会误诊
多台服务器间时间差仍超 50ms?检查硬件时钟与虚拟化设置
即使 chronyd 显示已同步,KVM/物理机之间偏差可能仍在毫秒级,但 OpenVZ/Virtuozzo 虚拟机若宿主机禁用了时间透传,chronyd 再准也无用——它根本收不到 UDP 123 包。
实操建议:
- 确认硬件时钟是否写入:
chronyc tracking中的Leap status应为Normal,且System timeoffset 绝对值 - 云服务器务必关闭宿主机时间同步(如 VMware Tools 中的 “Synchronize guest time with host”),否则会和
chronyd抢控制权 - 检查防火墙:
sudo firewall-cmd --list-ports | grep 123(CentOS)或sudo ufw status | grep 123(Ubuntu),没放行就加规则 - 别在宝塔计划任务里塞
ntpdate脚本——它和chronyd冲突,会导致 socket 占用错误和时间跳变










