chrony同步源离线是最常见时间不同步原因,表现为chronyc sources显示?或x、reach为0、timedatectl status显示synchronized: no;需依次检查chronyd服务状态、防火墙udp 123端口放行、dns解析与ntp源可达性、/etc/chrony.conf中server配置有效性。

Chrony 同步源离线是时间不同步最常见的原因之一,表现通常是系统时间缓慢漂移、chronyc sources 显示所有源状态为 ? 或 x、Reach 值长期为 0(八进制),且 timedatectl status 中显示 synchronized: no。
确认 chronyd 服务是否正常运行
服务未启动或异常退出,自然无法连接任何上游源:
- 运行
systemctl status chronyd,检查是否为active (running) - 若状态异常,用
journalctl -u chronyd -n 50 --no-pager查看最近日志,重点关注配置语法错误、端口冲突(如 UDP 123 被占用)或权限拒绝 - 可尝试调试模式验证配置:
chronyd -d -f /etc/chrony.conf,它会立即报出配置文件中的格式问题(如全角字符、缺失参数等)
检查网络连通性与防火墙拦截
即使 ping 通 NTP 域名,也不代表 NTP 协议可用——NTP 使用 UDP 123 端口,常被防火墙或安全策略静默丢包:
- 用
ss -unlp | grep :123确认chronyd是否在监听 UDP 123(客户端角色下必须监听) - 执行
firewall-cmd --list-all(CentOS/RHEL)或ufw status verbose(Ubuntu),确认123/udp已放行;未开放则添加:firewall-cmd --permanent --add-port=123/udp && firewall-cmd --reload - 临时关闭防火墙测试:
systemctl stop firewalld(仅用于诊断),再运行chronyc sources -v观察状态是否变为^或+
验证上游时间源可达性与响应
域名解析失败、服务器不可达或主动拒绝请求都会导致源“离线”:
- 先做基础 DNS 解析:
nslookup ntp.aliyun.com或dig +short ntp.tencent.com,确保能返回 IP - 用
chronyc -n tracking查看当前跟踪的源和偏移,若System time显示严重偏差(如 > 1s),说明已长时间未成功同步 - 手动测试 NTP 连通性:
ntpdate -q ntp.aliyun.com(需安装ntpdate)或更推荐用chronyc -a add server ntp.aliyun.com iburst后立即查chronyc sources -v - 若多个国内源(如
ntp.ustc.edu.cn、time1.cloud.tencent.com)全部不可达,考虑是否网络出口策略限制了 NTP 流量,或该环境处于严格内网隔离中
检查配置文件中源定义是否有效
配置错误可能让 chronyd “视而不见”某些源:
- 打开
/etc/chrony.conf,确认server行未被注释,且格式正确(例如:没有多余空格、无中文标点、每行一个源) - 避免使用已停服或响应慢的公共池,优先选用稳定国内源:
server ntp.aliyun.com iburst、server time1.cloud.tencent.com iburst - 若启用了
allow或deny规则,注意它们只影响本机作为 NTP 服务器时的客户端访问,不影响自身作为客户端的上行同步,无需为此调整











