stratum 16 表示上游 NTP 服务器不可用,通常由网络不通、防火墙拦截、服务器失效或配置错误导致;需检查端口连通性、同步状态、上游可用性、本地配置及日志。

当 chronyc sources 显示某个上游 NTP 服务器的 stratum 为 16 或 delay 极大(如数秒甚至几十秒),说明 chronyd 无法正常与该源通信或同步失败。stratum 16 在 NTP 协议中代表“不可用”(相当于离线或拒绝服务),而高 delay 通常意味着网络路径异常、防火墙拦截、服务器过载或配置错误。
检查网络连通性与端口可达性
chronyd 默认使用 UDP 123 端口与上游通信,需确保本地能正常访问目标服务器的该端口:
- 用
nc -uz ntp.example.com 123或timeout 2 bash -c 'echo > /dev/tcp/ntp.example.com/123' 2>/dev/null && echo "OK" || echo "Blocked"快速验证 TCP/UDP 连通性(注意:NTP 实际走 UDP,但部分系统可用此方式粗略判断端口是否被拦) - 运行
chronyc tracking查看当前同步状态;若System clock wrong by显示极大偏差(如 >1000s),chronyd 可能因安全策略拒绝步进校时,需先手动修正时间再重启 chronyd - 确认未被本地防火墙(如 firewalld、iptables)、云平台安全组或企业网络策略屏蔽 UDP 123 出向流量
确认上游服务器是否真实可用
stratum 16 常见于上游本身已失效、返回拒绝响应或配置为仅限特定客户端访问:
- 换用公共可靠源测试,例如:
pool.ntp.org、time.google.com、time.cloudflare.com,在/etc/chrony.conf中临时替换并重启服务:sudo systemctl restart chronyd - 用
chronyc -v sources -v查看详细原因字段(如REJECT、TIMEOUT、NOPEER),对应含义可在man chronyc的 SOURCES OUTPUT 部分查到 - 某些机构内网 NTP 服务器可能要求 NTP auth key 或限制 IP 段,若属此类,需按其文档配置
keyfile和authselect等参数
排查 chronyd 本地配置与资源限制
延迟异常有时并非网络问题,而是 chronyd 自身行为或系统环境导致:
- 检查
/etc/chrony.conf中是否误配了offline、iburst缺失(首次同步建议保留)、或minpoll/maxpoll设置过大(如maxpoll 12= 4096 秒,可能加剧 delay 观感) - 确认系统未启用
systemd-timesyncd或其他 NTP 客户端冲突:sudo systemctl stop systemd-timesyncd && sudo systemctl disable systemd-timesyncd - 查看日志定位具体错误:
journalctl -u chronyd -n 50 --no-pager,留意类似Source xxx.xxx.xxx.xxx not suitable: invalid stratum或recvfrom: Connection refused的记录
应对高延迟场景的实用建议
即使网络延迟较高(如跨国链路),只要稳定且小于 1s,chronyd 仍可有效工作;但若 delay 持续 >1s,应主动优化:
- 优先选择地理邻近的 NTP 池,例如中国用户可用
cn.pool.ntp.org或阿里云提供的ntp1.aliyun.com - 避免单点依赖:在
chrony.conf中配置至少 3–4 个不同来源,chronyd 会自动剔除异常源并加权计算最优时间 - 如设备位于 NAT 后或容器中,确认宿主机未拦截 UDP 123,或尝试在容器启动时添加
--cap-add=SYS_TIME(仅限需要调整系统时间的场景)
不复杂但容易忽略。关键是把 stratum 16 当作“连接失败信号”,而非单纯的时间偏差问题;逐层验证网络、服务端、配置三者,通常能快速定位根因。










