Chrony与NTP-程序员宅基地

技术标签: Linux  php  嵌入式硬件  单片机  

引言

chrony是网络时间协议(NTP)的另一种实现,与网络时间协议后台程序(ntpd)不同,它可以更快地且更准确地同步系统时钟,请注意,ntpd仍然包含其中以供需要运行NTP服务的客户使用。

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

服务unit文件: /usr/lib/systemd/system/chronyd.service
监听端口: 323/udp,123/udp
配置文件: /etc/chrony.conf

配置环境

  • 关闭firewalld防火墙
  • 关闭SELinux
  • chrony与ntp都是时间同步软件,两个软件不能够同时开启,会出现时间冲突

NTP/Chrony对比

使用chronyd服务平滑同步时间的方式要优于crontab + ntpdate,因为ntpdate同步时间会造成时间的跳跃,对一些依赖时间的程序和服务会造成影响,例如:sleep、timer等,且chronyd服务可以在修正时间的过程中同时修正CPU tick。

chrony的优势包括以下几点

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

ntp能做,chrony做不到的

  • ntp支持RFC 5905的所有操作模式,包括广播、多播和manycast服务器/客户端。然而,广播和多播模式本质上不如普通的服务器/客户机模式准确和安全(即使有身份验证),通常应该避免。
  • ntp支持自动密钥协议(RFC 5906)来使用公钥加密对服务器进行身份验证。请注意,该协议已被证明是不安全的,并且已被NTS(RFC 8915)淘汰。
  • ntp已经被移植到更多的操作系统中。
  • ntp包含大量用于各种硬件参考时钟的驱动程序。chrony需要其他程序(如gpsd或ntp refclock)通过SHM或SOCK接口提供参考时间。

chrony可以比ntp做得更好

  • chrony可以在访问时间参考是断断续续的环境中有效地执行。ntp需要定期对引用进行轮询才能正常工作。
  • chrony通常可以更快地同步时钟,并具有更好的时间精度。
  • chrony快速适应时钟速率的突然变化(例如,由于晶体振荡器的温度变化)。ntp可能需要很长时间才能重新安定下来。
  • chrony即使在网络拥塞时间较长的情况下也能表现良好。
  • 默认配置中的chrony从不占用时间来不打乱其他正在运行的程序。ntp也可以配置为从不步进时间,但是在这种情况下,它必须使用不同的方法来调整时钟(daemon循环而不是内核规程),这可能会对时钟的准确性产生负面影响。
  • chrony可以在更大的范围内调整时钟的速率,这使得它甚至可以在时钟中断或不稳定的机器上运行(例如在某些虚拟机中)。
  • chrony更小,占用的内存更少,只有在需要时才会唤醒CPU,这样更省电。

chrony可以做ntp做不到的事情

  • chrony支持网络时间安全(NTS)认证机制。
  • chrony在Linux上支持硬件时间戳,这允许在本地网络中进行非常稳定和准确的同步。
  • chrony为独立网络提供支持,无论时间校正的唯一方法是手动输入(例如,由管理员查看时钟)。chrony可以查看在不同更新时更正的错误,计算出计算机获得或丢失时间的速率,并使用此估计值来随后调整计算机时钟。
  • chrony支持计算实时时钟的增益或丢失率,即在计算机关闭时保持时间的时钟。当系统引导时,它可以使用这些数据从实时时钟的修正版本设置系统时间。到目前为止,这些实时时钟工具仅在Linux上可用。

chrony服务安装的文件

# rpm -ql chrony
/etc/NetworkManager/dispatcher.d/20-chrony
/etc/chrony.conf        #chrony的主配置文件
/etc/chrony.keys
/etc/dhcp/dhclient.d/chrony.sh
/etc/logrotate.d/chrony
/etc/sysconfig/chronyd
/usr/bin/chronyc        #chronyc是一个命令行交互式接口程序,可用于监视chronyd的性能,并在运行时更改各种操作参数。
/usr/lib/systemd/ntp-units.d/50-chronyd.list
/usr/lib/systemd/system/[email protected]
/usr/lib/systemd/system/[email protected]
/usr/lib/systemd/system/chrony-wait.service
/usr/lib/systemd/system/chronyd.service      #CentOS 7.x版本对应的unit file
/usr/libexec/chrony-helper
/usr/sbin/chronyd              #chronyd是一个可以在启动时启动的守护程序,它既可以充当服务端进程也可以充当服务端进程
/usr/share/doc/chrony-3.4
/usr/share/doc/chrony-3.4/COPYING
/usr/share/doc/chrony-3.4/FAQ
/usr/share/doc/chrony-3.4/NEWS
/usr/share/doc/chrony-3.4/README
/usr/share/man/man1/chronyc.1.gz
/usr/share/man/man5/chrony.conf.5.gz
/usr/share/man/man8/chronyd.8.gz
/var/lib/chrony
/var/lib/chrony/drift
/var/lib/chrony/rtc
/var/log/chrony

Chrony配置chrony.conf

Pool 10.210.116.60                       #此指令的语法与server指令的语法类似,只是它用于指定NTP服务器池,而不是单个NTP服务器。池名称需要解析为多个地址,这些地址可能会随着时间的推移而改变。
server 0.centos.pool.ntp.org iburst          #server可用于时钟服务器;iburst,当服务器可达时,发送一个八个数据包而不是通常的一个数据包,包间隔通常为2秒,可加快初始同步速度; iburst 是参数, 一般用此参数即可。该参数的含义是在头四次 NTP 请求以 2s 或者更短的间隔,而不是以 minpoll x 指定的最小间隔,这样的设置可以让 chronyd 启动时快速进行一次同步。
其他的参数有 minpoll x 默认值是 6,代表 64s。maxpoll x 默认值是 9,代表 512s。
server 1.centos.pool.ntp.org iburst          #N.centos.pool.ntp.org:这个是地址池,是ntp服务的虚拟集群,这里可以写成集群地址,也可以写指定的某服务器
peer 10.210.116.160     #同ntp, 对等体模式
driftfile /var/lib/chrony/drift              #根据实际时间计算出计算机增减时间的比率,讲它记录到一个文件中,会在重启后为系统时钟做出补偿
makestep 1.0 3                         #当头三次校时,如果时间相差 1.0s, 则跳跃式校时
rtcsync                                #启用内核模式,系统时钟每11分钟会拷贝到实时时钟(RTC)
#allow 192.168.0.0/16                   #allow/deny:仅允许/拒绝192.168.2.0/24网络的主机可以访问此时间服务器 deny all拒绝所有客户端
#local stratum 10                       #即使server指令中时间服务器不可用,也允许讲本地时间做为标准时间授时给其它客户端
stratumweight 0.05                      # 让chronyd在选择源时忽略源的层级
#hwtimestamp *                        #通过使用 hwtimestamp 指令启用硬件时间戳
#minsources 2                          #增加调整所需的可选择源的最小数量
#keyfile /etc/chrony.keys                 # 指定包含NTP验证密钥的文件。
logdir /var/log/chrony                   # 指定日志文件的目录。
logchange 0.5                          # 如果时钟调整大于0.5秒,则向系统日志发送消息
#log measurements statistics tracking      #选择日志文件要记录的信息

常用chrony命令

chronyc activity - 显示有关活跃和未活跃时钟源的信息。
chronyc add server - 添加一个新的 NTP 服务器。
chronyc delete server - 移除一个现存的 NTP 服务器。
chronyc online - 使 chronyd 弃用离线模式并立即开始连接到时钟源。
chronyc offline - 使 chronyd 进入离线模式而不连接到时钟源。
检查并配置 NTP 服务器:
chronyc serverstats - 显示 NTP 服务器统计信息。
chronyc clients - 列出以 chronyd 作为时间源的客户端。
用于调试和诊断的命令:
chronyc ntpdata - 显示关于NTP服务器回应的更多信息。
chronyc sourcestats - 查看已收集的统计数据。
查看和设置系统时间信息:
chronyc rtcdata - 显示实时时钟(RTC)的信息,如果 chronyd 正在控制它。
chronyc settime - 手动设置系统时间。
要使用 chronyc 命令,通常无需加 sudo,但如果要修改 chronyd 的配置或执行某些操作(如重设系统时间),可能需要管理员权限。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_72610956/article/details/137372761

智能推荐

适合入门的8个趣味机器学习项目-程序员宅基地

文章浏览阅读86次。首发地址:https://yq.aliyun.com/articles/221708谈到机器学习,相信很多除学者都是通过斯坦福大学吴恩达老师的公开课《Machine Learning》开始具体的接触机器学习这个领域,但是学完之后又不知道自己的掌握情况,缺少一些实际的项目操作。对于机器学习的相关竞赛挑战,有些项目的门槛有些高,参加后难以具体的实现,因此造..._scrath五子棋下载

oracle 12c avg,Oracle 12c新特性系列专题-安徽Oracle授权认证中心-程序员宅基地

文章浏览阅读83次。原标题:Oracle 12c新特性系列专题-安徽Oracle授权认证中心 随着Oracle database 12c的普及,数据库管理员 (DBA) 的角色也随之发生了转变。 Oracle 12c数据库对 DBA 而言是下一代数据管理。它让 DBA 可以摆脱单调的日常管理任务,能够专注于如何从数据中获取更多价值。未来我们会推出基于Oracle12c的技术文章,帮助DBA尽快掌握新一代数据库的新特性..._ilm add policy row store compress advanced row after

第七周项目三(负数把正数赶出队列)-程序员宅基地

文章浏览阅读150次。问题及代码:*Copyright(c)2016,烟台大学计算机与控制工程学院 *All right reserved. *文件名称:负数把正数赶出队列.cpp *作者:张冰 *完成日期;2016年10月09日 *版本号;v1.0 * *问题描述: 设从键盘输入一整数序列a1,a2,…an,试编程实现: 当ai>0时,ai进队,当ai<0时,将队首元素出队,当ai

Linux命名空间学习教程(二) IPC-程序员宅基地

文章浏览阅读150次。本文讲的是Linux命名空间学习教程(二) IPC,【编者的话】Docker核心解决的问题是利用LXC来实现类似VM的功能,从而利用更加节省的硬件资源提供给用户更多的计算资源。而 LXC所实现的隔离性主要是来自内核的命名空间, 其中pid、net、ipc、mnt、uts 等命名空间将容器的进程、网络、消息、文件系统和hostname 隔离开。本文是Li..._主机的 ipc 命名空间

adb强制安装apk_adb绕过安装程序强制安装app-程序员宅基地

文章浏览阅读2w次,点赞5次,收藏7次。在设备上强制安装apk。在app已有的情况下使用-r参数在app版本低于现有版本使用-d参数命令adb install -r -d xxx.apk_adb绕过安装程序强制安装app

随便推点

STM32F407 越界问题定位_stm32flash地址越界怎么解决-程序员宅基地

文章浏览阅读290次。如果是越界进入硬件错误中断,MSP 或者 PSP 保存错误地址,跳转前会保存上一次执行的地址,lr 寄存器会保存子函数的地址,所以如果在 HardFault_CallBack 中直接调用 C 语言函数接口会间接修改了 lr,为了解决这个问题,直接绕过 lr 的 C 语言代码,用汇编语言提取 lr 寄存器再决定后面的操作。由于 STM32 加入了 FreeRTOS 操作系统,可能导致无法准确定位,仅供参考(日常编程需要考虑程序的健壮性,特别是对数组的访问,非常容易出现越界的情况)。_stm32flash地址越界怎么解决

利用SQL注入上传木马拿webshell-程序员宅基地

文章浏览阅读1.8k次。学到了一种操作,说实话,我从来没想过还能这样正常情况下,为了管理方便,许多管理员都会开放MySQL数据库的secure_file_priv,这时就可以导入或者导出数据当我如图输入时,就会在D盘创建一个名为123456.php,内容为<?php phpinfo();?>的文件我们可以利用这一点运用到SQL注入中,从拿下数据库到拿下目标的服务器比如我们在使用联合查询注入,正常是这样的语句http://xxx?id=-1 union select 1,'你想知道的字段的内容或查询语句',

Html CSS的三种链接方式_html链接css代码-程序员宅基地

文章浏览阅读2.9w次,点赞12次,收藏63次。感谢原文:https://blog.csdn.net/abc5382334/article/details/24260817感谢原文:https://blog.csdn.net/jiaqingge/article/details/52564348Html CSS的三种链接方式css文本的链接方式有三种:分别是内联定义、链入内部css、和链入外部css1.代码为:<html>..._html链接css代码

玩游戏哪款蓝牙耳机好?2021十大高音质游戏蓝牙耳机排名_适合游戏与运动的高音质蓝牙耳机-程序员宅基地

文章浏览阅读625次。近几年,蓝牙耳机市场发展迅速,越来越多的消费者希望抛弃线缆,更自由地听音乐,对于运动人士来说,蓝牙耳机的便携性显得尤为重要。但目前市面上的大多数蓝牙耳机实际上都是“有线”的,运动过程中产生的听诊器效应会严重影响听歌的感受。而在“真无线”耳机领域,除了苹果的AirPods外,可供选择的产品并不多,而AirPods又不是为运动场景打造的,防水能力非常差。那么对于喜欢运动又想要“自由”的朋友来说,有没有一款产品能够满足他们的需求呢?下面这十款小编专门为大家搜罗的蓝牙耳机或许就能找到适合的!网红击音F1_适合游戏与运动的高音质蓝牙耳机

iOS 17 测试版中 SwiftUI 视图首次显示时状态的改变导致动画“副作用”的解决方法-程序员宅基地

文章浏览阅读1k次,点赞6次,收藏7次。在本篇博文中,我们在 iOS 17 beta 4(SwiftUI 5.0)测试版中发现了 SwiftUI 视图首次显示时状态的改变会导致动画“副作用”的问题,并提出多种解决方案。

Flutter 自定义 轮播图的实现_flutter pageview轮播图 site:csdn.net-程序员宅基地

文章浏览阅读1.9k次。  在 上篇文章–Flutter 实现支持上拉加载和下拉刷新的 ListView 中,我们最终实现的效果是在 listView 上面留下了一段空白,本意是用来加载轮播图的,于是今天就开发了一下,希望能给各位灵感。一 、效果如下说一下大体思路   其实图片展示是用的 PageView ,然后,下面的指示器 是用的 TabPageSelector ,当然整体是用 Stack 包裹起来的。1、..._flutter pageview轮播图 site:csdn.net

推荐文章

热门文章

相关标签