客户端可以访问ntp时钟源,时间却一直不同步的问题

2024-08-23 13:04

本文主要是介绍客户端可以访问ntp时钟源,时间却一直不同步的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        ntp时钟源通常是通过开放123 的udp端口对外提供ntp服务的,udp端口的访问可以通过nc -uvz xx.xx.xx.xx 123 端口进行验证,验证发现ntp时钟服务的123端口是开放的,也没有防火墙拦截123端口,但为什么客户端不同步ntp时钟源呢,这个ntp时钟源仅仅是局域网的一台机器而已。

        客户端采用的是chrony,正常情况下执行systemct restart chrony,然后通过systemctl status chrony 是可以看到如下的信息的:

master chronyd[23833]: Selected source 172.21.xx.xx

但是使用出问题的这台ntp服务器的客户端却一直没有显示上面的提示提示,通过journalctl -xe | grep chrony 也没有看到有用的信息,最好只能通过tcpdump报文抓取ntp的报文,最后发现了问题:

由于NTP服务器自身没有同步到一个有效的上游时间源,它无法提供可靠的时间服务给客户端。客户端检测到这一点后,将不会从该服务器同步时间。

用wireshark解析的部分报文信息如下:

 报文分析:

  1. Peer Clock Stratum: unspecified or invalid (0)
    这意味着NTP服务器没有同步到一个有效的上游时间源。一个正常的NTP服务器应该有一个有效的Stratum值(通常是1到15),这表示它距离原始时间源的距离。

  2. Reference ID: NULL
    Reference ID是NTP服务器所同步的时间源的标识。在这里,它被标记为NULL,这意味着服务器没有成功同步到任何时间源。

  3. Reference Timestamp: NULL
    这个时间戳应该是NTP服务器最后一次从其上游时间源接收到的时间。如果它是NULL,则表明服务器从未成功地从上游时间源接收过时间。

  4. Leap Indicator: unknown (clock unsynchronized)
    这表明NTP服务器的时钟是未同步的,因此它无法提供准确的时间信息。

  5. Origin Timestamp: Sep 28, 2092 06:11:37.564591642 UTC
    这个时间戳远远超出了当前时间,通常这不应该发生。这可能是由于服务器内部的问题或错误配置导致的。

 最后通过设置ntp服务器的基准时钟解决:

pool ntp1.aliyun.com iburst
pool ntp2.aliyun.com iburst

这篇关于客户端可以访问ntp时钟源,时间却一直不同步的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1099455

相关文章

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁