Linux 时间同步 05 chrony时间同步

Linux 时间同步 05 chrony时间同步

实现NTP协议的的自由软件。可使系统时钟与NTP服务器,参考时钟(例如GPS接收器)以及使用手表和键盘的手动输入进行同步。还可以作为NTPv4(RFC 5905)服务器和对等体运行,为网络中的计算机提供时间服务。设计用于在各种条件下良好运行,包括间歇性和高度拥挤的网络连接,温度变化(计算机时钟对温度敏感),以及不能连续运行或在虚拟机上运行的系统。通过Internet同步的两台机器之间的典型精度在几毫秒之内,在LAN上,精度通常为几十微秒。利用硬件时间戳或硬件参考时钟,可实现亚微秒的精度。

chrony 的优势:

  • 更快的同步只需要数分钟而非数小时时间,从而最大程度减少了时间和频率误差,对于并非全天 24 小时运行的虚拟计算机而言非常有用。
  • 能够更好地响应时钟频率的快速变化,对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节能技术而言非常有用。
  • 在初始同步后,它不会停止时钟,以防对需要系统时间保持单调的应用程序造成影响。
  • 在应对临时非对称延迟时(例如,在大规模下载造成链接饱和时)提供了更好的稳定性。
  • 无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟。

chrony官网:https://chrony.tuxfamily.org
chrony官方文档:https://chrony.tuxfamily.org/documentation.html

chrony包介绍

两个主要程序:

  • chronyd:后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。
  • chronyc:命令行用户工具,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可在一台不同的远程计算机上工作。

服务unit文件: /usr/lib/systemd/system/chronyd.service

监听端口: 323/udp,123/udp

配置文件: /etc/chrony.conf

安装chrony

yum -y install chrony

配置与外部时间服务器进行时间同步的客户端主机

1、修改chronyd配置文件 /etc/chrony.conf

server 210.72.145.44 prefer      # 这是中国国家授时中心的IP
server ntp1.aliyun.com iburst    # iburst代表快速同步时间
server ntp2.aliyun.com iburst 

# allow 172.16.1.0/24            # 允许此IP地址段访问
allow 0.0.0.0/0                  # 允许所有主机访问
local stratum 10                 # 本地局域网同步时间服务器(第十层的局域网主机),打开注释即可。

2、启动chronyd服务,并设置为开机启动。

systemctl start chronyd
systemctl enable chronyd

配置其他客户端与以上客户端主机时间同步

其他客户端只需要与代表的客户端(即与服务器端时间同步的客户端主机)进行同步即可(即使用上面客户端IP地址:172.16.1.41进行时间同步)。

1、修改chronyd配置文件 /etc/chrony.conf

server 172.16.1.41 iburst    # 删掉其他的,添加要同步时间的客户端主机ip

2、启动chronyd服务,并设置为开机启动。

systemctl start chronyd
systemctl enable chronyd

chronyc命令

chronyc -a makestep      立即手工同步
        accheck          检查是否对特定主机可访问当前服务器
        activity         显示有多少NTP源在线/离线
        sources [-v]     显示当前时间源的同步信息
        sourcestats [-v] 显示当前时间源的同步统计信息
        add server       手动添加一台新的NTP服务器
        clients          报告已访问本服务器的客户端列表
        delete           手动移除NTP服务器或对等服务器
        settime          手动设置守护进程时间
        tracking         显示系统时间信息

/etc/chrony.conf 配置详解

  • server - 可以多次用于添加时钟服务器,必须以"server "格式使用。一般而言,你想添加多少服务器,就可以添加多少服务器
    • iburst 选项当服务器可达时,发送一个八个数据包而不是通常的一个数据包。 包间隔通常为2秒,可加快初始同步速度
  • driftfile - 根据实际时间计算出计算机增减时间的比率,将它记录到一个文件中,会在重启后为系统时钟作出补偿,甚至可能的话,会从时钟服务器获得较好的估值
  • rtcsync - 启用内核模式,系统时间每11分钟会拷贝到实时时钟(RTC)
  • allow / deny - 指定一台主机、子网,或者网络以允许或拒绝访问本服务器
  • cmdallow / cmddeny - 可以指定哪台主机可以通过chronyd使用控制命令
  • bindcmdaddress - 允许chronyd监听哪个接口来接收由chronyc执行的命令
  • makestep - 通常chronyd将根据需求通过减慢或加速时钟,使得系统逐步纠正所有时间偏差。在某些特定情况下,系统时钟可能会漂移过快,导致该调整过程消耗很长的时间来纠正系统时钟。该指令强制chronyd在调整期大于某个阀值时调整系统时钟
  • local stratum 10 - 即使server指令中时间服务器不可用,也允许将本地时间作为标准时间授时给其它客户端
posted @ 2021-01-02 17:10  原因与结果  阅读(1113)  评论(0编辑  收藏  举报