配置chrony时间同步服务

2023-11-10

一、chrony简介

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

二、安装chrony

1、安装chrony

yum install chrony

两个主要程序:chronyd和chronyc

chronyd:后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿

chronyc:命令行用户工具,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可在一台不同的远程计算机上工作

服务unit文件: /usr/lib/systemd/system/chronyd.service

监听端口: 323/udp,123/udp

配置文件: /etc/chrony.conf

配置文件详解

server :指明时间服务器地址,iburst 选项当服务器可达时,发送一个八个数据包而不是通常的一个数据包。 包间隔通常为2秒,可加快初始同步速度

driftfile : 根据实际时间计算出计算机增减时间的比率,将它记录到一个文件中,会在重启后为系统时钟作出补偿

rtcsync :启用内核模式,系统时间每11分钟会拷贝到实时时钟(RTC)

allow NETADD/NETMASK 自己作为ntp服务器,让客户端来同步自己的时间

allow all:允许所有客户端主机;

deny NETADDR/NETMASK

deny all:拒绝所有客户端;

cmdallow / cmddeny : 可以指定哪台主机可以通过chronyd使用控制命令

bindcmdaddress : 允许chronyd监听哪个接口来接收由chronyc执行的命令

makestep : 通常chronyd将根据需求通过减慢或加速时钟,使得系统逐步纠正所有时间偏差。在某些特定情况下,系统时钟可能会漂移过快,导致该调整过程消耗很长的时间来纠正系统时钟。该指令强制chronyd在调整期大于某个域值时调整系统时钟

local stratum 10 :即使server指令中时间服务器不可用,也允许将本地时间作为标准时间授时给其它客户端

2、配置chrony服务

systemctl start  chronyd
systemctl enable chronyd
systemctl status chronyd

3、修改配置文件,添加时间源

[root@localhost ~]# 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).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
##添加两个时间源,分别是阿里云和东北大学的时间同步服务器,iburst表示加急
server time1.aliyun.com iburst
server time.neu.edu.cn 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.
# chronyd根据需求减慢或加速时间调整,
# 在某些情况下系统时钟可能漂移过快,导致时间调整用时过长。
# 该指令强制chronyd调整时期,大于某个阀值时(例如1秒)步进调整系统时钟。
# 只有在因chronyd启动时间超过指定的限制时(可使用负值来禁用限制)没有更多时钟更新时才生效。
makestep 1.0 3

# Enable kernel synchronization of the real-time clock (RTC).
# 将启用一个内核模式,在该模式中,系统时间每11分钟会拷贝到实时时钟(RTC)。
rtcsync

# Enable hardware timestamping on all interfaces that support it.
# 通过使用hwtimestamp指令启用硬件时间戳
#hwtimestamp *

# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2

# Allow NTP client access from local network.
# 指定一台主机、子网,或者网络以允许或拒绝NTP连接到扮演时钟服务器的机器
#allow 192.168.0.0/16
allow all

# Serve time even if not synchronized to a time source.
#local stratum 10

# Specify file containing keys for NTP authentication.
# 指定包含NTP验证密钥的文件。
#keyfile /etc/chrony.keys

# Specify directory for log files.
# 指定日志文件的目录。
logdir /var/log/chrony

# Select which information is logged.
#log measurements statistics tracking

4、测试
重启服务

systemctl restart chronyd
##显示当前chronyd正在同步的时间源的信息

在这里插入图片描述
三、相关命令

chronyc [OPTION]... [COMMAND]...

##查看帮助
chronyc help

##显示有多少NTP源在线/离线
[root@localhost ~]# chronyc activity
200 OK
2 sources online
0 sources offline
0 sources doing burst (return to online)
0 sources doing burst (return to offline)
0 sources with unknown address

强制同步系统时间(可以在)

[root@localhost ~]# chronyc -a makestep
200 OK

检查是否对特定主机可访问当前服务器

[root@localhost ~]# chronyc accheck 192.168.145.130
208 Access allowed
[root@localhost ~]# chronyc accheck 192.168.145.2
208 Access allowed
[root@localhost ~]# chronyc accheck 10.10.10.102
208 Access allowed

显示当前时间源的同步信息

[root@localhost ~]# chronyc sources 
210 Number of sources = 2
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 203.107.6.88                  2   6    77     3    -13ms[  -89ms] +/-   89ms
^- time.neu.edu.cn               1   6    77     1  -6618us[-6618us] +/-  133ms
##加v表示显示详细信息
[root@localhost ~]# chronyc sources -v
210 Number of sources = 2

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- 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               
===============================================================================
^* 203.107.6.88                  2   6    77    10    -13ms[  -89ms] +/-   89ms
^- time.neu.edu.cn               1   6    77     7  -6618us[-6618us] +/-  133ms

显示当前时间源的同步统计信息

[root@localhost ~]# chronyc sourcestats 
210 Number of sources = 2
Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
==============================================================================
203.107.6.88                9   6   524   -282.705   1115.902    -16ms    65ms
time.neu.edu.cn             9   5   521   +265.222   1210.449   +177ms    76ms
##加-v显示详细信息
[root@localhost ~]# chronyc sourcestats -v
210 Number of sources = 2
                             .- Number of sample points in measurement set.
                            /    .- Number of residual runs with same sign.
                           |    /    .- Length of measurement set (time).
                           |   |    /      .- Est. clock freq error (ppm).
                           |   |   |      /           .- Est. error in freq.
                           |   |   |     |           /         .- Est. offset.
                           |   |   |     |          |          |   On the -.
                           |   |   |     |          |          |   samples. \
                           |   |   |     |          |          |             |
Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
==============================================================================
203.107.6.88                9   6   524   -282.705   1115.902    -17ms    65ms
time.neu.edu.cn             9   5   521   +265.222   1210.449   +178ms    76ms

手动添加一台新的NTP服务器

##添加一台复旦大学的时间同步服务器
[root@localhost ~]# chronyc add server ntp.fudan.edu.cn
200 OK
[root@localhost ~]# chronyc sources -v
210 Number of sources = 3

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- 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               
===============================================================================
^* 203.107.6.88                  2   6   377    41   +139ms[ +143ms] +/-  179ms
^- time.neu.edu.cn               1   6   377   103    +38ms[  +42ms] +/-   92ms
^? 10.108.68.100                 0   7     0     -     +0ns[   +0ns] +/-    0ns
##临时添加,重启服务会失效,若想永久生效可以写入配置文件中

报告已访问本服务器的客户端列表

[root@localhost ~]# chronyc clients 
Hostname                      NTP   Drop Int IntL Last     Cmd   Drop Int  Last
===============================================================================

显示系统的时钟性能参数

[root@localhost ~]# chronyc tracking
Reference ID    : CB6B0658 (203.107.6.88)
Stratum         : 3
Ref time (UTC)  : Wed Aug 18 12:14:04 2021
System time     : 0.013744237 seconds fast of NTP time
Last offset     : +0.011746962 seconds
RMS offset      : 0.093312807 seconds
Frequency       : 3.476 ppm fast
Residual freq   : +32.767 ppm
Skew            : 95.284 ppm
Root delay      : 0.124015316 seconds
Root dispersion : 0.157856569 seconds
Update interval : 65.7 seconds
Leap status     : Normal

其他时间相关命令
设置时区

##查看当前系统时区:
[root@localhost ~]# timedatectl
      Local time: Wed 2021-08-18 20:31:45 CST
  Universal time: Wed 2021-08-18 12:31:45 UTC
        RTC time: Wed 2021-08-18 12:31:45
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

##查看所有可用的时区:
[root@localhost ~]# timedatectl list-timezones
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Bamako
Africa/Bangui
Africa/Banjul
Africa/Bissau
Africa/Blantyre
Africa/Brazzaville
Africa/Bujumbura
....

##查看上海时区:
[root@localhost ~]#  timedatectl list-timezones |  grep  "Asia/Shanghai"
Asia/Shanghai
##设置当前系统为Asia/Shanghai上海时区:
[root@localhost ~]# timedatectl set-timezone Asia/Shanghai

##修改日期时间:
[root@localhost ~]# timedatectl set-time “2021-08-18 10:30:00”
##开启NTP: 
[root@localhost ~]# timedatectl set-ntp true/flase
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

配置chrony时间同步服务 的相关文章

  • 前端之HTML

    目录 1 编写一个HTML代码 2 HTML常见语法 2 1注释标签 2 2标题标签 2 3段落标签 2 4换行标签 2 5格式化标签 2 6图片标签 2 6 1img标签的其他属性 2 7超链接标签 2 7 1空连接 2 8列表标签 2
  • SpringBoot+Hibernate+Spring Data JPA+Maven入门

    整合SpringBoot 和 Hibernate 实现简单的CRUD 框架版本 SpringBoot 2 0 0 RELEASE Hibernate 5 2 14 Final pom xml文件
  • c++基本使用--构造基类

    构造基类 派生类构造函数的要点如下 1 创建派生类对象时 程序首先调用基类构造函数 然后再调用派生类构造函数 2 如果没以指定基类构造函数 将使用基类的默认构造函数 3 可以用初始化列表指明要使用的基类构造函数 4 基类构造函数负责初始化被
  • 【华为OD机试真题2023B卷 JAVA&JS】书籍叠放

    华为OD2023 B卷 机试题库全覆盖 刷题指南点这里 书籍叠放 时间限制 1秒 内存限制 65536K 语言限制 不限 题目描述 书籍的长 宽都是整数对应 l w 如果书A的长宽度都比B长宽大时 则允许将B排列放在A上面 现在有一组规格的
  • python效率验证

    测试一段代码 知识点1 定义两个函数 分别是立方和平方 分别取看他们的运算结果 定义函数 一个放回0 n的平方 一个返回0 n的立方 1 创建 列表 然后append数据再返回 def square n data for x in rang
  • Java - 常用类库 - BigDecimal/BigInteger

    常用类库 BigDecimal BigInteger 用于处理任意精度的浮点数和任意长度的整数 一 BigDecimal类 BigDecimal Java SE 11 JDK 11 当处理的浮点数精度超出float乃至double的限制时
  • GitHub 访问不了?FastGithub 一秒解决 GitHub 打不开问题!

    背景 由于各种原因 GitHub 经常打不开 或者打开了无法加载图片等信息 这里给大家推荐一个 GitHub 的加速神器 这个开源项目就是 FastGitHub GitHub 加速神器 主要解决 GitHub 打不开 用户头像无法加载 re
  • 基于微信小程序的自习室系统设计与实现,可作为毕业设计

    博主介绍 程序员徐师兄 7年大厂程序员经历 全网粉丝30W csdn博客专家 掘金 华为云 阿里云 InfoQ等平台优质作者 专注于Java技术领域和毕业项目实战 文章目录 1 简介 2 技术栈 3 需求分析 3 1用户需求分析 3 1 1
  • easyui window关闭的两种放法

  • nginx1.15安装和配置

    安装单机版nginx 首先下载安装包 nginx 1 15 0 tar gz pcre 8 38 tar gz 首先安装pcre tar zxvf pcre 8 38 tar gz cd pcre 8 38 configure prefix
  • STM32系列(HAL库)——单通道ADC转换

    本篇演示使用cubeMX配置STM32单通道ADC 话不多说 开始正文 一 前期准备 1 硬件 STM32C8T6最小系统板 USB TTL串口模块 ST Link下载器 2 软件 keil5 IDE cubeMX 二 cubeMX配置 1
  • 139. 单词拆分(DP)

    139 单词拆分 给你一个字符串 s 和一个字符串列表 wordDict 作为字典 请你判断是否可以利用字典中出现的单词拼接出 s 注意 不要求字典中出现的单词全部都使用 并且字典中的单词可以重复使用 示例 1 输入 s leetcode
  • 折半查找(C语言)

    折半查找 设定查找范围的下限low 上限high 由此确定查找范围的中间位置mid 中间位置的值等于待查的值 查找成功 中间位置的值小于待查的值 low mid 1 中间位置的值大于待查的值 high mid 1 直到low gt high
  • java基本语法 上

    目录 关键字与保留字 关键字 keyword 的定义和特点 保留字 标识符 Java中的名称命名规范 变量 变量的定义 变量的分类 整数类型 byte short int long 浮点类型 float double 字符类型 char 布
  • 函数与对象关系

    函数是对象 通过下面代码就能验证 var fn function console log fn instanceof Object true 函数跟对象之间的关系比较复杂 首先 所有对象都是通过函数创建的 有些人可能反驳 不对因为 var
  • AntD 可编辑行表格

    本地数据代码模板自用 官网例子改改 编辑行的自定义表格 import React useState from react import Table Input InputNumber Popconfirm Form Typography D
  • Umijs组件的初次应用

    在Umijs组件中我们不像vue那样可以看到组件的路径 在umijs刚刚搭建完成我们看不到组件的路径 所以我们要手动进行一些小小的改动 就可以看到了 一 应用前的准备 1 在当前项目文件路径下的终端输入 npm umi g page log
  • C 求整数n的二进制有多少个1

    首先 整数 分为正整数和负数 那么解题的时候就要注意这个正 负 提供了3中解题方案 第一种 int getBinary1 unsigned int n int count 0 while n if n 2 1 count n 2 retur
  • 说了那么多,到底什么是「神经搜索」?

    从人脑神经网络到深度学习神经网络 来自 Jina AI 的 Jack 将带大家从 0 到 1 认识 搜索 及 神经搜索 什么是神经搜索 它与普通搜索有什么区别 它能解决哪些问题 又有哪些优势和劣势 观看本期 Jina AI 小科普 在 Ja
  • SQL Server 问题集

    问题一 执行drop database xxx 反馈结果 无法对 数据库 xxx 执行 删除 因为它正用于复制 解决方案 只需要执行 sp removedbreplication XXX 然后再执行drop database xxx 原因分

随机推荐

  • vs2022提示函数不安全等问题

    我们在使用VS编译器编写C C 代码源程序的时候 发现在里面用scanf函数会编译出错 如下图所示 这个提示我们有两种方案可以解决 一是可以把scanf函数替换为 scanf s 如下 此时编译就会通过 但是在其他编译器里没有这个函数 因此
  • 【Figma技巧】Figma中快速制作斜线阴影的三种方法

    想要实现的效果 方法一 安装Hero Patterns插件 安装地址 https www figma com community plugin 743134103711120154 Hero Patterns for Figma 缺点 生成
  • openldap介绍和使用

    openldap介绍和使用 为什么会有本文 早期 公司是没有统一认证这个东西的 所以各自玩各自的 于是 confluence一个用户体系 gitlab一个用户体系 Jenkins一个用户体系等等 开发中要用到的开源软件数不胜数 每个软件都要
  • 齐纳二极管

    齐纳二极管 zener diodes 的主要作用就是当作一种电压调整器 QLCO A146提供稳定的参考电压 可应用在电源供应器 电压表与其他的仪器中 在本节中 你将会学习到齐纳二极管在适当的工作条件下 如何维持一个接近定值的直流电压 你将
  • HCL网络实操之ftp登录

    路由器配置ip in g0 0 ip address 192 168 56 200 24 路由器开启ftp服务 ftp server enable 创建用户 设置用户密码 设置权限 创建用户 local user cmoc 设置用户密码 p
  • JCreator 配置与用法

    对于一个web项目 里面由几个比较来说相对的标准目录 CSS 用来存放web项目中所使用到的样式文件 images 用来存放web项目中所使用的装饰图片 WEB INF 用来表示是一个jsp类型的项目 并且符合J2EE标准 inc 或者 i
  • 2023通信工程专业毕设题目大全

    文章目录 1前言 2 如何选题 3 通信工程选题方向 3 1 移动通信方向 3 2 嵌入式开发方向 3 3 人工智能方向 3 4 物联网方向 3 5 算法研究方向 3 6 移动应用开发方向 3 7 网络通信方向 3 8 学长作品展示 4 最
  • redis后端启动及关闭

    本文笔记为传智教程视频截图整理 redis前端启动 无法部署集群
  • 浅谈 malloc 函数在单片机上的应用

    聊聊 malloc函数 在单片机程序设计中怎么使用 目录 前言 一 malloc 函数简介 二 malloc 之于单片机 2 1 malloc 函数申请的内存在哪里 2 2 用与不用malloc的区别 三 malloc可能遇到的问题 3 1
  • RGMII时序约束

    RGMII是以太网MAC连接PHY的一种接口 可以实现10 100 1000M网络速度 在FPGA系统中比较常见 RGMII在1000M模式下是双沿采样 而且要求采样端是center aligned 所以其时序约束是比较复杂的 下面分TX和
  • Redis学习笔记04-基础知识

    测试性能 redis benchmark Redis官方提供的性能测试工具 参数选项如下 十六个数据库 默认使用的第0个 16个数据库为 DB 0 DB 15 默认使用DB 0 可以使用select n切换到DB n dbsize可以查看当
  • Java中的assert使用

    1 assertion 断言 是jdk1 4才开始支持的新功能 主要在开发和测试时开启 为保证性能 在正式发布后通常是关闭 2 Java中assertion与C中的assertion的区别在于 1 Java中是使用assert关键字去实现其
  • Derby 的安装&配置

    Derby 的安装 配置 原文 http zetcode com db apachederbytutorial install 在接下来的页面中 我们将展示如何安装 Derby 并根据需要配置 Derby 我们从 db apache org
  • redis安装教程

    redis安装教程 redis安装 redis安装教程 1 下载redis 2 解压 3 移动 放到usr local 录下 4 进 redis 录 5 生成 6 测试 这段运 时间会较 如果出现错误 此时需要安装tcl 如下 安装完tcl
  • Vue学习33----第三方日历组件ele-calendar 的使用(结合了lodash中的_.filter,_.find,_.map)

    文档地址 https www npmjs com package ele calendar https github com xuyanming ele calendar 效果图 组件
  • 面试题记录-- 对于软件测试的理解,测试的核心,测试策略

    记录面试遇到的题 个人理解 关于测试核心 怎么做好测试等等的问题 其实总结都是为了 预防 预防 预防 预防缺陷 把缺陷扼杀在摇篮里 测试效率 接口测试 敏捷 测试 你怎么看测试 软件测试是什么 分为哪几个阶段 怎么看测试 测试 已知测试需求
  • Java虚拟机基础知识整理

    文章目录 Java虚拟机基础知识整理 一 JVM的体系结构 二 类加载器详解 三 沙箱安全机制 一 沙箱安全发展历史 二 沙箱基本组件 四 Native以及方法区和寄存器 一 Native本地方法 二 PC寄存器 三 方法区 五 栈 Sta
  • JSP(机器调度问题)使用java进行数学建模并调用cplex求解

    机器调度问题 JSP问题 描述为 在给定每个工件的加工流程 每个工件使用机器的序列及每个工件每道工序的加工时间确定的情况下 安排工件的加工顺序 使得待加工的工件在机器上进行加工的最大完工时刻最小 接着上次的JSP模型 https blog
  • golang docker client通过ssh调用远程主机的接口

    golang通过tcp方式连接调用远程主机docker的接口 可参考 https mp csdn net mp blog creation editor 126315928 本文主要是用Go通过ssh方式连接到远程主机 调用docker接口
  • 配置chrony时间同步服务

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