GUN/Linux时间同步服务之chrony配置管理

风险告知

  • 本人及本篇博文不为任何人及任何行为的任何风险承担责任,图解仅供参考,请悉知!
  • 相关配置操作是在一个全新的演示环境下进行的,演示环境中没有任何有价值的数据,但这并不代表摆在你面前的环境也是如此。
  • 生产环境全新安装后(业务上线前)或者自行测试都可放心参考该图解内容,该教程是完全站在生产业务角度去做的建议配置(业务厂商有特殊要求的除外)。
  • 图解内容可能存在一些自动执行的shell脚本,所以,一定要全面评估并且备份有价值数据后再进行。因为任何操作都是有丢失数据风险的可能,比如说误操作覆盖或移动有价值数据进而影响到生产业务都无异于删库,无论是你是否即将跑路!
  • 删除跑路的方式千万条,不仅仅有你最熟悉的rm rf /*,有时候一个空格都能要了你的小(老)命,小心是的万年船,最好的归宿是阖家欢乐,是团团圆圆,是你好我好大家好,是博主真好!

废话翩翩

解释下为什么要码这么多文字说明,包括后续的内容中也是如此,注释说明真的多。因为我觉得我们在学习过程过应该有点儿逼数,那就是学习一定不仅仅为了学会某一条命令,某一个技巧......更重要的是尽可能的理解这件事儿的来龙去脉、因果关系,最好能形成自己的思路。图解内容完全手打,所以难免有所纰漏,欢迎评论区指正,同时内容处于一个不断(随时)更新的状态,以最新的内容为准!

开拓视野

时间同步服务器更准确来讲就应该叫时间戳服务器,因为所有的时间戳服务器都是以1970年1月1日00:00:00协调世界时(UTC)为基础定义的时间,时间戳服务器一般是从地球同步卫星上获取一个精确时间,像我们国家就有一个官方的授时中心(中国科学院国家授时中心),位于陕西省西安市临潼区。我们从时间戳服务器上获取的并不是一个某某年几时几分几秒的时间,而是一个相对于基础定义时间之间的一个差值,称为时间戳,然后我们在根据本地操作系统所处的时区配合时间戳做本地时间调整。相关的时间同步协议有NTP、SNTP、PTP等,相关的时间同步应用有NTP、Chrony、Windows 时间服务 (W32Time)等等。

食用范围

目前测试结果来讲适用于几乎所有GNU/Linux发行版。

避坑指南

0、所有配置都是在操作系统安装时时区配置正确的情况下进行的,如果时区不正确的情况,请查阅相关资料进行修改。

1、服务端默认使用UDP端口123,在有防火墙等安全设备时,需要放通。

2、服务端默认不允许任何客户端接入该服务,需要修改使用参数allow all或者更细粒度控制

3、服务端如果局域网内,或者某个独立集群内只需要保持内部时间一致,对精确度要求不高的情况下,可以自定搭建纯纯的本地时间戳服务器,妥妥以以本地时间为准,这时候需要使用参数local stratum 10,参数中的10代表层级,是可以修改的,不过习惯上一般保持默认。

4、客户端不需要特殊配置,只需要配置上游时间戳服务器地址即可。

5、服务端和客户端安装完成后,默认是开机自动启动,但是当前是停止状态,不重启情况下需要手动开启服务,配置文件有任何修改的情况下都需要重启服务生效。

言归正传

chrony是网络时间协议(NTP)的通用实现。它可以将系统时钟与NTP服务器、参考时钟(如GPS接收器)以及使用手表和键盘的手动输入同步。它还可以作为NTPv4(RFC 5905)服务器和对等端操作,为网络中的其他计算机提供时间服务。 它设计用于在各种条件下运行良好,包括间歇性网络连接、严重拥塞的网络、不断变化的温度(普通计算机时钟对温度敏感)以及无法连续运行或在虚拟机上运行的系统。 通过互联网同步的两台机器之间的典型精度在几毫秒内;在局域网上,精度通常以几十微秒为单位。利用硬件时间戳或硬件参考时钟,亚微秒精度是可能的。 chrony中包含两个程序,chronyd是一个可以在启动时启动的守护进程,chronyc是一个命令行界面程序,可以用来监视chronyd的性能,并在其运行时更改各种操作参数。

# 使用yum install chrony命令安装chrony软件包
[root@centos85 ~]# yum install chrony
local                                                                                                                                                                           3.8 MB/s | 3.9 kB     00:00
依赖关系解决。
================================================================================================================================================================================================================软件包                                              架构                                             版本                                                仓库                                             大小
================================================================================================================================================================================================================
安装:chrony                                              x86_64                                           4.1-1.el8                                           local                                           327 k
安装弱的依赖:timedatex                                           x86_64                                           0.5-3.el8                                           local                                            32 k事务概要
================================================================================================================================================================================================================
安装  2 软件包总计:359 k
安装大小:710 k
确定吗?[y/N]: y
下载软件包:
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务准备中  :                                                                                                                                                                                                 1/1安装    : timedatex-0.5-3.el8.x86_64                                                                                                                                                                      1/2运行脚本: timedatex-0.5-3.el8.x86_64                                                                                                                                                                      1/2运行脚本: chrony-4.1-1.el8.x86_64                                                                                                                                                                         2/2安装    : chrony-4.1-1.el8.x86_64                                                                                                                                                                         2/2运行脚本: chrony-4.1-1.el8.x86_64                                                                                                                                                                         2/2验证    : chrony-4.1-1.el8.x86_64                                                                                                                                                                         1/2验证    : timedatex-0.5-3.el8.x86_64                                                                                                                                                                      2/2已安装:chrony-4.1-1.el8.x86_64                                                                               timedatex-0.5-3.el8.x86_64完毕!
# chronyd服务安装完成后默认开机自动启动,但是默认处于停止状态,不重启服务器的情况下需要手动启动chronyd服务
# 查看chronyd服务状态
[root@centos85 ~]# systemctl status chronyd.service
● chronyd.service - NTP client/serverLoaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)Active: inactive (dead)Docs: man:chronyd(8)man:chrony.conf(5)
# 启动chronyd服务
[root@centos85 ~]# systemctl start chronyd.service
# 设置chronyd服务开机自动启动(通过前面查看服务状态可以看出,默认就时开机自动启动)
[root@centos85 ~]# systemctl enable chronyd.service
# chronyd作为服务器的配置清单(编辑/etc/chrony.conf配置文件,仅修改我中文标注的位置),保存配置文件后记得重启chronyd服务
[root@centos85 ~]# cat /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# 如下所示,注释掉默认的ntp服务池地址
# pool 2.centos.pool.ntp.org iburst
# 时间同步上游服务器分3种情况,任选且只选任一种即可,切记不可贪多
# 情况1:使用上游服务器时间,且上游服务器时间为ntp服务器池(能接入外网的情况优选)
pool cn.pool.ntp.org iburst
# 情况2:使用上游服务器时间,且上游服务器时间为ntp服务器池(能接入外网的情况优选)
server ntp.aliyun.com iburst
# 情况3:不使用上游服务器时间,以服务器本地时间为准(内网自建NTP服务器优选)
server 127.0.0.1 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 all允许所有,也可以使用模板中的例子加以限定
#allow 192.168.0.0/16
allow all# Serve time even if not synchronized to a time source.
#如果服务器角色类似上述情况3的场景,则需要取消下面一行参数的注释,即local stratum 10,表示以服务器本身时间为准
#local stratum 10
local stratum 10# Specify file containing keys for NTP authentication.
keyfile /etc/chrony.keys# Get TAI-UTC offset and leap seconds from the system tz database.
leapsectz right/UTC# Specify directory for log files.
logdir /var/log/chrony# Select which information is logged.
#log measurements statistics tracking
# 重启服务以确保新配置生效
[root@centos85 ~]# systemctl restart chronyd.service
# 查看NTP服务器时间同步的整体情况
[root@centos85 ~]# chronyc -n sources -v.-- Source mode  '^' = server, '=' = peer, '#' = local clock./ .- Source state '*' = current best, '+' = combined, '-' = not combined,
| /             'x' = may be in error, '~' = too variable, '?' = unusable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^+ 193.182.111.14                2   6    17    14  -8201us[  -20ms] +/-  142ms
^- 78.46.102.180                 2   6   161     8    +26ms[  +26ms] +/-   94ms
^? 84.16.67.12                   1   6    30    15    +25ms[  +14ms] +/-  105ms
^* 193.182.111.143               2   6    17    14    +12ms[  +54us] +/-  148ms
# 查看NTP服务器时间戳的具体信息
[root@centos85 ~]# chronyc tracking
Reference ID    : C1B66F8F (ntp8.flashdance.cx)
Stratum         : 3
Ref time (UTC)  : Thu Jan 25 10:06:35 2024
System time     : 0.005802411 seconds fast of NTP time
Last offset     : +0.001469315 seconds
RMS offset      : 0.001469315 seconds
Frequency       : 1.523 ppm slow
Residual freq   : +23.727 ppm
Skew            : 1.793 ppm
Root delay      : 0.288379759 seconds
Root dispersion : 0.008044729 seconds
Update interval : 128.5 seconds
Leap status     : Normal
# 首次使用chronyc makestep向上游服务器同步时间
[root@centos85 ~]# chronyc makestep
200 OK
[root@centos85 ~]## chronyd作为客户端的配置清单(编辑/etc/chrony.conf配置文件,仅修改我中文标注的位置),保存配置文件后记得重启chronyd服务
[root@centos85 ~]# cat /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# 如下所示,注释掉默认的ntp服务池地址
# pool 2.centos.pool.ntp.org iburst
# 时间同步上游服务器分3种情况,任选且只选任一种即可,切记不可贪多
# 情况1:使用上游服务器时间,且上游服务器时间为ntp服务器池(能接入外网的情况优选)
pool cn.pool.ntp.org iburst
# 情况2:使用上游服务器时间,且上游服务器时间为ntp服务器池(能接入外网的情况优选)
server ntp.aliyun.com iburst
# 情况3:不使用上游服务器时间,以服务器本地时间为准(内网自建NTP服务器优选)
server <内网NTP服务器IP地址> 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# Get TAI-UTC offset and leap seconds from the system tz database.
leapsectz right/UTC# Specify directory for log files.
logdir /var/log/chrony# Select which information is logged.
#log measurements statistics tracking
# 重启服务以确保新配置生效
[root@centos85 ~]# systemctl restart chronyd.service
# 查看NTP服务器时间同步的整体情况
[root@centos85 ~]# chronyc -n sources -v.-- Source mode  '^' = server, '=' = peer, '#' = local clock./ .- Source state '*' = current best, '+' = combined, '-' = not combined,
| /             'x' = may be in error, '~' = too variable, '?' = unusable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^+ 193.182.111.14                2   6    17    14  -8201us[  -20ms] +/-  142ms
^- 78.46.102.180                 2   6   161     8    +26ms[  +26ms] +/-   94ms
^? 84.16.67.12                   1   6    30    15    +25ms[  +14ms] +/-  105ms
^* 193.182.111.143               2   6    17    14    +12ms[  +54us] +/-  148ms
# 查看NTP服务器时间戳的具体信息
[root@centos85 ~]# chronyc tracking
Reference ID    : C1B66F8F (ntp8.flashdance.cx)
Stratum         : 3
Ref time (UTC)  : Thu Jan 25 10:06:35 2024
System time     : 0.005802411 seconds fast of NTP time
Last offset     : +0.001469315 seconds
RMS offset      : 0.001469315 seconds
Frequency       : 1.523 ppm slow
Residual freq   : +23.727 ppm
Skew            : 1.793 ppm
Root delay      : 0.288379759 seconds
Root dispersion : 0.008044729 seconds
Update interval : 128.5 seconds
Leap status     : Normal
# 首次使用chronyc makestep向上游服务器同步时间
[root@centos85 ~]# chronyc makestep
200 OK
[root@centos85 ~]#

chrony项目拓展资料

 阅读官方文档有助于身体健康!

官方网站icon-default.png?t=N7T8https://chrony-project.org/

官方文档 icon-default.png?t=N7T8https://chrony-project.org/documentation.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/648092.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 8中使用Stream来操作集合

如何在Java 8中使用Stream来操作集合&#xff1f; 在Java 8中&#xff0c;你可以使用Stream API来操作集合。Stream API是Java 8引入的一种新特性&#xff0c;它允许你以声明性方式处理数据集合&#xff0c;如对集合进行过滤、映射、排序等操作。 以下是一些基本的Stream操作…

ICMP协议详解

ICMP&#xff08;Internet Control Message Protocol&#xff09;协议是一个网络层协议。 一个新搭建好的网络&#xff0c;往往需要先进行一个简单的测试&#xff0c;来验证网络是否畅通&#xff1b;但是IP协议并不提供可靠传输。如果丢包了&#xff0c;IP协议并不能通知传输层…

QY-18A 远程倾斜位移监测仪

产品概述 远程倾斜位移监测仪具有体积小、精度高、安装方便、功能完备等优势&#xff0c;可对被测物进行实时的监测&#xff0c;兼具自动化、云模式、高精度。能根据对设备自身的X、Y、Z三个方向的姿态倾斜状况进行实时监测&#xff0c;测量出监测点的相对位移量和方位角&…

Java中Integer(127)==Integer(127)为True,Integer(128)==Integer(128)却为False,这是为什么?

文章目录 1.前言2. 源码解析3.总结 1.前言 相信大家职业生涯中或多或少的碰到过Java比较变态的笔试题&#xff0c;下面这道题目大家应该不陌生&#xff1a; Integer i 127; Integer j 127;Integer m 128; Integer n 128;System.out.println(i j); // 输出为 true System.o…

阿里云之申请云服务器

阿里云注册建议使用支付宝扫码。 点击产品&#xff0c;勾选个人认证&#xff0c;云服务器。选择第二个。第一个会自动给你续费&#xff0c;第二个不会。 以下配置&#xff0c;只要是博主没说的都可以根据初始选项选择。&#xff08;不用管&#xff09; 地域&#xff1a;选择与…

嵌入式软件工程师面试题——2025校招社招通用(C/C++)(三十九)

说明&#xff1a; 面试群&#xff0c;群号&#xff1a; 228447240面试题来源于网络书籍&#xff0c;公司题目以及博主原创或修改&#xff08;题目大部分来源于各种公司&#xff09;&#xff1b;文中很多题目&#xff0c;或许大家直接编译器写完&#xff0c;1分钟就出结果了。但…

C语言实现“空心”正方形图案输出的程序解析

我们可以利用循环结构和条件判断语句来绘制各种图形。下面&#xff0c;我将对一个通过while循环和嵌套for循环实现“空心”正方形输出的C语言代码进行详细解析。 #include <stdio.h>int main() {int a;while (scanf("%d", &a) ! EOF) { // 输入循环&#…

Unknown encoder ‘libmp3lame

环境&#xff1a; macos m1 &#xff0c; python3.10.x 背景 做视频切片&#xff0c; 使用moviepy 中VideoFileClip进行截取视频。 报错&#xff1a; Unknown encoder libmp3lameThe audio export failed because FFMPEG didnt find the specified codec for audio encoding …

【ARMv8M Cortex-M33 系列 7 -- RA4M2 移植 RT-Thread 问题总结】

请阅读【嵌入式开发学习必备专栏 】 文章目录 问题小结栈未对齐 经过几天的调试&#xff0c;成功将rt-thead 移植到 RA4M2&#xff08;Cortex-M33 核&#xff09;上&#xff0c;thread 和 shell 命令已经都成功支持。 问题小结 在完成 rt-thread 代码 Makefile 编译系统搭建…

Django开发_19_form表单前后端关联(1)

实例分析&#xff0c;过程使用URL反向解析知识&#xff1a; Django开发_12_URL反向解析、重定向-CSDN博客y 一、实例代码 (一)主路由urls.py: path("work4/", include("work4_app.urls",namespace"work4")), (二)app内urls.py: from djang…

利用大数据靶向肿瘤细胞的基因突变

在亚利桑那健康科学大学&#xff0c;研究人员正在应用大量数据&#xff0c;试图更多地了解这种突变、其变异以及任何可能有助于他们治疗患者的相关因素。 癌症的潜在原因很多&#xff0c;从食物和环境到创伤和感染。在遗传学方面&#xff0c;研究人员发现&#xff0c;有一种基因…

uniapp app更新

uniapp app更新 这个版本要随之增加&#xff0c;不然刚更新时直接用app, 新包增加的那些页面跳转会有问题&#xff0c;不能跳新的页面 //app更新检测 updataApp(){const that this;uni.showLoading({title:加载中...})plus.runtime.getProperty(plus.runtime.appid, functio…

Centos7.6之禅道开源版17.6.1安装记录

Centos7.6之禅道开源版17.6.1安装记录 文章目录 Centos7.6之禅道开源版17.6.1安装记录1. 下载2. 安装3. 登录4. 连接数据库1. 本地连接2. 远程连接1. 开启远程访问用户2. 更改mysql绑定的主机3. 重启Apache与MySQL服务 4. 常用命令1. Apache和Mysql常用命令2. 其他 1. 下载 官网…

C语言中的extern:全局变量和函数的声明与使用

概念&#xff1a; 在C语言中&#xff0c;extern是一个关键字&#xff0c;用于声明全局变量和函数。它告诉编译器该变量或函数在其他源文件中定义&#xff0c;让编译器知道在链接时需要从其他源文件中寻找其定义。extern关键字不会分配内存&#xff0c;只是告诉编译器该变量或函…

归并排序-逆序对

之前的文章里有写归并排序的最小和问题&#xff08;归并排序-最小和-CSDN博客&#xff09;&#xff0c;逆序对问题其实跟最小和问题的本质一样&#xff1a; 逆序对&#xff1a;给定一个数据&#xff0c;从左往右&#xff0c;从第一个数开始&#xff0c;它右边每一个比它小的都…

解密:消息中间件的选择与使用:打造高效通信枢纽

目录 第一章&#xff1a;消息中间件介绍 1.1 什么是消息中间件 1.2 消息中间件的作用 1.3 消息中间件的分类 第二章&#xff1a;消息中间件的选择标准 2.1 性能 2.2 可靠性 2.3 可扩展性 2.4 易用性 2.5 社区支持 2.6 成本 第三章&#xff1a;常见的消息中间件对比…

解决 [Vue warn]:Avoid mutating a prop directly 警告

错误信息 [Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop’s value. Prop being mutated: “xxx” 错误原因 所有的 prop 都使得…

图像分割的作用以及运用领域

图像分割 图像分割是数字图像处理领域的一种技术&#xff0c;其主要目的是将数字图像划分成多个部分或区域&#xff0c;以便于更简单、有效地分析和理解图像内容。在图像分割过程中&#xff0c;图像被分解成若干互不重叠的区域&#xff0c;这些区域通常对应于实际场景中的各种…

推荐几款AI绘图软件且提供psd源文件

AI绘图软件通常指的是支持人工智能辅助创作的绘图和设计工具&#xff0c;能够帮助用户更高效地进行图像、插画和设计工作。以下是一些具有AI功能且可以导出或处理PSD格式文件&#xff08;即Photoshop源文件格式&#xff09;的软件&#xff1a; Adobe Photoshop Adobe Photoshop…

Prometheus配置与管理

1 配置文件 Prometheus通过命令行和配置文件进行配置&#xff0c;命令行配置不能修改的系统参数&#xff08;例如存储位置&#xff0c;要保留在磁盘和内存中的数据量等&#xff09;&#xff0c;但配置文件定义了与抓取作业及其实例相关的所有内容&#xff0c;以及哪些规则文件…