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/server
   Loaded: 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式——直接存储器存取(DMA)补充

目录 一、认识 DMA 二、DMA结构 1. DMA请求 2. 通道DMA 补&#xff1a;通道配置过程。 3. 仲裁器 三、DMA数据配置 1. 从哪里来&#xff0c;到哪里去 &#xff08;1&#xff09;从外设到存储器 &#xff08;2&#xff09;从存储器到外设 &#xff08;3&#xff09;从…

【Python基础017】Python中如何进行异常判断(try...except...的使用)

1、异常判断 在python程序在运行的过程中可能会出现很多错误&#xff0c;比如语法、未定义变量、分母为0等错误&#xff1b;而我们通常使用try...except...语句来处理程序在运行中出现的这些异常&#xff0c;并显示出现错误的原因。此外&#xff0c;我们还可以用try...finally.…

全角色服务、全场景支撑、全业务应用的新一代智慧教室

新一代智慧教室以“数智化助力高质量人才培养”为核心目标&#xff0c;以AI赋能的智能硬件为基础构建多形态智慧教学环境&#xff0c;以中台为支撑实现数据、设备、系统、业务的互联互通、开放共享&#xff0c;以平台全面覆盖教学应用&#xff0c;采集、汇聚、挖掘、分析课前课…

AP5216 平均电流型LED降压恒流驱动IC 手电筒汽车摩托车灯芯片

产品描述 AP5216 是一款 PWM工作模式, 高效率、外围简单、内置功率管&#xff0c;适用于5V&#xff5e;100V输入的高精度降压 LED 恒流驱动芯片。输出最大功率可达9W&#xff0c;最大电流 1.0A。AP5216 可实现全亮/半亮功能切换&#xff0c;通过MODE 切换&#xff1a;全亮/半亮…

Pytorch线性代数

1、加法运算 A torch.arange(20, dtypetorch.float32).reshape(5, 4) B A.clone() # 通过分配新内存&#xff0c;将A的一个副本分配给B A, A B# tensor([[ 0., 1., 2., 3.], # [ 4., 5., 6., 7.], # [ 8., 9., 10., 11.], # [12., 13.,…

《幻兽帕鲁》多人联机教程:个人电脑搭建可远程访问服务器

《幻兽帕鲁》支持自建服务器实现多人联机&#xff0c;相比邀请码方式联机&#xff0c;自建服务器可突破4人限制&#xff0c;最多让32人同时游戏&#xff0c;而且如果在国内网络环境搭建服务器&#xff0c;在也可以避免官服网络原因导致的掉线、连接失败等问题。 搭建《幻兽帕鲁…

统一异常处理

统一异常处理 统一异常处理创建一个类定义方法ControllerAdvice和ExceptionHandler注意事项 统一异常处理 创建一个类 首先,我们来创建一个类,名字随意,这里我们取名ERHandler 定义方法 在ERHandler中,我们可以定义几个类,参数用来接收各种异常,这里的异常可以是任意的,返回…

从自卑到幸福:吴哲轩的成长故事

从自卑到幸福&#xff1a;吴哲轩的成长故事 吴哲轩&#xff0c;一个内向、孤独的青年&#xff0c;在中学时期以优异的成绩赢得了父母的骄傲。然而&#xff0c;他的内心却充满了迷茫和自卑。他在为父母的期望而活&#xff0c;忽视了自己的精神追求和个人成长。 进入大学后&…

SpringSecurity笔记

SpringSecurity 本笔记来自三更草堂&#xff1a;https://www.bilibili.com/video/BV1mm4y1X7Hc/?spm_id_from333.337.search-card.all.click&#xff0c;仅供个人学习使用 简介 Spring Security是Spring家族中的一个安全管理框架。相比与另外一个安全框架Shiro&#xff0c;…

GD32F303,GD32F103中文手册

GD32F303,GD32F103中文手册 链接&#xff1a;https://pan.baidu.com/s/1-bOHMwUuhduI1GHNxT4P7A?pwdct44 提取码&#xff1a;ct44链接&#xff1a;https://pan.baidu.com/s/1-bOHMwUuhduI1GHNxT4P7A?pwdct44 提取码&#xff1a;ct44

米贸搜|Meta广告中级水准:Facebook自动完成四项广告设置,改善投放成效!

广告投放中的机器学习预算自动分配版位自动分配受众自动分配创意灵活调整 一、广告投放中的机器学习 机器学习现已成为数字营销的基础&#xff0c;能够帮助我们面向想要触达的受众投放与之相关的广告。随着我们对如何使用机器学习的了解加深&#xff0c;我们对“如何创建广告…

爸爸的爸爸的爸爸的爸爸叫什么?

效果 简介 由于工作生活节奏不同&#xff0c;如今很多关系稍疏远的亲戚之间来往并不多。因此放假回家过年时&#xff0c;往往会搞不清楚哪位亲戚应该喊什么称呼&#xff0c;很是尴尬。然而搞不清亲戚关系和亲戚称谓的不仅是小孩&#xff0c;就连年轻一代的大人也都常常模糊混乱…

C++ Qt开发:SqlTableModel映射组件应用

Qt 是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本章将重点介绍SqlTableModule组件的常用方法及灵活运用。 …

【NodeJS】004- NodeJS的模块化与包管理工具

模块化 1. 介绍 1.1.什么是模块化与模块 ? 将一个复杂的程序文件依据一定规则(规范)拆分成多个文件的过程称之为 模块化 其中拆分出的 每个文件就是一个模块 ,模块的内部数据是私有的,不过模块可以暴露内部数据以便其他模块使用 1.2 什么是模块化项目 ? 编码时是按照模…

Vulnhub靶场DC-9

攻击机192.168.223.128 靶机192.168.223.138 主机发现 nmap -sP 192.168.223.0/24 端口扫描 nmap -sV -p- -A 192.168.223.138 开启了22 80端口 访问一下web页面 有个查询界面 测试发现存在post型的sql注入 用sqlmap跑一下&#xff0c;因为是post型的&#xff0c;这里…

深入理解TCP网络协议

目录 1.TCP协议的段格式 2.TCP原理 2.1确认应答 2.2超时重传 3.三次握手(重点) 4.四次挥手 1.TCP协议的段格式 我们先来观察一下TCP协议的段格式图解: 源/目的端口号:标识数据从哪个进程来,到哪个进程去 32位序号/32位确认号:TCP会话的每一端都包含一个32位&#xff08…

探索半导体制造业中的健永科技RFID读写器的应用方案

一、引言 在当今高度自动化的工业环境中&#xff0c;无线射频识别&#xff08;RFID&#xff09;技术已经成为实现高效生产的重要一环。特别是在半导体制造业中&#xff0c;由于产品的高价值和复杂性&#xff0c;生产过程的追踪和管理显得尤为重要。健永科技RFID读写器以其出色…

Nginx解析漏洞复现

首先这个漏洞不是软件或代码的问题&#xff0c;是认为疏忽造成的。 一、环境搭建 从vulhub上面下载vulhub-master.zip文件&#xff0c;上传到服务器中&#xff0c;或者直接在服务器下载。 unzip vulhub-master.zip 进入漏洞目录 cd /vulhub-master/vulhub-master/nginx/ng…

十大排序算法之非线性时间比较类排序

前言 接下来就开始我们的算法学习之路了&#xff0c;代码会分别使用Java与Python来实现&#xff0c;数据处理的算法很多&#xff0c;排序是最基础且最重要的一类&#xff0c;大多数人都是通过学习排序算法入门的。接下来让我们一起学习闻名遐迩的十大排序算法&#xff0c;它们…

商家转账到零钱开通教程

商家转账到零钱是什么&#xff1f; 商家转账到零钱是微信商户号里的一个功能&#xff0c;以前叫做企业付款到零钱。从 2022 年 5 月 18 日开始&#xff0c;原企业付款到零钱升级为商家转账到零钱&#xff0c;已开通商户的功能使用不受影响&#xff0c;新开通商户可前往产品中心…