linux--chrony时间同步以及局域网同步

news2024/11/27 21:06:00

文章目录

  • 注意
  • Chrony介绍
  • Chrony 支持的系统与联系方式
  • Chrony Git 仓库
  • 环境准备
  • 服务端
    • 确认是否安装chrony
    • 如果没有安装,那就执行以下命令进行安装
    • 配置文件/etc/chrony.conf
    • 命令参数讲解
      • 基本用法
      • 选项
      • 命令
        • 系统时钟命令
        • 时间源命令
        • NTP 访问命令
        • 执行命令参考
  • 客户端
    • 确认是否安装chrony
    • 如果没有安装,那就执行以下命令进行安装
    • 编辑/etc/chrony.conf,添加时间服务器为服务端地址,其余配置不用动
  • 常用chronyc命令如下
  • 场景


注意

有时候重启不起来,可以查看/var/log/message,博主因为chronyc版本是最新的,但是不兼容linux的内核,需要升级系统版本或者直接yum -y update

Chrony介绍

概述
Chrony 是一款多功能的网络时间协议(NTP)实现,它能够通过NTP服务器来同步系统时钟。此外,它还可以作为NTPv4(RFC 5905)服务器和对等体,为网络中的其他计算机提供时间服务。

适用环境
Chrony 设计用于在广泛的条件下表现出色,包括间歇性网络连接、网络拥堵严重、温度变化(普通计算机时钟对温度敏感)以及非持续运行的系统,或在虚拟机上运行的系统。Chrony 的适应性使其成为了在各种复杂环境中保持时间同步的理想选择。

同步精度
在实际应用中,Chrony 的同步精度非常高。对于通过互联网同步的两台机器,典型的精度可以达到几毫秒以内;而在局域网(LAN)中,精度通常在几十微秒内。如果使用硬件时间戳或硬件参考时钟,甚至可以达到亚微秒级的精度。

组件与功能
Chrony 包含两个主要程序:

  1. chronyd:这是一个守护进程,可以在系统启动时运行。
  2. chronyc:这是一个命令行界面程序,可以用于监控 chronyd 的性能,并在其运行时更改各种操作参数。

Chrony 的设计使得它不仅适用于传统的服务器和桌面系统,还能够胜任一些更加苛刻的环境,如移动设备或间歇连接的系统。因此,Chrony 已成为许多对时间同步有高要求的用户和组织的首选方案。

Chrony 支持的系统与联系方式

支持的系统
Chrony 软件支持以下操作系统:

  • Linux
  • FreeBSD
  • NetBSD
  • macOS
  • illumos

此外,与这些系统紧密相关的操作系统也可能兼容。如果是其他系统,则可能需要进行移植工作才能运行 Chrony。

联系方式
Chrony 项目提供了两个邮件列表来帮助用户解决问题和参与开发:

  1. chrony-user:用于用户提问、提交错误报告。
  2. chrony-devel:用于提交补丁和开发讨论。

有关邮件列表的更多信息,请访问 Chrony 官方网站。

对于安全漏洞,建议直接使用加密方式联系维护者进行报告。

开发和维护者
Chrony 最初由 Richard Curnow 编写,目前由 Miroslav Lichvar 维护和开发(PGP 密钥可用)。

官方网址
欲了解更多信息,请访问 Chrony 官方网站。

Chrony Git 仓库

Chrony 的 Git 仓库托管在 GitLab 上,可以通过以下链接访问:

  • Chrony Git 仓库

要克隆这个仓库,可以使用以下命令:

git clone https://gitlab.com/chrony/chrony.git

通过克隆仓库,您可以获得 Chrony 的最新源代码,并可以参与开发或定制。

环境准备

主机名IP用途
10-255-101-14710.255.101.147时间服务器,需要安装chrony
10-255-101-20310.255.101.203客户端服务器,同步时间,也需要安装chrony

服务端

确认是否安装chrony

systemctl status chronyd

在这里插入图片描述

如果没有安装,那就执行以下命令进行安装

# 安装
yum -y install chrony
# 开机自启
systemctl enable chronyd
# 启动
systemctl start chronyd

配置文件/etc/chrony.conf

默认的可以删除,也可以对比看一下,我主要是中文注释,不是英文其他都一样,配置很多可以参考官网的配置

# 这个配置文件用于Chrony的时间同步配置

# 使用阿里云的NTP服务器池进行时间同步。
pool ntp1.aliyun.com iburst
pool ntp2.aliyun.com iburst
pool ntp3.aliyun.com iburst
pool ntp4.aliyun.com iburst
pool ntp5.aliyun.com iburst
pool ntp6.aliyun.com iburst

# 使用Rocky Linux的NTP服务器池进行时间同步。
pool 2.rocky.pool.ntp.org iburst

# 从DHCP获取的NTP服务器。
sourcedir /run/chrony-dhcp

# 记录系统时钟的漂移率,即系统时钟增速或减速的速率。
driftfile /var/lib/chrony/drift

# 允许在前3次更新中,如果时间偏差超过1秒,可以立即调整系统时钟。
makestep 1.0 3

# 启用内核对实时时钟 (RTC) 的同步。
rtcsync

# 启用所有支持硬件时间戳的接口上的硬件时间戳。
#hwtimestamp *

# 增加调整系统时钟所需的最少可选择源的数量。
#minsources 2

# 允许本地网络中的NTP客户端访问,不指定就是允许所有,默认不开启
# 允许10.255.101.0的地址段同步
allow 10.255.101.0/24
# 允许192.168.1.0的地址段同步
allow 192.168.1.0/24

# 即使没有同步到时间源,也允许提供时间服务。
#local stratum 10

# 为所有NTP源要求身份验证 (nts 或 key 选项)。
#authselectmode require

# 指定包含NTP身份验证密钥的文件。
keyfile /etc/chrony.keys

# 保存NTS密钥和cookies。
ntsdumpdir /var/lib/chrony

# 通过slew(渐变调整)插入/删除闰秒,而不是通过stepping(步进调整)。
#leapsecmode slew

# 从系统时区数据库获取TAI-UTC偏移量和闰秒信息。
leapsectz right/UTC

# 指定日志文件的目录。
logdir /var/log/chrony

# 选择要记录的信息。
#log measurements statistics tracking

注意看allow是允许那个地址段的,不设置表示所有客户端都可同步
修改完进行重启

systemctl restart chronyd

命令参数讲解

基本用法

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

选项

  • -4:仅将主机名解析为 IPv4 地址。
  • -6:仅将主机名解析为 IPv6 地址。
  • -n:禁用 IP 地址到主机名的解析。
  • -m:允许在命令行上指定多个命令。
  • -h host:指定要联系的 chronyc 主机。
  • -p port:指定目标 chronyd 使用的 UDP 端口号(默认为 323)。
  • -v, --version:显示 chronyc 的版本号并退出。
  • --help:显示帮助信息并退出。

命令

系统时钟命令
  • tracking:显示系统时钟性能的参数。
  • makestep:使系统时钟立即跳到正确的时间。
  • waitsync:等待 chronyd 同步。
时间源命令
  • sources:显示当前时间源的信息。
  • sourcestats:显示每个时间源的漂移率和偏移估计过程信息。
  • selectdata:显示时间源选择的具体信息。
  • selectopts:修改 NTP 源的配置选择选项。
  • reselect:强制 chronyd 重新选择最佳同步源。
  • add peeradd pooladd server:添加新的 NTP 对等端、服务器池或服务器。
  • delete:删除 NTP 服务器或对等端。
  • burst:让 chronyd 在短时间内对每个 NTP 源进行一系列测量。
NTP 访问命令
  • accheck:检查特定主机是否允许 NTP 访问。
  • clients:显示访问 NTP 服务器的客户端列表。
  • serverstats:显示 NTP 和命令服务器统计信息。
  • allowdeny:配置允许或拒绝 NTP 访问的主机。
执行命令参考

在这里插入图片描述

# 检查 Chrony 的时间同步状态
[root@10-255-101-147 ~]# chronyc tracking

# 输出解释:
# Reference ID: 当前参考时间源的IP地址或主机名。
# Stratum: 时间源的层级,值越小,离实际时间源越近。
# Ref time (UTC): 上次与时间源同步的时间(UTC时间)。
# System time: 系统时间与NTP时间的差异,单位为秒。
# Last offset: 上次同步的时间偏移量。
# RMS offset: 均方根偏差,即所有时间偏移的均方根值。
# Frequency: 系统时钟的频率误差,单位为ppm(百万分之一)。
# Residual freq: 剩余频率误差。
# Skew: 系统时钟的频率误差不确定性,单位为ppm。
# Root delay: 本地系统与参考时间源之间的总网络延迟。
# Root dispersion: 时间源的不确定性。
# Update interval: 两次同步之间的时间间隔。
# Leap status: 闰秒状态,Normal表示正常。

Reference ID    : CA701D52 (dns1.synet.edu.cn)
Stratum         : 2
Ref time (UTC)  : Tue Aug 13 07:44:24 2024
System time     : 0.000010633 seconds fast of NTP time
Last offset     : -0.000089578 seconds
RMS offset      : 0.000145360 seconds
Frequency       : 16.293 ppm fast
Residual freq   : -0.001 ppm
Skew            : 0.025 ppm
Root delay      : 0.014218345 seconds
Root dispersion : 0.000804991 seconds
Update interval : 1032.6 seconds
Leap status     : Normal

# 查看当前Chrony同步的时间源
[root@10-255-101-147 ~]# chronyc sources

# 输出解释:
# MS: 标记同步的状态符号。^表示备选时间源,*表示当前正在使用的时间源。
# Name/IP address: 时间源的主机名或IP地址。
# Stratum: 时间源的层级。
# Poll: 轮询时间间隔。
# Reach: Reachability, 表示与该时间源的最近轮询是否成功。
# LastRx: 上次收到时间更新的时间。
# Last sample: 最后一次采样的偏差量和它的时间差异。

MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^- ntp5.flashdance.cx            2  10   175   33m    -26ms[  -26ms] +/-  130ms
^- stratum2-1.ntp.mow01.ru.>     2  10    72   46m    -16ms[  -16ms] +/-   63ms
^- 1.117.63.30                   3   9   377   160  -4752us[-4752us] +/-  158ms
^- ntp7.flashdance.cx            2  10   377   672    -32ms[  -32ms] +/-  154ms
^- 120.25.115.20                 2  10    20   85m   +168us[  +80us] +/-   20ms
^+ 203.107.6.88                  2  10   377   218   +242us[ +242us] +/-   16ms
^* dns1.synet.edu.cn             1  10   377   506   -469us[ -559us] +/- 7377us
^- ntp.wdc2.us.leaseweb.net      2  10   157   34m  +6404us[+6338us] +/-  252ms
^- 119.28.206.193                2  10   374   96m   -281us[ -462us] +/-   53ms
^- time.cloudflare.com           3  10   213   23m    +25ms[  +25ms] +/-  139ms

# 手动执行系统时钟的步进调整,使其立即与时间源同步
[root@10-255-101-147 ~]# chronyc makestep
200 OK

# 查看连接到本地NTP服务器的客户端
[root@10-255-101-147 ~]# chronyc clients

# 输出解释:
# Hostname: 客户端主机名或IP地址。
# NTP: 接收的NTP数据包数。
# Drop: 丢弃的NTP数据包数。
# Int: 时间间隔。
# IntL: 上次接收时间间隔。
# Last: 上次接收NTP数据包的时间。
# Cmd: 接收的命令包数。

Hostname                      NTP   Drop Int IntL Last     Cmd   Drop Int  Last
===============================================================================
10.255.98.6                   263      0   8   -   156       0      0   -     -
10.255.101.203                271      0   8   -   107       0      0   -     -

客户端

客户端同步时间也使用chrony守护进程进行同步

确认是否安装chrony

systemctl status chronyd

如果没有安装,那就执行以下命令进行安装

# 安装
yum -y install chrony
# 开机自启
systemctl enable chronyd
# 启动
systemctl start chronyd

编辑/etc/chrony.conf,添加时间服务器为服务端地址,其余配置不用动

[root@10-255-101-203 ~]# 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
server 10.255.101.147 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

# Specify directory for log files.
logdir /var/log/chrony

# Select which information is logged.
#log measurements statistics tracking
[root@10-255-101-203 ~]#

修改完进行重启

systemctl restart chronyd

常用chronyc命令如下

# 查看 NTP 服务器列表及其详细信息
chronyc sources -v

# 查看 NTP 服务器的统计信息和性能数据
chronyc sourcestats -v

# 检查 NTP 服务器的在线状态
chronyc activity -v

# 查看系统时钟的跟踪状态和性能参数
chronyc tracking -v

# 强制系统时钟立即同步(慎用,可能影响正在运行的服务)
chronyc -a makestep

# 查看访问 NTP 服务器的客户端列表
chronyc clients

# 等待 Chrony 同步完成
chronyc waitsync

# 添加新的 NTP 服务器
chronyc add server <ntp_server_ip_or_hostname> [options]

# 删除现有的 NTP 服务器
chronyc delete <ntp_server_ip_or_hostname>

# 刷新 NTP 服务器的 IP 地址(如果服务器使用动态 DNS)
chronyc refresh

# 允许或拒绝特定主机访问 NTP 服务
chronyc allow <subnet_or_host>
chronyc deny <subnet_or_host>

# 查看 RTC(实时时钟)的参数
chronyc rtcdata

# 校正 RTC 时钟到系统时钟
chronyc trimrtc

# 查看 NTP 服务器统计信息
chronyc serverstats

# 查看当前 Chrony 守护进程的版本
chronyc -v

场景

监控时候,如果没有外网,服务端可以直接指定到自己,例如服务端那可以配置

server 10.255.101.147 iburst

其他的局域网内都可以向这里进行同步,这种情况就不需要外网了

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

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

相关文章

Java中等题-乘积最大子数组(力扣)

给你一个整数数组 nums &#xff0c;请你找出数组中乘积最大的非空连续 子数组 &#xff08;该子数组中至少包含一个数字&#xff09;&#xff0c;并返回该子数组所对应的乘积。 测试用例的答案是一个 32-位 整数。 示例 1: 输入: nums [2,3,-2,4] 输出: 6 解释: 子数组 […

Telemark电源TT-6E-BEAM SOURCE操作手侧含电路图接线

Telemark电源TT-6E-BEAM SOURCE操作手侧含电路图接线

详解LVS-dr模式

什么是LVS-dr模式 图解 在LVS-DR模式下&#xff0c;负载均衡器&#xff08;也称为调度器&#xff09;接收来自客户端的请求&#xff0c;并根据预设的调度算法将请求转发给后端的真实服务器&#xff08;也称为RS&#xff09;。真实服务器处理完请求后&#xff0c;直接将响应返回…

Jetpack Compose实战教程(六)

Jetpack Compose实战教程&#xff08;六&#xff09; 第六章 没有了margin&#xff0c;如何区分外边距&#xff1f;内边距&#xff1f; 文章目录 Jetpack Compose实战教程&#xff08;六&#xff09;一、前言二、本章目标三、开始编码3.1 特殊情况下的margin3.2 使用padding设…

基于Springboot+netty 的IM聊天室弹幕

代码地址 仓库地址 聊天室 创建springboot项目 因为我的NettyServer 是8080 所以我把服务端口改为了8081 引入netty 依赖 <dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId><version>4.1.92.Final</versi…

Prometheus+Grafana保姆笔记(1)——Prometheus+Grafana的安装

Prometheus Grafana 的组合在微服务项目中可以完成许多DevOps任务&#xff0c;它们共同提供了强大的监控和可视化功能。 我们陆续介绍Prometheus Grafana 的相关用法。 首先介绍PrometheusGrafana的安装。 安装 Prometheus Prometheus 是GO写的&#xff0c;并不依赖于 Ja…

【深度学习】注意力机制(Transformer)

注意力机制 1.基础概念 1.1 查询、键和值 在人类的注意力方式中&#xff0c;有自主性的与非自主性的注意力提示两种解释方式。所谓自主性注意力提示&#xff0c;就是人本身主动想要关注到的某样东西&#xff1b;非自主性提示则是基于环境中物体的突出性和易见性&#xff0c;…

8.13面试题目

美团商业分析实习生 一、8个球有一个重一点&#xff0c;最少称几次找出 2次 8个球中有一个重一点&#xff0c;最少称2次能找出来。 具体称重步骤如下&#xff1a; 第一次称重&#xff1a;将8个球分成三组&#xff0c;分别为3个球、3个球和2个球。将两组各3个球放在天平的两端…

【搜索二维矩阵】python刷题记录

R4-二分查找专题 直接二维变一维&#xff0c;然后二分查找就可以了 class Solution:def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:nums[i for row in matrix for i in row]def binfind(the,target):low,high0,len(the)-1while low<high:mid(l…

猫罐头挑选指南!猫咪肥胖有什么危害?健康主食罐挑选攻略!

今天有位铲屎官带着一只17斤的布偶来我们医院。猫猫三岁了&#xff0c;绝育两年&#xff0c;现在因为太胖了&#xff0c;舔毛都不太方便。铲屎官说它平时不太爱动。我给体检后发现甘油三酯高&#xff0c;其他都正常&#xff0c;但必须开始减肥了&#xff0c;猫咪太胖可不好。 一…

江协科技STM32学习笔记

第01章 STM32简介及开发环境搭建 1.1 STM32简介 1.1.1 STM32F103C8T6 系列&#xff1a;主流系列STM32F1 内核&#xff1a;ARM Cortex-M3 主频&#xff1a;72MHz RAM&#xff1a;20K&#xff08;SRAM&#xff09; ROM&#xff1a;64K&#xff08;Flash&#xff09; 供电…

开学季好物分享!全能抗打运动耳机!

大家好&#xff01;开学季来临&#xff0c;在学校的时候&#xff0c;一些运动和体育项目是在所难免的&#xff0c;但是在运动过程中肯定是枯燥无味的&#xff0c;所以这时候就需要一款合适的运动耳机陪伴我们。作为一名对运动耳机有较高要求的学生&#xff0c;我最近发现了一款…

配置jconsole远程监控

# 启动命令 -Djava.rmi.server.hostname192.168.0.67 #java程序所在机器ip -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port8011 #jconsole端口 -Dcom.sun.management.jmxremote.authenticatetrue # 配置为false 就不需要后面的password和access配置 -D…

普元EOS-用户、角色、权限的设计思路

1 前言 普元EOS作为企业应用开发&#xff0c;肯定要对用户、角色、权限这些内容进行管理&#xff0c;本文就描述这些内容EOS的设计思想&#xff0c;以及如何使用这些工具。 2 传统的访问权限控制 先说一个RBAC的概念&#xff0c;就是 Role-Based Access Control&#xff0c;中…

Java Web —— 第五天(请求响应2)

响应数据 ResponseBody 类型:方法注解、类注解 位置: Controller方法上/类上 作用:将方法返回值直接响应&#xff0c;如果返回值类型是 实体对象/集合&#xff0c;将会转换为JSON格式响应 说明: RestController Controller ResponseBody ; package com.example.springbo…

嘉实基金“青黄不接”:董事长赵学军被调查,明星经理基金绿油油

尚未实现“打造中国版的贝莱德”之梦&#xff0c;手握万亿资产管理规模的嘉实基金便“出事”了。 近日&#xff0c;嘉实基金在官网披露了一则临时公告&#xff0c;称其于2024年8月9日从相关方面获悉&#xff0c;该公司董事长赵学军因个人问题正配合有关部门调查。目前&#xf…

录音怎么转换成mp3格式?6款免费音频转换mp3的软件大公开!(赶紧收藏)

录音怎么转换成mp3格式&#xff1f;录音是我们日常记录生活和工作的常见方式之一。然而&#xff0c;不同的音频格式往往会带来兼容性和播放上的困难。如果您曾因为无法播放某个录音而烦恼&#xff0c;或者希望能够方便地将录音转换成mp3格式&#xff0c;那么本文就能告诉您答案…

那些年我们一起遇到过的奇技淫巧

EVAL长度限制突破技巧 PHP Eval函数参数限制在16个字符的情况下 &#xff0c;如何拿到Webshell&#xff1f; 写一段限制长度在小于17位的字符&#xff0c;拿下webshell <?php highlight_file(__FILE__); $param $_REQUEST[param]; if (strlen($param) < 17 &&am…

【安卓】播放多媒体文件

文章目录 播放音频播放视频 播放音频 在Android中播放音频文件一般是使用MediaPlayer类实现的&#xff0c;它对多种格式的音频文件提供了非常全面的控制方法&#xff0c;从而使播放音乐的工作变得十分简单。 MediaPlayer类中常用的控制方法。 常用方法名描述setDataSource()设…

合作文章(IF=14.3)|RNA-Seq和ChIP-Seq助力SOX12调节肝癌细胞的机制研究以及肝癌联合治疗的免疫策略的发现

肝细胞癌(HCC)是全球严重的健康负担。长期以来&#xff0c;HCC的治疗选择很少&#xff0c;但免疫检查点阻断(ICB)近年来取得了重大突破。在肿瘤免疫微环境(TIME)中&#xff0c;免疫细胞通过配对的免疫检查点或其他信号与肿瘤细胞相互作用&#xff0c;形成异质的免疫抑制生态系统…