是一个多功能的 实现,类 系统上 客户端和服务器的替代品。它可以通过 服务或者类似 时钟接收器的硬件级参考时钟来同步系统时钟,具有更好的时钟准确度,并且对于那些间歇性互联网连接的系统很有帮助。 是免费开源的,并且支持 和 衍生版(比如:、)、 和 等。
有两个核心组件:一个是 守护进程,主要用于调整内核中运行的系统时间和时间服务器同步。它确定计算机增减时间的比率,并对此进行调整补偿。另一个是 ,它提供一个用户界面,用于监控性能并进行多样化的配置。 可以在 实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。
Chrony 和 NTPD 精度对比测试
我们可以从 的官方网站上可以看到与 各维度详细对比:

从其测试结果上看似乎是各维度性能都可以吊打 。因此 对自身的整体评价还是比较高的。
Chrony 相较于 NTPD 服务的优势
- 更快的同步只需要数分钟而非数小时时间,从而最大程度的减少时间和频率误差,这对于并非全天运行的台式计算机或系统而言非常有用。
 - 能够更好的响应时间频率的快速变化,这对于具备不稳定时钟的虚拟机或导致时钟频率反复变化的节能技术而言非常有用。
 - 在初始同步后,它并不会停止时钟,以防对需要系统时间保持单调的程序造成影响。
 - 在应对临时非对称延迟时,(例如:大规模下载造成连接饱和时)提供了更好的稳定性。
 - 无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟。
 
从 开始的最小发行版中都已经预装并开启了 。如果你的系统上没有安装 ,你也可以使用下面的命令轻松安装它。
安装完成后,你可以使用以下命令来检查 的状态。
如果要在开机引导时自动启用 的守护程序,你可以使用以下命令来实现。
的默认配置文件为 ,下面将介绍一些常用的配置项。
- server hostname [option]
 
指令用于指定要同步的 服务器。
其中的 是 服务器的地址,默认有四组官方的 服务器。你也可以修改为自定义的时间服务器,例如:。
是参数, 一般用此参数即可。该参数的含义是在头四次 请求以 或者更短的间隔,而不是以 指定的最小间隔,这样的设置可以让 启动时快速进行一次同步。
其他的参数有 默认值是 6,代表 。 默认值是 9,代表 。
- driftfile file
 
会根据实际时间计算修正值,并将补偿参数记录在该指令指定的文件里,默认为 。
与 或者 最大的区别就是, 的修正是连续的,通过减慢时钟或者加快时钟的方式连续的修正。而 或者 搭配 的校时工具是直接调整时间,会出现间断,并且相同时间可能会出现两次。因此,请放弃使用 、 来校时。
- makestep threshold limit
 
此指令使 根据需要通过加速或减慢时钟来逐渐校正任何时间偏移。例如:,就表示当头三次校时,如果时间相差 , 则跳跃式校时。
- rtcsync
 
启用内核时间与 时间同步 (自动写回硬件)。
- logdir
 
该参数用于指定 日志文件的路径。
- stratumweight
 
该参数用于设置当 从可用源中选择同步源时,每个层应该添加多少距离到同步距离。默认情况下设置为 0,让 在选择源时忽略源的层级。
基本上常用的参数就只有这几个了,通常默认的配置文件就可以直接使用了,下面我们来看一个修改完成后的配置文件内容。
- 检查 Chrony 是否实际同步
 
为了检查 是否实际同步,我们将使用它的命令行程序 来验证。
这里主要关注 这个参数, 说明最后两次更新的时间间隔是 。以上结果中的其它参数的含义分别是:
- 引用 - 计算机当前同步的引用 和名称。
 - - 连接参考时钟的计算机的跳数。
 - 参考时间 - 这是参考源的最后一次测量的 时间。
 - 系统时间 - 来自同步服务器的系统时钟延迟。
 - 最后一次偏移 - 上次时钟更新的估计偏移量。
 - 偏移 - 偏移值的长期平均值。
 - 频率 - 如果 没有纠正它,那么系统的时钟错误的速率。它以 (百万分率)提供。
 - 残余频率 - 残余频率表示参考源的测量值与当前使用的频率之间的差异。
 - 偏斜 - 估计频率的误差界限。
 - 根延迟 - 网络路径延迟到计算机正在同步的层计算机的总和。
 - 跳跃状态 - 这是跳跃状态,可以具有以下值之一:正常、插入秒、删除秒或不同步。
 
- 显示所有 NTP 源服务器的信息
 
这里需要注意的是第二个参数, 代表当前同步的源, 代表通过组合算法计算后排除的源。
- 查看 NTP 服务器的在线和离线状态
 
- 查看 Chrony 服务的日志
 
- 检查 NTP 访问是否对特定主机可用
 
- 该命令会显示有多少 NTP 源在线/离线
 
- 手动添加一台新的 NTP 服务器
 
- 在客户端报告已访问到服务器
 
- 手动移除 NTP 服务器或对等服务器
 
- 手动设置守护进程时间
 
- 校准时间服务器,显示系统时间信息
 
- 检查 NTP 访问是否对特定主机可用
 
- 查看时间同步源
 
- 查看时间同步源状态
 
客户端程序的功能非常强大,远不止上面介绍这些。不但支持命令行模式,而且还支持交互模式。如果你想了解更多 客户端程序的使用方法,可以使用 命令获取更多帮助。
要将 作为一个 服务器,方法很简单。
首先,你需要修改 文件,并添加以下配置即可。
其次,重启 服务,以加载新的配置。
服务启动成功后,会监听以下两个端口。
- 端口 为标准的 监听端口,如果要对外提供 功能,必须开启防火墙和监听地址为外部可访问地址。如需修改,你可以通过配置 参数来修改。
 - 端口 为默认的管理端口。如需修改,你可以通过配置 参数来修改。
 
最后,修改防火墙设置,以放行对 的请求,这里以 的 为例。
一些可用的公共 NTP 服务
公共 服务网上很多,但国内环境下最好用的应该还属阿里云的公网 服务。

一些时间相关的概念介绍
- GMT、UTC、CST、DST 时间
 
- 整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时 ()。
 - 格林威治标准时间 () 指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。( 与 时间基本相同)
 - 中国标准时间 ()
 - + 8 = + 8 =
 - 夏令时 () 指在夏天太阳升起的比较早时,将时间拨快一小时,以提早日光的使用。(中国不使用)
 
- 硬件时间和系统时间
 
- 硬件时间: 或 时间,一般在主板上靠电池供电,服务器断电后也会继续运行。仅保存日期时间数值,无法保存时区和夏令时设置。
 - 系统时间:一般在服务器启动时复制 时间,之后独立运行,保存了时间、时区和夏令时设置。
 
一些设置时区和时间的命令
- 查看当前系统时区
 
- 设置当前系统时区
 
如果你当前的时区不正确,请按照以下操作设置。
- 显示系统的当前时间和日期
 
- 修改当前日期时间
 
- 设置硬件时间
 
- 启用或者禁止 NTP 时间同步
 
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rfx/14949.html