linux进阶 --- chrony服务器

2024-02-27 1103阅读

温馨提示:这篇文章已超过461天没有更新,请注意相关的内容是否还可用!

chrony服务器

(1)定义:

是一个开源自由的网络时间协议NTP的客户端与服务器端软件。让计算机保持系统时钟与时钟服务器(NTP)同步。chrony由两个程序组成,chronyd(服务器端)和chronyc(客户端)

  • chronyd:后台运行的守护进程,用于调整内核中运行的系统时钟和时政服务器同步,它确定了计算机增减时间的比率,并对此进行平滑调整。
  • chronyc:提供用户界面,用于监控性能并进行多样化的配置。可在chronyd实例控制的计算机上工作,也可在一台不同的远程计算机工作
    查找软件安装情况
    [root@localhost ~]# rpm -qa | grep chrony
    chrony-3.3-3.el8.x86_64
    

    (2)安装配置

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

    chrony的配置文件是:/etc/chrony.conf

    详细内容:

    # 使用 pool.ntp.org 项目中的公共服务器。以server开,理论上想添加多少时间服务器都可以。

    server 0.centos.pool.ntp.org iburst

    server 1.centos.pool.ntp.org iburst

    # 根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中,在系统重启后为系统做出最佳时间补偿调整。
    driftfile /var/lib/chrony/drift

    # 如果系统时钟的偏移量大于1秒,则允许系统时钟在前三次更新中步进。
    makestep 1.0 3

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

    # 通过使用 hwtimestamp 指令启用硬件时间戳
    hwtimestamp *

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

    # 即使未同步到时间源,也要提供时间。
    # Serve time even if not synchronized to a time source.

    local stratum 10(取值范围1-15,当默认时钟源无法同步,则当前系统层级为10)

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

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

    # 选择日志文件要记录的信息。
    log measurements statistics tracking

    rtcsyc:该指令使得chronyd定期将系统时间复制到RTC时钟。

    (3)同步网络时间服务器

    进入/etc/chrony.conf进行修改

    配置时间源:server  时间源IP  iburstlinux进阶 --- chrony服务器

    iburst:加快调整时间的频率(突发)

    ntp.aliyun.com --- 阿里云授时中心

    设置开机启动和重启服务

    systemctl enable chronyd --- 开机启动
    systemctl restart chronyd --- 重启服务

    查看时间同步

    timedatectl status --- 时间同步状态
    timedatectl set-ntp true --- 开启网络时间同步

    (4)chronyc 命令

    • chronyc sources -v --- 查看ntp_servers
    • chronyc sourcestats -v --- 查看ntp_servers状态
    • chronyc activity -v --- 查看net_servers是否在线
    • chronyc tracking -v --- 查看ntp详细信息
    • chronyc -a makestep --- 强制同步系统时钟

      例:强制同步系统时钟(特定条件才能进行,超过步进时间则无法同步)

      [root@localhost ~]# date -s "2023-09-11 11:30"
      Mon Sep 11 11:30:00 CST 2023
      [root@localhost ~]# timedatectl
                     Local time: Mon 2023-09-11 11:30:10 CST
                 Universal time: Mon 2023-09-11 03:30:10 UTC
                       RTC time: Mon 2023-06-12 02:34:29
                      Time zone: Asia/Shanghai (CST, +0800)
      System clock synchronized: no
                    NTP service: active
                RTC in local TZ: no
      [root@localhost ~]# chronyc -a makestep
      200 OK
      [root@localhost ~]# date
      Mon Sep 11 11:30:30 CST 2023
      [root@localhost ~]# systemctl restart chronyd --- 需重启chronyd服务才可同步
      [root@localhost ~]# date
      Mon Jun 12 10:35:16 CST 2023
      [root@localhost ~]# timedatectl
                     Local time: Mon 2023-06-12 10:35:26 CST
                 Universal time: Mon 2023-06-12 02:35:26 UTC
                       RTC time: Mon 2023-06-12 02:35:25
                      Time zone: Asia/Shanghai (CST, +0800)
      System clock synchronized: yes
                    NTP service: active
                RTC in local TZ: no

      (5)chronyc sources 输出结果解析

      linux进阶 --- chrony服务器

      M

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

      S

      此列指示源的状态。

      • * 表示chronyd当前同步到的源。
      • + 表示可接受的信号源,与选定的信号源组合在一起。
      • - 表示被合并算法排除的可接受源。
      • ? 指示已失去连接性或其数据包未通过所有测试的源。它也显示在启动时,直到从中至少收集了3个样本为止。
      • x 表示chronyd认为是虚假行情的时钟(即,其时间与大多数其他来源不一致)
      • 〜 表示时间似乎具有太多可变性的来源。

         Name/IP address

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

         Stratum

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

         Poll

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

         Reach

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

         LastRx

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

         Last sample

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

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

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

        linux进阶 --- chrony服务器
        在另一台虚拟机上同步此台虚拟机的ntp状态
        linux进阶 --- chrony服务器
        linux进阶 --- chrony服务器

        例:node1向time_server同步时,无法同步;则第二台主机node2依旧向node1同步时间,则此时node2的层级是(11),同步的时间为(node1本地系统时间的时钟源)

        进入/etc/chrony.conf中,修改server端ip为不存在ip
        linux进阶 --- chrony服务器
        linux进阶 --- chrony服务器
        重启服务再次查看同步时钟源
        linux进阶 --- chrony服务器
        查看node1层级
        linux进阶 --- chrony服务器
        查看node2层级
        linux进阶 --- chrony服务器

        (6)常用命令

        chrony -> 服务端:chronyd;客户端:chronyc

        chronyc sources -v -> 时钟源查看

        timedatectl -> 当前系统是否已同步时间、NTP的服务状态

        chronyc tracking -> 查看详细信息

        配置文件:/etc/chrony.conf

         

        配置文件中:

        server 时钟源地址 iburst

        allow:不配置,不允许所有客户端访问

        (allow 192.168.0.0/16)

        local stratum 10:仅表达距真正时钟源较远

        rtcsync:将系统时钟复制给硬件时钟

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]