NTP时钟同步服务器

目录

一、什么是NTP?

二、计算机时间分类

三、NTP如何工作?

四、NTP时钟同步方式(linux)

五、时间同步实现软件(既是客户端软件也是服务端软件)

六、chrony时钟同步软件介绍

七、/etc/chrony.conf配置文件介绍

八、chronyc命令

九、网络公共NTP服务

十、Chrony时钟同步搭建案例


一、什么是NTP

网络时间协议(NTP)是时间同步协议。它用于在服务器和客户端之间同步时间。服务器端使用的是UDP端口号是123和323。使用NTP的目的是使所有设备的时间与网络上时钟服务器的时间同步,以使网络上所有设备的时间保持一致。对于提供NTP服务的服务器,它既可以作为时间源接受来自其它客户端的同步,自己本身也可做为客户端向网络上的其它时钟服务器同步时间。

二、计算机时间分类

1、系统时间:一般来说就是我们使用date命令查看到的时间,linux系统下所有时间的调用都使用的是系统时间,除了直接访问硬件时间的命令如: clock。

2、硬件时间(RTC): 主板BIOS中的时间,由主板电池供电来维护运行,系统在开机时会读取硬件时间,并根据硬件时间来设置系统时间,系统开机之后时间就由系统来管理,不在受硬件时间的控制。

三、NTP如何工作?

1.设备A向设备B发送NTP消息。消息离开设备A时带有时间戳。时间戳为10:00:00 am(T1)。

2.当此NTP消息到达设备B时,设备B添加其自己的时间戳。时间戳是11:00:01 am(T2)。

3.当此NTP消息离开设备B时,设备B添加其自己的时间戳并将时间戳更改为11:00:02(T3)。

4.设备A收到响应消息后,设备A的本地时间为上午10:00:03(T4)。

5.此时,设备A具有足够的信息来计算两个重要参数:

1、NTP数据包的往返时延Delay=设备A发送消息到收到消息之间所经历的时间-设备B处理消息数据所消耗的时间=(T4-T1)-(T3-T2)=2秒。

2、设备A和设备B之间的时间差offset(平均值)=设备B当前时间-设备A当前时间≈((设备A发给设备B两者当时时间差)+(设备B回复设备A两者当时时间差))/2=1小时。

说明:由于设备A发送给设备B的时间,在设备B收到之时、设备A当前的时间就从之前10点增加到了消息在到达设备B时途中所花费的时间,因此T2-T1的时间差就多增加消息发给设备B途中所花费的时间,并非两者实时的时间差。同理T3-T4的时间差值就少计算了设备B回复给设备A消息途中花费的时间差,并不是设备A收到消息当时本地的时间减去此时设备A的时间,因为在设备A收到消息时,设备B的时间已经在消息回复途中增加了。因此为了尽可能保持两者时间的同步,时间差取的是平均值并非丝毫不差。

四、NTP时钟同步方式(linux

1、直接同步:

使用ntpdate命令进行同步,直接进行时间变更。如果服务器上存在一个12点运行的计划任务,当前服务器时间是13点,但标准时间是11点,使用此命令可能会造成任务重复执行。因此使用ntpdate同步可能会引发风险,因此该命令也多用于配置时钟同步服务时第一次同步时间时使用。

2、平滑同步:

使用ntpd进行时钟同步,可以尽可能小的减少系统计划任务数量的重复执行,它每次同步时间的偏移量不会太陡,是慢慢来的。正因这样,ntpd平滑同步可能消耗的时间会比较常,一时间难以看出系统时间变化。

描述:假设设备A当前的时间是13:00,通过联系时钟同步服务器计算推算出了当前的标准时间是8:00、与标准时间差5h。如果此时设备A采用平滑同步时间的工作方式,那么设备A并不会直接将当前时间减少5h,调整到标准时间8:00。而是采用平滑的、一点一点的缩小与标准时间差。比如:一开始设备A先将本地当前时间13:00向前偏移2h,调整到11:00点;然后时间从11:00开始向后接着计时,其间设备A就重复执行了从11:00到13:00之间预先设置好的计划任务如黄色框区域所包含的计划任务。当设备A时间到了15:00时又进行了一次时间的平滑同步,将当前系统时间由15:00点向前偏移了2h,假设偏移后的时间是14:00;之后系统开始从14:00继续开始计时,其间设备A只是重复执行了第二个黄色框时间内的计划任务。当设备系统时间为19:00时,设备A又开始进行时间的平滑同步,将系统当前时间向前偏移1h变成18:00;然后继续开始计时,其间同样只是重复执行了从18:00到19:00之间第三个黄色框时间内的计划任务。通过以上过程,设备A总共执行了3次时间的平滑同步:减2h---->减2h----->减1h。设备A系统时间总共减少了5个小时,最终减少的时间和标准时间差相同以此通过几次时间平滑偏移完成了系统时间和标准时间的同步一致,并且尽可能小的减少了系统内的计划任务因时间调整重复执行的不同类型任务数量。

五、时间同步实现软件(既是客户端软件也是服务端软件)

*由于客户端系统时间经常时而不准,为了能让其在任何情况下向NTP服务器自动同步时间,需保持客户、服务端程序在后台持续运行。

1、ntp: 将主机系统时间和世界协调时间UTC进行同步,在局域网内误差可达0.1ms,在互联网内绝大地方时间误差控制在1-50ms。

2、chrony: 红帽系统8.0以后系统默认安装的ntp服务软件,可使系统时间与NTP服务器、GPS接收器以及手表进行同步。还可以作为NTP服务器为其它客户端提供时钟同步服务。在局域网内误差控制在几十微秒,在互联网上时间同步误差控制在几十毫秒内,时间同步更精准。

六、chrony时钟同步软件介绍

两个主要程序:

1、chronyd: 后台运行的NTP服务守护进程,用于将内核控制的系统时间和时钟服务器时间进行同步。并根据从NTP服务器获取的时间信息计算出标准时间差,并以此对系统时间进行补偿调整。

2、chronyc: 客户命令行工具,用于监控性能并进行多样化配置。它既可以在运行chronyd实例的计算机上进行使用,也可以在一台不同的远程计算机上进行使用。

服务单元unit文件: /usr/lib/systemd/system/chronyd.service

监听端口: 323/udp,123/udp(为了兼容老版红帽系统自带的的ntp时间同步软件)

配置文件:/etc/chrony.conf

七、/etc/chrony.conf配置文件介绍

  • server-----指定本机要同步的NTP服务器IP地址或域名。iburst选项表示时间源可达时,一下子发8个数据包而不是一个数据包向服务器同步时间。包间隔为2s,可加速用户初始时间同步速度。
  • driftfile----根据从时间源获取的标准时间计算出系统本身调整时间的差值,并将其记录到此处指定的文件中,以便系统重启后为调整系统时间做补偿。
  • rtcsync----开启内核模式。使内核控制的系统时间每11分钟拷贝到实时时间RTC,即硬件时间内。
  • allow/deny  -----设置是否允许某台主机、子网、或者网络访问到本系统NTP服务。
  • cmdallow/cmddeny-------指定那台主机可以通过chronyd使用控制命令。
  • bindcmdaddress-----指定chronyd时间同步服务所监听的接口IP地址
  • makestep------为客户端的时钟同步设置时间差阈值。只有用户系统时间偏差超过所允许的时间阈值时,进行系统时间的调整。
  • local stratum 10----即使上面server指令中的时间服务器不可用,也允许将本地时间作为标准时间授时给其它客户端。我们知道NTP组网架构有层级划分:如阿里云服务器为企业内部的A1设备授时------>A1设备又为企业的A2、A3设备提供时间同步服务------->A3设备又给企业内的A4设备提供NTP服务。这样站在阿里云服务器角度,阿里云服务器就属于0层---->A1设备属于1层------>A2、3设备属于2层------>A4设备就属于3层了(层:客户机到达时钟源服务器中间所经历的其它NTP服务器跳数)。因此,"local stratum 10"就表示在server处的服务器不可访问时,本系统作为NTP服务器只给位于其下(从本服务器开始算起:服务器本身属于0层)10层内的设备提供授时服务。

八、chronyc命令

help----查询更多有关chronyc的交互命令

accheck-----指定客户端地址或域名检查其是否可以访问到本地ntp服务器

activity-----显示当前有多少NTP服务源在线/离线

sources [-v]-----显示当前时间源的同步信息

sourcestats [-v]------显示当前时间源的同步统计信息

add server  ------手动添加一台新的NTP服务器(并不会保存到配置文件中)

clients -----查看有哪些客户端已访问到本服务器

delete ------手动删除NTP服务器

settime -----手动设置守护进程时间

sracking-------显示系统时间信息

九、网络公共NTP服务

cn.pool.ntp.org------虚拟化集群的ntp服务器

ntp.aliyun.com-----阿里云linux公共NTP服务器

time.pool.aliyun.com------阿里云windows的NTP服务器

s1b.time.edu.cn--------清华大学NTP服务器

210.72.145.44--------国家授时中心服务器

十、Chrony时钟同步搭建案例

实验环境:

实验描述:

NTP-Server/Client扮演客户机角色向阿里云同步时间、同时也扮演内网NTP时钟源服务器角色向内网主机Cliet提授时服务。

注意:

1、客户端系统时间与NTP服务器系统时间差过大,客户端将有可能不会执行时间同步。

2、若本机系统为时钟同步的Server和Client两种角色,当本地系统无法访问指定的服务器进行时钟同步时,则默认也不允许向其它的客户机提供授时服务。除非手动配置允许对本地客户端授时的层级。

Server端:

1、安装NTP服务客户端软件chrony(红帽8.0默认已安装)。

2、查看主机系统时间和硬件时间,为了时间同步测试将系统和硬件时间调错。

2、修改/etc/chrony.conf配置文件。

本系统向阿里云NTP服务器同步系统时间:

允许企业内部的主机访问本NTP服务:

3、防火墙放行chrony监听的UDP_323和123端口。

4、开启chronyd时钟同步服务

5、查看系统时间同步状况。

6、在NTP服务器端测试客户端能否访问到本机提供的ntp服务(可省略)。

Client端:

1、安装chrony客户端软件(红帽8.0默认已安装)。

2、修改/etc/chrony.conf配置文件来指定本机所要向哪台NTP时钟源同步时间。

3、将系统时间调错,用于测试后面同步效果。

4、开启chronyd服务,并查看chrony.conf配置文件指定的NTP服务器是否处于运行状态。

5、查看系统时间同步状况

6、切换到ntp服务器查看有哪些客户机已访问到本服务器(可省略)

@声明:“山月润无声”博主知识水平有限,以上文章如有不妥之处,欢迎广大IT爱好者指正,小弟定当虚心受教!

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

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

相关文章

26.仪表板侧边栏菜单

效果 源码 <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Sidebar Menu</title> <link rel="stylesheet" type="text/css"…

微服务学习资料

文章目录 参考资料一. 微服务概述1. CAP理论2. BASE理论3. SpringBoot 与 SpringCloud对比 二. 服务注册&#xff1a;Zookeeper,Eureka,Nacos,Consul1. Nacos两种健康检查方式&#xff1f;2. nacos中负责负载均衡底层是如何实现的3. Nacos原理4. 临时实例和持久化(非临时)实例 …

第三届计算机、物联网与控制工程国际学术会议(CITCE 2023)

第三届计算机、物联网与控制工程国际学术会议&#xff08;CITCE 2023) The 3rd International Conference on Computer, Internet of Things and Control Engineering&#xff08;CITCE 2023) 第三届计算机、物联网与控制工程国际学术会议&#xff08;CITCE 2023&#xff09;…

相同二叉树判断

目录 题目题目要求示例 解答方法一、实现思路时间复杂度和空间复杂度代码 方法二、实现思路时间复杂度和空间复杂度代码 题目 相同二叉树判断 题目要求 题目链接 示例 解答 方法一、 递归 实现思路 如果两棵树从根结点一起访问&#xff0c;当有一个结点不相等时就返回f…

自动化运维工具—Ansible

一、Ansible概述1.1 Ansible是什么1.2 Ansible的特性1.3 Ansible的特点1.4 Ansible数据流向 二、Ansible 环境安装部署三、Ansible 命令行模块&#xff08;1&#xff09;command 模块&#xff08;2&#xff09;shell 模块&#xff08;3&#xff09;cron 模块&#xff08;4&…

【Tkinter系列07/15】小部件Message、下拉菜单、移动窗

17. 小部件Message 此小部件类似于小部件 &#xff08;请参见第 12 节 “标签小部件”&#xff09;&#xff0c;但它适用于 在多行上显示消息。所有文本将 以相同的字体显示;如果需要显示文本 使用多种字体&#xff0c;请参见第 24 节 “文本小部件”。Label 创建新构件作为子…

Linux安装Portainer(简洁版)

项目简介Docker安装 1.安装命令&#xff1a;curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun2.启动&#xff1a;systemctl start docker3.停止&#xff1a;systemctl stop docker4.重启&#xff1a;systemctl restart docker5.开机启动&#xff1a;system…

25.CSS自定义形状按钮与悬停效果

效果 源码 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>CSS Custom Shape Button</title><link rel="stylesheet" href="style.css"> </head> <body&…

新型安卓恶意软件使用Protobuf协议窃取用户数据

近日有研究人员发现&#xff0c;MMRat新型安卓银行恶意软件利用protobuf 数据序列化这种罕见的通信方法入侵设备窃取数据。 趋势科技最早是在2023年6月底首次发现了MMRat&#xff0c;它主要针对东南亚用户&#xff0c;在VirusTotal等反病毒扫描服务中一直未被发现。 虽然研究…

【高性能计算】opencl语法及相关概念(三)事件,内存

opencl中的事件概念 当谈到OpenCL中的事件时&#xff0c;它们代表了执行的各个阶段或操作的状态信息。通过使用事件&#xff0c;您可以跟踪和管理内核执行以及内存操作的进度和顺序。以下是与OpenCL事件相关的关键概念&#xff1a; 创建事件&#xff1a;您可以使用clCreateUse…

【MATLAB第70期】基于MATLAB的LightGbm(LGBM)梯度增强决策树多输入单输出分类预测模型(全网首发,敬请期待)

【MATLAB第70期】基于MATLAB的LightGbm(LGBM)梯度增强决策树多输入单输出分类预测模型&#xff08;全网首发&#xff0c;敬请期待&#xff09; (LGBM)是一种基于梯度增强决策树(GBDT)算法。 基于MATLAB的LightGbm即将研究测试上线。 下一个研究对象&#xff1a; ABCBOOST模型 一…

【AI】数学基础——数理统计(概念参数估计)

概率论 文章目录 3.6 数理统计概念与定理3.6.1 概率论与数理统计区别3.6.2 基本定理大数定理马尔科夫不等式切比雪夫不等式中心极限定理 3.6.3 统计推断的基本问题 3.7 参数估计3.7.1 频率派点估计法矩阵估计法极大似然估计点估计量的评估 区间估计 3.7.2 贝叶斯派贝叶斯定理条…

云安全攻防(十三)之 使用minikube安装搭建 K8s 集群

使用minikube安装搭建 K8s 集群 Kubernetes 是一个可移植的、可扩展的开源平台&#xff0c;用于管理容器化的工作负载和服务&#xff0c;可促进声明式配置和自动化,一般来说K8s安装有三种方式&#xff0c;分别是Minikube装搭建 K8s 集群&#xff0c;特点是只有一个节点的集群&…

Linux系统文件权限修改:permission denied

最近遇到文件夹权限的问题 通过命令发现www缺少写和执行的权限 然后赋予所有权限 下面是一些详解&#xff1a; 要赋予文件或目录写入权限&#xff0c;可以使用 chmod 命令。 命令的基本语法是&#xff1a; chmod <permissions> <file or directory>其中 <…

对称加密 非对称加密 AC认证 https原理

文章目录 对称加密及漏洞非对称加密及漏洞什么是数据摘要&#xff08;也称数据指纹&#xff09;什么是CA认证CA证书签发过程https通信方案 对称加密及漏洞 对称加密是一种加密算法&#xff0c;使用相同的密钥&#xff08;也称为对称密钥&#xff09;用于加密和解密数据。在对称…

从Gamma空间改为Linear空间会导致性能下降吗

1&#xff09;从Gamma空间改为Linear空间会导致性能下降吗 2&#xff09;如何处理没有使用Unity Ads却收到了GooglePlay平台的警告 3&#xff09;C#端如何处理xLua在执行DoString时候死循环 4&#xff09;Texture2DArray相关 这是第350篇UWA技术知识分享的推送&#xff0c;精选…

金仓数据库KingbaseES Windows版本启动时报错的问题

服务启动提示&#xff1a; 原因是使用的授权版本不对&#xff0c;导致服务总是启动不了 先卸载&#xff0c;重启&#xff0c;重新安装&#xff0c;选择下面这个授权文件 再启动开发工具&#xff0c;成功

学习pytorch7 神经网络的基本骨架--nn,module的使用

神经网络的基本骨架--nn,module的使用 官网Module介绍Python父类子类继承关系前向神经网络pycharm快捷键重写类方法codedebug B站小土堆视频学习笔记 官网Module介绍 https://pytorch.org/docs/stable/generated/torch.nn.Module.html#torch.nn.Module Python父类子类继承关系…

前端调用电脑摄像头

项目中需要前端调用&#xff0c;所以做了如下操作 先看一下效果吧 主要是基于vue3&#xff0c;通过canvas把画面转成base64的形式&#xff0c;然后是把base64转成 file文件&#xff0c;最后调用了一下上传接口 以下是代码 进入页面先调用一下摄像头 navigator.mediaDevices.ge…