Chronyd是实现NTP协议的软件,底层走的就是NTP协议,比ntpd更轻量、适应性更强。
Chronyd 和 NTP 的关系
● NTP(Network Time Protocol) 是一种协议,用于在计算机系统之间同步时间。
● Chronyd 是一个实现了NTP协议的程序,也就是说 Chronyd是NTP协议的一个实现者/客户端工具。
● 类似地,传统上还有一个叫做 ntpd 的程序,也是NTP协议的实现(ntp.org官方版的守护进程)。
所以总结一句话就是:
Chronyd和ntpd都遵循NTP协议,只是Chronyd是一个更现代化、更快、更适合移动环境的实现。
Chronyd底层是不是NTP?
是的,底层走的还是NTP协议。
● Chronyd与上游时间服务器(NTP Server)通讯,使用的是标准NTP协议报文格式。
● 你用Wireshark抓包可以看到Chronyd发出去和收回来的数据包,就是NTP格式(端口123/UDP)。
也就是说,无论你用chronyd还是ntpd,只要同步的是NTP服务器,走的都是标准NTP协议。
Chronyd 相比 ntpd 有什么优势
项目 ntpd(老牌NTP守护进程) chronyd(新的NTP守护进程)
启动速度 慢(适合长时间运行服务器) 快(适合快速启动的环境,如容器、虚拟机)
同步精度 精度较高(但慢) 更快收敛到正确时间,网络抖动适应性好
流动性支持 不太适合频繁变换网络环境(比如笔记本,云主机) 适合经常变更网络的设备
网络连接中断恢复 慢 快,能迅速调整
电池供电设备(断网环境) 不支持离线估算时间 支持离线时继续校正本地时间
负载 占用资源稍高 更轻量,资源开销更小
简要来说:
● 服务器长期稳定运行场景 ➔ ntpd
● 云服务器、容器、移动设备、快速启动、抖动大网络 ➔ chronyd
现代系统(如 CentOS 7/8、RHEL 8/9、Ubuntu 20+)默认推荐使用chronyd代替ntpd了。
