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.hqwc.cn/news/438294.html

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

相关文章

springboot设置热部署

目录 以下是实现 Spring Boot 热部署的方法&#xff1a; 1、添加依赖 2、配置 IDE 3、配置 application.properties 或 application.yml 4、启动应用 Spring Boot 提供了开发者进行热部署的支持。在开发过程中&#xff0c;每次修改代码后&#xff0c;需要重启应用才能看到…

阿里云国际OpenAPI多接口快速管理ECS服务器教程

阿里云OpenAPI提供了多种接口来管理ECS实例&#xff0c;包括创建、删除、重启等操作。但是&#xff0c;对于执行命令并获取结果的需求&#xff0c;需要使用ECS的远程连接功能来实现。 具体来说&#xff0c;你可以使用ECS的SSH客户端连接到ECS实例上&#xff0c;并在实例上执行所…

1Panel CloudFlare证书申请失败的解决方案

在升级1Panel后&#xff0c;使用 CloudFlare DNS验证时&#xff0c;会提示 [*.biliwind.com] [*.biliwind.com] acme: error presenting token: cloudflare: failed to find zone biliwind.com.: ListZonesContext command failed: Invalid request headers (6003) 为解决此问…

微信公众号扫码登录PC后台系统

微信公众号沙箱测试环境登录地址 https://open.weixin.qq.com/connect/qrconnect?appidwx39c379788eb1286a&scopesnsapi_login&redirect_urihttp%3A%2F%2Fmp.weixin.qq.com%2Fdebug%2Fcgi-bin%2Fsandbox%3Ft%3Dsandbox%2Flogin 账号和地址配置&#xff1a; 1. 获取…

c++之构造函数和析构函数

目录 名词解释&#xff1a; 1、 c的类在没有加权限的时候&#xff0c;默认为private。只有类内可以访问&#xff0c;类外不能访问。 2、共有接口 &#xff08;1&#xff09;接着上面的代码&#xff0c;如何在类外直接访问private的内容&#xff1f; &#xff08;2&#xff…

什么是NAT?NAT类型有哪些?

晚上好&#xff0c;我的网工朋友。NAT是一种地址转换技术&#xff0c;它可以将IP数据报文头中的IP地址转换为另一个IP地址&#xff0c;并通过转换端口号达到地址重用的目的。 在大多数网络环境中&#xff0c;我们都需要通过 NAT 来访问 Internet。 NAT作为一种缓解IPv4公网地址…

二、mongoose的使用,实现用户集合的操作

前言 mongodb&#xff1a;为了在node应用中与MongoDB交互&#xff0c;开发者需要使用MongoDB的驱动程序&#xff0c;所以安装的mongodb就是其驱动程序&#xff1b; mongoose: 是一个用于 MongoDB 的对象建模工具&#xff0c;提供了一个丰富的查询语言和许多其他功能&#xff0c…

Linux:共享内存

文章目录 System V共享内存的原理管理共享内存shmgetshmatshmdtshmctl 共享内存和管道实现进程间同步通信 前面介绍完了匿名管道和命名管道&#xff0c;那么本篇要引入的主题是共享内存 System V 作为进程通信部分的内容&#xff0c;共享内存必然有其存在的意义和价值&#x…

计算机网络——网络层(2)

计算机网络——网络层&#xff08;2&#xff09; 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 网络层——控制平面概述路由选择转发表路由协议路由信息的交换小结 路由选择算法常见的路由选择算法距离矢量路由算法工作原理优缺点分析 链路状态路由算法基本工作原理优…

day11_oop

今日内容 零、 复习昨日 一、作业 二、封装 三、继承 四、重写 五、this和super 六、访问修饰符 零、 复习昨日 数组创建的两种方式 new int[3];new int[]{1,2,3,4}; 手写一个遍历输出数组元素的伪代码 构造方法什么作用? 创建对象,将对象的属性初始化 有参无参构造什么区别?…

【IEEE会议征稿通知】2024年算法、软件工程与网络安全国际学术会议(ASENS 2024)

2024年算法、软件工程与网络安全国际学术会议&#xff08;ASENS 2024&#xff09; The International Conference on Algorithms, Software Engineering and Network Security 2024年算法、软件工程与网络安全国际学术会议&#xff08;ASENS 2024&#xff09;将于2024年3月29…

error: failed to open index: Database already open. Cannot acquire lock报错解决办法

ordinals节点数据同步出现报错 error: failed to open index: Database already open. Cannot acquire lock.问题分析&#xff1a; 出现问题的原因是btcoin core节点数据没有同步完我们就开始进行ordinals数据同步&#xff0c;导致/root/.local/share/ord/index.redb 文件数据…