0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

NTP时间同步软件chrony简介和配置方法

马哥Linux运维 来源:51CTO 2024-01-02 10:45 次阅读

一、chrony简介

chrony是一款开源的NTP时间同步软件,主要用于Unix-like计算机系统(如Linux、BSD和macOS)来提供高精度的时间同步。Chrony的设计注重性能和可靠性,具有低延迟、低CPU占用率、低内存消耗等优点。chrony由两个程序组成,chronyd(服务器端)和chronyc(客户端)

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

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

二、实验环境

2.1 实验拓扑

如图,两台服务器Server1、Server2连接到同一网络

0336fe86-a7c7-11ee-8b88-92fbcf53809c.jpg

2.2 本地环境规划

主机名 IP地址 操作系统版本 内核版本
Server1 172.16.0.134/24 Rocky Linux 8.9 (Green Obsidian) Linux 4.18.0-513.5.1.el8_9.x86_64
Server2 172.16.0.150/24 Rocky Linux 8.9 (Green Obsidian) Linux 4.18.0-513.5.1.el8_9.x86_64

Net1网络中配置了NAT(网络地址转换),两台服务器均可以访问公网

三、配置时间同步

3.1 安装chrony

[root@Server1 ~]# rpm -qa | grep chrony
chrony-4.2-1.el8.rocky.1.0.x86_64

Rokcy Linux 8.9版本默认安装了chrony,验证安装状态:

3.2 配置Server1从公网时间源服务器同步时间

编辑“/etc/chrony.conf”文件:

[root@Server1 ~]# vim /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# pool 2.rocky.pool.ntp.org iburst      # 注释该行,添加如下两行,理论上想添加多少时间服务器都可以
Server ntp.aliyun.com iburst            # 阿里时间源服务器
Server time1.cloud.tencent.com iburst    # 腾讯时间源服务器

重启chronyd服务,并设置开机自启:

[root@Server1 ~]# systemctl restart chronyd
[root@Server1 ~]# systemctl enable chronyd
[root@Server1 ~]# systemctl is-active chronyd      # 查看chronyd服务是否正常运行
active
[root@Server1 ~]#

查看时间同步状态:

[root@Server1 ~]# chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 203.107.6.88                  2   6    37    63    +49us[+2956us] +/-   23ms
^- 106.55.184.199                2   6   127    60  +1891us[+1891us] +/-   47ms
[root@Server1 ~]# 
[root@Server1 ~]# chronyc 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               
===============================================================================
^* 203.107.6.88                  2   6    77     3  -3557us[-3824us] +/-   26ms
^+ 106.55.184.199                2   6   257     1  +2021us[+2021us] +/-   46ms
[root@Server1 ~]#

chronyc sources输出结果解析:

<1> M

这表示信号源的模式。^表示服务器,=表示对等方,#表示本地连接的参考时钟。

<2> S

此列指示源的状态。

* 表示chronyd当前同步到的源。

+ 表示可接受的信号源,与选定的信号源组合在一起。

- 表示被合并算法排除的可接受源。

?指示已失去连接性或其数据包未通过所有测试的源。它也显示在启动时,直到从中至少收集了3个样本为止。

x 表示chronyd认为是虚假行情的时钟(即,其时间与大多数其他来源不一致)

〜 表示时间似乎具有太多可变性的来源。

<3> Name/IP address

这显示了源的名称或IP地址,或参考时钟的参考ID。

<4> Stratum

这显示了来源的层,如其最近收到的样本中所报告的那样。层1表示一台具有本地连接的参考时钟的计算机。与第1层计算机同步的计算机位于第2层。与第2层计算机同步的计算机位于第3层,依此类推。

<5> Poll

这显示轮询源的速率,以秒为单位的时间间隔的以2为底的对数。因此,值为6表示每64秒进行一次测量。chronyd会根据当前情况自动更改轮询速率。

<6> Reach

这显示了源的可达性寄存器以八进制数字打印。寄存器有8位,并在每个从源接收或丢失的数据包上更新。值377表示从最后八次传输中收到了对所有用户的有效答复。

<7> LastRx

此列显示多长时间前从来源接收到了最后一个好的样本(在下一列中显示)。未通过某些测试的测量将被忽略。通常以秒为单位。字母m,h,d或y表示分钟,小时,天或年。

<8> Last sample

此列显示上次测量时本地时钟与源之间的偏移。方括号中的数字表示实际测得的偏移量。可以用ns(表示纳秒),us (表示微秒),ms(表示毫秒)或s(表示秒)作为后缀。方括号左侧的数字表示原始测量值,已调整为允许此后施加于本地时钟的任何摆度。

<9> +/-指示器后面的数字表示测量中的误差范围。正偏移表示本地时钟位于源时钟之前。

例如:现有时钟服务器time_server:它的层级是2,一台主机node1从time_server同步时间,那么node1主机的层级就是3,以此类推另一台在node1同步时间,那它的层级就是4。

0341944a-a7c7-11ee-8b88-92fbcf53809c.jpg

3.3 配置Server2从Server1时间源同步时间

Server1上再次编辑“/etc/chrony.conf”文件:

[root@Server1 ~]# vim /etc/chrony.conf 
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# pool 2.rocky.pool.ntp.org iburst
Server ntp.aliyun.com iburst
Server time1.cloud.tencent.com 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
allow 172.16.0.0/24    # 配置访问规则,仅允许该网络的客户端访问


# Serve time even if not synchronized to a time source.
#local stratum 10
local stratum 10      # 即使未同步到时间源,也要提供时间同步服务,当前系统层级为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

重启chronyd服务:

[root@Server1 ~]# systemctl restart chronyd

防火墙放行ntp服务:

[root@Server1 ~]# firewall-cmd --add-service=ntp --permanent 
success
[root@Server1 ~]# firewall-cmd --reload
success

Server2上编辑“/etc/chrony.conf”文件:

[root@Server2 ~]# vim /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# pool 2.rocky.pool.ntp.org iburst    # 注释该行,添加下面一行
Server 172.16.0.134 iburst

重启chronyd服务,并设置开机自启:

[root@Server2 ~]# systemctl restart chronyd
[root@Server2 ~]# systemctl enable chronyd

查看时间同步状态:

0354de9c-a7c7-11ee-8b88-92fbcf53809c.jpg

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206738
  • 计算机
    +关注

    关注

    19

    文章

    6651

    浏览量

    84557
  • 操作系统
    +关注

    关注

    37

    文章

    6288

    浏览量

    121887
  • 开源
    +关注

    关注

    3

    文章

    2989

    浏览量

    41720

原文标题:Linux配置时间同步 - chrony

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ntp源代码编译,同步

    最近一个小任务,为公司的某款产品添加上ntp同步功能,由于只是为了测试硬件而同步时间,所以选择从网上下载源代码进行编译,同步。这里使用的是
    发表于 12-30 13:00

    NTP协议简介

    戳选项发展而来。NTP用于将计算机客户或服务器的时间与另一服务器同步,使用层次式时间分布模型。在配置时,
    发表于 07-29 06:50

    通过NTP获取Epoch/Unix时间NTP代表网络时间

    通过NTP获取 Epoch/Unix时间NTP代表“网络时间协议”,它是用于在计算机系统之间进行时钟同步的网络协议。 换句话说,它用于
    发表于 01-27 06:03

    求解关于AT ESP8266 无法实现NTP时间同步的问题?

    联网,本以为可以大功时,却发现NTP无法同步。关于NTP配置的各种文档看了很多,使用都很简单,没有特殊的配置要求。但是搞了一下午没有任何进展
    发表于 03-15 14:36

    NK-980IOT开发板测评之NTP网络时间同步至RTC

    前言有幸评测了NK-980IOT开发板的RTC功能,当时只是测试了RTC离线的使用,时间上会有累积误差。既然开发板有联网功能,那就可以NTP获取网络时间NTP
    发表于 07-11 10:34

    NTP网络时间服务器在大型局域网的同步技术

    本章利用双机互备型ntp网络时间服务器实现局域网的时间同步解决方案。 1时间同步系统的
    发表于 07-24 15:48 1895次阅读

    实现嵌入式linux自动同步网络时间---NTP

    因为ARM板断电重启问题,为保证能获取到准确的实时时间,所以需要实现自动从网络上获取时间,这就需要用到NTPNTP是网络时间协议(Netw
    发表于 11-02 09:36 12次下载
    实现嵌入式linux自动<b class='flag-5'>同步</b>网络<b class='flag-5'>时间</b>---<b class='flag-5'>NTP</b>

    NTP服务器配置概述

    服务器进行自动同步ntp server与客户端必须要ping通 none配置:   clock protocol none     #时间协议clock timezone beij
    的头像 发表于 07-17 11:25 816次阅读

    时间同步NTP网络时间服务器

    NTP即网络时间协议(Network Time Protocol),用于通过数据包交换的可变延迟数据网络在计算机系统之间进行时钟同步NTP从1985年开始运行,是目前使用的最古老,最
    的头像 发表于 07-25 15:50 924次阅读
    【<b class='flag-5'>时间</b><b class='flag-5'>同步</b>】<b class='flag-5'>NTP</b>网络<b class='flag-5'>时间</b>服务器

    NTP网络时间服务器,实现安防系统时间同步

    按 NTP服务器的等级传播。 NTP网络时间服务器是以校正终端设备时间的一款标准服务器,其标准协议NTP标准符合大多数的计算机,摄像机,监控
    的头像 发表于 08-16 15:49 404次阅读
    <b class='flag-5'>NTP</b>网络<b class='flag-5'>时间</b>服务器,实现安防系统<b class='flag-5'>时间</b><b class='flag-5'>同步</b>

    ntp同步原理和时钟层级

    。通常将从权威时钟获得时钟同步ntp服务器的层数设置为Stratum1,并将其作为主时间服务器,为网络中其他的设备提供时钟同步。而Stratum 2则从Stratum 1获取
    的头像 发表于 10-27 14:14 1242次阅读
    <b class='flag-5'>ntp</b><b class='flag-5'>同步</b>原理和时钟层级

    和监控安防系统息息相关的NTP网络时间服务器

    不可能的,比如说你有100台电脑,时间都要保持一致,第一种方法是每台电脑修改时间,第二种方法就是我们说的ntp服务器,
    的头像 发表于 01-03 14:56 248次阅读
    和监控安防系统息息相关的<b class='flag-5'>NTP</b>网络<b class='flag-5'>时间</b>服务器

    docker部署NTP时间服务器chrony

    chrony是网络时间协议 (NTP) 的通用实现。它可以将系统时钟与 NTP 服务器、参考时钟(例如 GPS 接收器)以及使用手表和键盘的手动输入
    的头像 发表于 01-10 09:22 319次阅读

    Linux上怎么配置NTP时间同步呢?

    。下面是一个详细的关于如何在Linux上配置NTP时间同步的指南。 第一步:安装NTP服务器软件
    的头像 发表于 01-16 16:03 477次阅读

    ntp同步原理是什么

    NTP(Network Time Protocol,网络时间协议)是一种用于同步计算机系统时间的协议。那么ntp
    的头像 发表于 01-19 17:24 477次阅读
    <b class='flag-5'>ntp</b>的<b class='flag-5'>同步</b>原理是什么