• NTP/NTPD-时间同步服务


    NTP/NTPD

    1、简介

    1.1、ntpd

    ntpd服务,拥有cs二合一性质,在本地对上级就是c端,对下级就是s端。新版的ntp不再对ntp cs端做区分了,只有ntpd端。配置文件在/etc/ntp.conf文件中

    # /etc/ntp.conf内,restrict部分为server配置,server部分为client配置
    主动更新时间由每64s更新一次,到最高1024s更新一次#这两可以通过 minpoll和maxpoll 字段进行配置
    
    • 1
    • 2

    ntpd并不能在任何情况下保持同步。当上级服务器时间与本地差距大于1000s,本地ntp服务会判断为硬件有问题(bios的cmos电池有问题,这个是最常见的)从而停止服务,这时需要人工使用ntpdate 进行时钟同步

    1.2、ntpdate

    ntpdate只是一个时间同步命令、与ntp同步方式完全不同,只会盲目听信上级ntp服务器。这就非常容易导致,如果上级服务器是错的,那么下级也会跟着错。且相比于ntpd,更加的不安全性。

    大部分执行程序是以来连续时钟的(如数据库的事务),即默认时间不会进行跃变,但ntpdate这个命令可以轻易就做到跃变,这会导致程序错误

    2、排查步骤

    在Linux系统中排查NTP不同步的问题,可以按照以下步骤进行排查:

    1. 检查NTP服务状态:运行命令 systemctl status ntpservice ntp status 查看NTP服务是否正在运行。如果服务未运行,可以使用 systemctl start ntpservice ntp start 启动NTP服务。

    2. 检查NTP配置文件:通常NTP的配置文件位于 /etc/ntp.conf。可以使用编辑器打开该文件,并检查以下几个关键配置项:

      • server 配置项:确认配置了正确的NTP服务器地址。
      • restrict 配置项:确保设置了适当的访问限制规则,以防止未授权的访问。
      • driftfile 配置项:检查该文件路径是否正确。
    3. 检查网络连通性:确保Linux系统能够正常连接到NTP服务器。可以尝试使用 ping 命令测试网络连通性,如 ping ntp.example.com

    4. 检查防火墙设置:如果系统上运行有防火墙,需要确保防火墙允许NTP流量通过。可以使用 iptablesfirewalld 命令配置防火墙规则,以允许NTP流量通过。

    5. 检查时间同步状态:运行命令 ntpq -p 查看当前系统与NTP服务器之间的时间同步状态。正常情况下,reach 列应显示为 377,表示与服务器的同步良好。

      ntpq -p #用于确认与上级ntp服务器的通讯情况,会按照列表逐个列出具体情况,下面会讲解对应列的字段含义
        remote: 远程使用的上级ntp服务器ip或者主机名,最主要则是最左边的符号
                 * 表示目前正在作用的上级ntp服务器
                 + 表示作为*的候选上级ntp
                 - 表示该服务器不合乎链接规格
                 x 表示不可用
        refild: 目前链接的ntp服务器的上级ntp服务器,即以当前服务器为基准上级的上级
        st:     距离最顶层的时钟(ntp服务母节点,参考java的超类)距离,可抽象为到母节点还有几个上级服务器,数值越低越精确
        t:      本地ntp与上级ntp节点的通讯方式#u单播或者广播、b广播、l本地通讯没节点
        when:   与上级ntp最后一次同步时间,一般没有单位,默认s
        poll:   同步频率
        reach:  当前本地ntp与上级ntp成功连接次数,8进制,成功就会增加次数
        delay:  当前本地与上级ntp成功通讯,本地从发起到接收的往返时间(毫秒)
        offset: 当前本地到上级ntp时间偏移量,最小值为0,这个越低越准确。 负数表示快了,正数表示慢了
        jitter: 当前本地到上级ntp平均时间偏移量,最小值为0,这个越低越准确。
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
    6. 重启NTP服务:如果以上步骤都没有解决问题,可以尝试重启NTP服务,运行命令 systemctl restart ntpservice ntp restart

    7. 如以上都没有解决,需要抓取网络包进一步分析

      1、网络包首先排查ntp是否发送报文
      2、其次接收端是否处理
      3、之后依照发送到处理的这段时间是多少,默认情况下ntpd主动更新时间间隔是64s-1024s左右
      
      • 1
      • 2
      • 3

  • 相关阅读:
    Python串口小结1
    分布式Session如何存储
    Mysql的语句执行很慢,如何分析排查?
    Linux安装Oracle和postgrepSQL数据库
    【SA8295P 源码分析】89 - QNX AIS Camera qcarcam_test 可执行程序 main() 函数 源代码流程分析
    vue.js el-tooltip根据文字长度控制是否提示toolTip
    CTF-include
    折线图的代码
    C 语言中关键字const
    第二十四章《学生信息管理系统》第2节:系统功能实现
  • 原文地址:https://blog.csdn.net/Princesk/article/details/133927819