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,一经查实,立即删除!

相关文章

ICMP协议详解

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

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…

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…

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

目录 第一章&#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 都使得…

蓝桥杯备战——3.定时器前后台

1.STC15F2k61S2的定时器 阅读STC15系列的手册&#xff0c;我们可以看到跟STC89C52RC的定时器还是有不同之处的&#xff1a; 由上图可以看到我们可以通过AUXR寄存器直接设置定时器的1T/12T模式了 在定时器0/1模式上也可以设置为16位自动重装载。 另外需要注意IAP15F2K61S2只有…

nvm安装的node,脚手架安装 vue 项目时报错

npm install -g vue/cli 时报错 解决办法 //修改npm的资源镜像: npm config set registry http://registry.npm.taobao.org重新脚手架安装 npm install -g vue/cli成功到下一步&#xff0c;当执行&#xff1a;vue create my-vue-demo时又报新的错 原因&#xff1a;【HTTPS …

part2. jdk9/10/11/12/16新特性详解

1.jdk9 1.1 模块化机制 定义模块&#xff1a;module-info.java module com.newfeature.test {requires java.se;requires lombok;requires junit; }package com.newfeature.test;import java.lang.reflect.Field;public class Main {public static void main(String[] args) …

Element UI样式修改之NavMenu导航菜单箭头样式修改

UI设计稿给的菜单箭头样式可能与我们饿了么组件NavMenu的菜单箭头样式不一致,目前我们侧边导航菜单的上下翻转箭头如下所示: 希望得到如下的结果: 找到饿了么Icon里我们想要向下箭头,F12后复制content内容content: “\e790”; content: "\e790";然后将默认的c…

C语言基本概念

目录 2.1 编写一个简单的C程序 2.1.1 编译和链接 2.1.2 集成开发环境 2.2 简单程序的一般形式 2.2.1 指令 2.2.2 函数 2.2.3 语句 2.3 注释 2.4 变量和赋值 2.4.1 类型 2.4.2 声明 2.4.3 赋值 2.4.4 显示变量的值 2.4.5 初始化 2.4.6 显示表达式的值 2.5 读入…

网络通信(15)-C#TCP客户端掉线重连实例

本文上接前面的文章使用Socket在C#语言环境下完成TCP客户端的掉线重连实例。 掉线重连需要使用心跳包发送测试网络的状态,进而进入重连循环线程。 前面实例完成的功能: 客户端与服务器连接,实现实时刷新状态。 客户端接收服务器的数据。 客户端发送给服务器的数据。 客…

pytorch代码实现注意力机制之MLCA

MLCA注意力机制 简要&#xff1a;注意力机制是计算机视觉中使用最广泛的组件之一&#xff0c;可以帮助神经网络强调重要元素并抑制不相关的元素。然而&#xff0c;绝大多数信道注意力机制仅包含信道特征信息而忽略了空间特征信息&#xff0c;导致模型表示效果或目标检测性能较…

docker之部署青龙面板

青龙面板是一个用于管理和监控 Linux 服务器的工具&#xff0c;具有定时运行脚本任务的功能。在实际情况下也可以用于一些定期自动签到等任务脚本的运行。 本次记录下简单的安装与使用&#xff0c;请提前安装好docker&#xff0c;参考之前的文章。 一、安装部署 1、拉取镜像 # …

weak_ptr 与 一个难发现的错误(循环依赖问题)笔记

推荐B站视频&#xff1a;7.weak_ptr与一个非常难发现的错误_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV18B4y187uL/?p7&spm_id_frompageDriver&vd_sourcea934d7fc6f47698a29dac90a922ba5a3一、weak_ptr weak_ptr并不拥有所有权并不能调用 -> 和 解引…

ACL--访问控制列表概述、组成、分类、应用

目录 一、ACL概述 二、ACL的组成 三、ACL分类 四、举例说明 1、基于标准ACL和基础的高级ACL应用 2、基于端口的ACL 一、ACL概述 访问控制列表ACL&#xff08;Access Control List&#xff09;是由一条或多条规则组成的集合。所谓规则&#xff0c;是指描述报文匹配条件的…

黑马程序员——javase进阶——day02——关键字,接口,代码块,枚举

目录&#xff1a; Java中的关键字 static关键字final关键字Java中的权限修饰符代码块 构造代码块静态代码块接口 接口的介绍接口的定义和特点接口的成员特点接口的案例接口中成员方法的特点枚举随堂小记 继承方法重写抽象类模板设计模式staticfinal权限修饰符接口回顾上午内容…