linux中chrony服务器的使用

article/2025/10/5 2:05:24

1. chrony的优势

Chrony是NTP的另一种实现,与ntpd不同,它可以更快且更准确地同步系统时钟,最大程度的减少时间和频率误差。

chrony相比ntp的优势:

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

2. chrony的实现

Chrony运行于UDP323端口,ntp运行于UDP123端口,使用chrony服务器可以同时为chrony客户端和ntp客户端提供服务。

Chrony包括两个核心组件:

1、chronyd:一个后台运行的守护进程,用于调整内核中运行的系统时钟与NTP服务器同步。它确定服务器增减时间的比率,并对此进行调整补偿,即是服务器端进程也可以是客户端进程;

2、chronyc:提供用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的服务器上工作,也可以在一台不同的远程服务器上工作。

3.安装配置 

#rpm -qa | grep chrony  //查看是否安装
#yum -y install chrony  //安装
#systemctl enable chronyd //开机自启动
#systemctl start chronyd  

 4.文件位置

/etc/chrony.conf                  <==chrony的主配置文件
/usr/lib/systemd/system/chronyd.service      <==服务启动文件
/usr/bin/chronyc               <==chronyc工具
/usr/sbin/chronyd             <==主程序文件
/var/log/chrony   <==日志文件

5.chrony命令


查看 ntp_servers
chronyc sources -v
查看 ntp_servers 状态
chronyc sourcestats -v
查看 ntp_servers 是否在线
chronyc activity -v
查看 ntp 详细信息
chronyc tracking -v
强制同步下系统时钟
chronyc -a makestep

6.详解字段

M这表示信号源的模式。^表示服务器,=表示对等方,#表示本地连接的参考时钟。
S此列指示源的状态。
•	* 表示chronyd当前同步到的源。
•	+ 表示可接受的信号源,与选定的信号源组合在一起。
•	- 表示被合并算法排除的可接受源。
•	? 指示已失去连接性或其数据包未通过所有测试的源。它也显示在启动时,直到从中至少收集了3个样本为止。
•	x 表示chronyd认为是虚假行情的时钟(即,其时间与大多数其他来源不一致)。
•	〜 表示时间似乎具有太多可变性的来源。
Name/IP address
这显示了源的名称或IP地址,或参考时钟的参考ID。
Stratum
这显示了来源的层,如其最近收到的样本中所报告的那样。层1表示一台具有本地连接的参考时钟的计算机。与第1层计算机同步的计算机位于第2层。与第2层计算机同步的计算机位于第3层,依此类推。
Poll
这显示轮询源的速率,以秒为单位的时间间隔的以2为底的对数。因此,值为6表示每64秒进行一次测量。chronyd会根据当前情况自动更改轮询速率。
Reach
这显示了源的可达性寄存器以八进制数字打印。寄存器有8位,并在每个从源接收或丢失的数据包上更新。值377表示从最后八次传输中收到了对所有用户的有效答复。
LastRx
此列显示多长时间前从来源接收到了最后一个好的样本(在下一列中显示)。未通过某些测试的测量将被忽略。通常以秒为单位。字母m,h,d或y表示分钟,小时,天或年。
Last sample
此列显示上次测量时本地时钟与源之间的偏移。方括号中的数字表示实际测得的偏移量。可以用ns(表示纳秒),us (表示微秒),ms(表示毫秒)或s(表示秒)作为后缀。方括号左侧的数字表示原始测量值,已调整为允许此后施加于本地时钟的任何摆度。
+/-指示器后面的数字表示测量中的误差范围。正偏移表示本地时钟位于源时钟之前。

 7.例题
chrony服务部署:两台机器
       a:    第一台机器从阿里云同步时间
             第二台机器从第一台机器同步时间
       b:   第一台服务器使用系统时间作为第二台服务器的时钟源, 第一台服务器层级设置为6,            

温馨提示:保证两台机器的网络通畅,防火墙关闭,selinux为Permissive状态,允许的网段正确

a题:

第一台机器的配置文件 

[root@xiezhehuiIS ~]# vim /etc/chrony.conf # Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#pool 2.rhel.pool.ntp.org iburst
server ntp.aliyun.com iburst   //阿里云授时服务器
# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3# Enable kernel synchronization of the real-time clock (RTC).
rtcsync# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2# Allow NTP client access from local network.
allow 192.168.0.0/16  //允许的网段# Serve time even if not synchronized to a time source.
local stratum 10     //设置层数# Specify file containing keys for NTP authentication.
keyfile /etc/chrony.keys
"/etc/chrony.conf" 38L, 1110C

第二台机器的配置文件

[root@xiezhehui ~]# vim /etc/chrony.conf # Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#pool 2.rhel.pool.ntp.org iburst
server 192.168.31.142 iburst  //设第一台机器的ip为服务端
# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3# Enable kernel synchronization of the real-time clock (RTC).
rtcsync# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2# Allow NTP client access from local network.
allow 192.168.0.0/16  # Serve time even if not synchronized to a time source.
local stratum 10# Specify file containing keys for NTP authentication.
keyfile /etc/chrony.keys
"/etc/chrony.conf" 38L, 1110C

重启服务

[root@xiezhehui ~]# systemctl restart chronyd.service

查看

[root@xiezhehui ~]# chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 192.168.31.142                3   6   377    45   +660us[ +725us] +/-   32ms
[root@xiezhehui ~]# timedatectl Local time: 二 2023-01-03 20:04:39 CSTUniversal time: 二 2023-01-03 12:04:39 UTCRTC time: 二 2023-01-03 12:04:39Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yesNTP service: activeRTC in local TZ: no
[root@xiezhehui ~]# chronyc tracking 
Reference ID    : C0A81F8E (192.168.31.142)  //可以看到授时服务器为第一台机器
Stratum         : 4
Ref time (UTC)  : Tue Jan 03 12:04:11 2023
System time     : 0.000234063 seconds fast of NTP time
Last offset     : +0.000199592 seconds
RMS offset      : 0.001441084 seconds
Frequency       : 1.294 ppm fast
Residual freq   : +0.063 ppm
Skew            : 1.751 ppm
Root delay      : 0.052681766 seconds
Root dispersion : 0.003614831 seconds
Update interval : 64.5 seconds
Leap status     : Normal

b题:

第一台机器配置文件

[root@xiezhehuiIS ~]# vim /etc/chrony.conf # Please consider joining the pool (http://www.pool.ntp.org/join.html).
#pool 2.rhel.pool.ntp.org iburst
#server ntp.aliyun.com iburst  //此时没有设置授时服务器
# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3# Enable kernel synchronization of the real-time clock (RTC).
rtcsync# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2# Allow NTP client access from local network.
allow 192.168.0.0/16# Serve time even if not synchronized to a time source.
local stratum 6# Specify file containing keys for NTP authentication.
keyfile /etc/chrony.keys

第二台机器配置文件同上

查看

[root@xiezhehui ~]# chronyc tracking 
Reference ID    : C0A81F8E (192.168.31.142)  //此时第一台机器将自己的系统时间授予第二台机器
Stratum         : 7      //第一台机器的层数为6,则来到第二台就+1
Ref time (UTC)  : Tue Jan 03 12:11:22 2023
System time     : 0.000000261 seconds slow of NTP time
Last offset     : -0.000020905 seconds
RMS offset      : 0.000020905 seconds
Frequency       : 4.751 ppm fast
Residual freq   : -3.062 ppm
Skew            : 0.990 ppm
Root delay      : 0.000228690 seconds
Root dispersion : 0.000025113 seconds
Update interval : 2.0 seconds
Leap status     : Normal


http://chatgpt.dhexx.cn/article/HYEN7sZl.shtml

相关文章

chrony

chrony简介 Chrony是网络时间协议&#xff08;NTP&#xff09;的实现。您可以使用Chrony&#xff1a; 使系统时钟与NTP服务器同步&#xff0c; 使系统时钟与参考时钟&#xff08;例如GPS接收器&#xff09;同步&#xff0c;要将系统时钟与手动时间输入同步&#xff0c; 作为N…

再见 NTP,是时候拥抱下一代时间同步服务 Chrony 了!

Chrony 是一个多功能的 NTP (Network Time Protocol) 实现&#xff0c;类 Unix 系统上 NTP 客户端和服务器的替代品。它可以通过 NTP 服务或者类似 GPS 时钟接收器的硬件级参考时钟来同步系统时钟&#xff0c;具有更好的时钟准确度&#xff0c;并且对于那些间歇性互联网连接的系…

chrony 时间同步详解

一、 简介 Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器&#xff08;NTP&#xff09;同步&#xff0c;因此让你的计算机保持精确的时间&#xff0c;Chrony也可以作为服务端软件为其他计算机提供时间同步服务。 Chr…

Linux中的Chrony时间同步服务

目录 一、时间同步 1.概念 2.时间同步在运维工作中的作用 3.时间同步完成方法 &#xff08;1&#xff09;NTP时间服务&#xff08;centos 6 &#xff09; &#xff08;2&#xff09;Chrony时间服务 二、Chrony时间服务 1.Chrony介绍 2.Chrony的优点 三、Chrony安装 …

配置chrony时间同步服务

一、chrony简介 chrony 的优势&#xff1a; 更快的同步&#xff0c;从而最大程度减少了时间和频率误差&#xff0c;对于并非全天 24 小时运行的虚拟计算机而言非常有用 能够更好地响应时钟频率的快速变化&#xff0c;对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节能技…

乐优商城项目

目录 3.4.创建父工程 3.5.创建EurekaServer 3.5.1.创建工程 3.5.2.添加依赖 3.5.3.编写启动类 3.5.4.配置文件 3.6.创建Zuul网关 3.6.1.创建工程 3.6.2.添加依赖 3.6.3.编写启动类 3.6.4.配置文件 3.6.5.项目结构 3.7.创建商品微服务 3.7.1.微服务的结构 3.7.5.…

Java之Spring Data Elasticsearch一篇文章从入门到实战

Elasticsearch提供的Java客户端有一些不太方便的地方&#xff1a; 很多地方需要拼接Json字符串&#xff0c;在java中拼接字符串有多恐怖你应该懂的需要自己把对象序列化为json存储查询到结果也需要自己反序列化为对象 因此&#xff0c;我们这里就不讲解原生的Elasticsearch客…

【Elasticsearch】整合Spring Data Elasticsearch

整合Spring Data Elasticsearch 如何查看官方文档&#xff08;了解&#xff09; 官方文档&#xff1a;Java High Level REST Client | Java REST Client [6.8] | Elastic 下面是获得文档的方式&#xff08;可以不用看&#xff09;&#xff1a; 步骤一&#xff1a;查询“文档…

ElasticSearch高级篇

注&#xff1a;该文档是网上资源&#xff0c;该文档通俗易懂&#xff0c;我已经按照文档学习完了&#xff0c;后期我会加入自己的实践内容。 0.学习目标 独立安装Elasticsearch会使用Rest的API操作索引会使用Rest的API查询数据会使用Rest的API聚合数据掌握Spring Data Elastics…

自己挖坑自己填 spring-data-elasticsearch 4.0.0.M4 简单实践

前几天安装了elasticsearch7.6.1,今天准备实践下spring-data-elasticsearch,没想到4.0改动大资料少,全靠官方文档撑着 文章目录 搭建环境编写yml配置创建实体类 基于Spring Data的CRUD直接从方法名称派生查询自定义的查询 ElasticsearchRestTemplate的使用indexOperations 索引…

Elasticsearch集群,java操作es

今日内容 集群和分布式Elasticsearch集群Elasticsearch客户端 java代码取操作ES有三种方式 1、es提供的原生的操作方式 在es 8.0后会移除 2、es提供的rest风格的操作方式 3、SpringDataElasticSearch的方式 第一章 集群和分布式 集群和分布式的概念有联系也有区别&#xff0c;我…

数据结构(Java)-排序算法-插入排序

插入排序法思想: 插入排序的基本思想是&#xff1a;把n个待排序的元素看成为一个有序表和一个无序表&#xff0c;开始时有序表中只包含一个元素&#xff0c;无序表中包含有n-1个元素&#xff0c;排序过程中每次从无序表中取出第一个元素&#xff0c;把它依次与有序表元素进行比…

ES基础篇-11-Spring提供的elasticsearch组件:Spring Data Elasticsearch

1. 简介 1.1.什么是SpringDataElasticsearch SpringDataElasticsearch&#xff08;以后简称SDE&#xff09;是Spring Data项目下的一个子模块。 查看 Spring Data的官网&#xff1a;http://projects.spring.io/spring-data/ Spring Data 的使命是给各种数据访问提供统一的编…

91-Lucene+ElasticSeach核心技术

LuceneElasticSeach 什么是全文检索&#xff1a; 数据分类&#xff1a; 我们生活中的数据总体分为两种&#xff1a;结构化数据和非结构化数据 结构化数据&#xff1a;指具有固定格式或有限长度的数据&#xff0c;如数据库&#xff0c;元数据等 非结构化数据&#xff1a;指…

SpringBoot集成Elasticseach

目录 一、Elasticseach介绍 1.简单介绍 2.对比关系&#xff1a; 3.详细说明&#xff1a; 4.查出数据的解释 二、SpringBoot集成Elasticseach 1.引入依赖 2.添加配置 3.创建pojo类与索引对应 4.SpringData封装了基础的增删改查&#xff0c;自定义增删改查 5.测试方法-…

Windows系统下载安装MinGW(包括32位和64位)

一、MinGW简介 MinGW是是将GCC编译器和GNU Binutils移植到Win32平台下的产物&#xff0c;包括一系列头文件&#xff08;Win32API&#xff09;、库和可执行文件。MinGW是从Cygwin&#xff08;1.3.3版&#xff09;基础上发展而来。GCC支持的语言大多在MinGW也受支持&#xff0c;其…

MySQL寻找特定字符后的字符串

“日边清梦断,镜里朱颜改” 在操作数据库的某些情况下,我们需要对其中一字段的最后几个字做修改,如下图,把老师改为学生 我找了半天,好像没找到mysql中有合适的函数,能找到最后一个/符号并且修改后面的字符串.需要用好几个函数嵌套使用.如下: select 处理前 as status,org…

支付宝支付功能的实现

支付宝支付功能实现 一.环境准备 二.配置沙箱环境 1.浏览器搜索 支付宝开放平台 2.找到开发服务&#xff0c;选择沙箱 3.根据文档提示&#xff0c;一步步配置 4.配置完成后的样子 5.下载好支付宝手机开放平台助手&#xff0c;可以获取应用私钥 **注意&#xff1a;**应用公…

针对Spring/Gradle启动失败的一些通用解决方案

文章目录 0 前言1 更改Gradle JVM的Java JDK1.1 执行JUnit测试时&#xff0c;Gradle报错 0 前言 当你对Spring/Gradle启动失败的错误信息一筹莫展时&#xff0c;不妨试试以下这些通用的解决方案 1 更改Gradle JVM的Java JDK Settings -> Build, Execution, Deployment -&…

13123

111 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个注脚注释也是必不…