chronyd替代ntp

张开发
2026/4/8 13:13:58 15 分钟阅读

分享文章

chronyd替代ntp
Openeular 系统默认自带 chronyd 进程用于同步时间server 端 更改修改配置文件/etc/chronyd.conf 注释掉下列开头的行 pool server 添加下列配置# 使用本地时钟作为源localstratum10allow0.0.0.0/0修改完之后执行 systemctl restart chronyd之后执行 保证 RTC time 与 local time 一致如果不一致可以通过 hwclock --systohc 将 local time 写入到 RTC 时间$ timedatectl Local time: Wed2025-01-2210:30:35 CST Universal time: Wed2025-01-22 02:30:35 UTC RTC time: Wed2025-01-22 02:30:35 Time zone: Asia/Shanghai(CST, 0800)System clock synchronized: no NTP service: active RTCinlocalTZ: no客户端修改更改 /etc/chronyd.conf 注释掉 pool 和 server 开头的所有配置添加以下配置 servermasteriburst 其他配置保持不变重启 chronyd 进程执行 chronyc makestep 可以更新时间执行 chronyc sourcestats -v 可以查看更新的情况chronyd server 端更新了时间之后client 端需要重启 chronyd 才能生效怎么解决● 这是 chrony 客户端无法自动同步的常见问题通常由以下几个原因导致检查客户端同步状态 chronyc trackingchronyc sources -v如果 sources 中服务器行首是 ^? 或 x说明客户端没有成功与服务器同步。常见原因及解决方案原因 A轮询间隔太长默认 maxpoll 为 10即 1024 秒 ≈ 17 分钟服务器时间变更后客户端需要等很久才会再次轮询。修改 /etc/chrony/chrony.confDebian/Ubuntu或 /etc/chrony.confRHEL/CentOSserver your_ntp_server iburst minpoll 2 maxpoll 8minpoll 2 每 4 秒可轮询一次初始阶段maxpoll 8 最大轮询间隔 256 秒iburst 启动时快速发 4 个请求加速初始同步原因 B客户端使用了 local 指令充当了本地时钟源如果客户端配置了local stratum 10客户端可能把自己当作可靠时钟源忽略服务器。移除或改为 local stratum 10 orphan这样只有在失去所有上游服务器时才使用本地时钟。原因 C服务器步进step了时间客户端 slew 跟不上当服务器手动 date -s 或做了大步进调整时chrony 默认用 slew渐变方式追时间。如果差距太大追得很慢。客户端强制立即同步chronyc -a makestep或让客户端自动步进在配置中加makestep 1.0 3含义如果偏移超过 1 秒前 3 次更新直接步进校正。原因 D防火墙/网络阻断chrony 使用 UDP 123 端口检查连通性chronyc -h your_server_ip sources如果超时检查防火墙服务端放行firewall-cmd --add-servicentp --permanentfirewall-cmd --reload或iptables -A INPUT -p udp --dport 123 -j ACCEPT推荐的完整客户端配置server your_ntp_server iburst minpoll 2 maxpoll 8driftfile /var/lib/chrony/driftrtcsyncmakestep 1.0 3logdir /var/log/chrony修改后重启systemctl restart chronyd然后验证同步chronyc sources -v # 应看到行首为 ^* 表示已同步chronyc tracking # 看 System time 和 Last offset快速诊断命令一步到位手动触发同步chronyc -a makestep查看是否同步成功chronyc tracking | grep -E “System time|Update interval|Leap status”最可能的根因是 makestep 未配置 maxpoll 间隔过长加上 makestep 1.0 3 和降低 maxpoll 通常就能解决。

更多文章