NTP时间服务器简介

NTP(NetworkTimeProtocol)网络时间协议,工作在UDP的123端口上。是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(局域网上与标准间差小于1毫秒,互联网上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。NTP服务器NTP服务器提供准确时间,首先要有准确的时间来源,这一时间…

大家好,又见面了,我是你们的朋友全栈君。

NTP(Network Time Protocol) 网络时间协议,工作在UDP的123端口上。是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(局域网上与标准间差小于1毫秒,互联网上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。

NTP服务器

NTP服务器提供准确时间,首先要有准确的时间来源,这一时间应该是国际标准时间UTC。 NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。这样就有了准确而可靠的时间源。时间按NTP服务器的等级传播。按照离外部UTC 源的远近将所有服务器归入不同的Stratum(层)中。Stratum-1在顶层,有外部UTC接入,而Stratum-2则从Stratum-1获取时间,Stratum-3从Stratum-2获取时间,以此类推,但Stratum层的总数限制在15以内。所有这些服务器在逻辑上形成阶梯式的架构相互连接,而Stratum-1的时间服务器是整个系统的基础。

计算机主机一般同多个时间服务器连接, 利用统计学的算法过滤来自不同服务器的时间,以选择最佳的路径和来源来校正主机时间。即使主机在长时间无法与某一时间服务器相联系的情况下,NTP服务依然有效运转。为防止对时间服务器的恶意破坏,NTP使用了识别(Authentication)机制,检查来对时的信息是否是真正来自所宣称的服务器并检查资料的返回路径,以提供对抗干扰的保护机制。

NTP校对方式

时间服务器可以利用以下三种方式与其他服务器对时:broadcast/multicast,client/server和Symmetric。

broadcast/multicast:方式主要适用于局域网的环境,时间服务器周期性的以广播的方式,将时间信息传送给其他网路中的时间服务器,其时间仅会有少许的延迟,而且配置非常的简单。但是此方式的精确度并不高,对时间精确度要求不是很高的情况下可以采用。

Symmetric:方式得一台服务器可以从远端时间服务器获取时钟,如果需要也可提供时间信息给远端的时间服务器。此一方式适用于配置冗余的时间服务器,可以提供更高的精确度给主机。

client/server:方式与symmetric方式比较相似,只是不提供给其他时间服务器时间信息,此方式适用于一台时间服务器接收上层时间服务器的时间信息,并提供时间信息给下层的用户。

上述三种方式,时间信息的传输都使用UDP协议。时间服务器利用一个过滤演算法,及先前八个校时资料计算出时间参考值,判断后续校时包的精确性,一个相对较高的离散程度,表示一个对时资料的可信度比较低。仅从一个时间服务器获得校时信息,不能校正通讯过程所造成的时间偏差,而同时与许多时间服务器通信校时,就可利用过滤算法找出相对较可靠的时间来源,然后采用它的时间来校时

NTP服务器配置

NTP在Linux主机上默认一般都是安装过的,只是服务没有启用。如果没有安装可直接使用yum install ntp命令即可。

NTP的主配置文件,以下是NTP服务器可选的指令:

# 允许172 .16.*.*的 IP使用该时间服务器;
restrict172 .16.0.0mask255 .255.0.0nomodify

#允许任何人来同步;
restrictdefaultnomodifynotrap

# 屏蔽其他 IP过来更新时间;
restrict0 .0.0.0mask0 .0.0.0nomodifynotrapnoquerynotrust

#ignore:关闭所有的 NTP联机服务;
#nomodify:表示 Client端不能更改 Server端的时间参数;不过 Client端仍然可以透过 Server端来进行网络校时;
#notrust:该 Client除非通过认证否则该 Client来源将被视为不信任网域;
#noquery:不提供 Client端的时间查询;
#notrap:允许任何人来查询;
# 同步的上层服务器(210 .72.145.44国家时间服务器), NTP服务器默认也有同步的时间服务器;
server210 .72.145.44

# 同步本地时间;
server127 .127.1.0prefer

# 本地服务器的 stratum大小不能超过16;
fudge127 .127.1.0stratum8

启动NTP服务器

[root@localhost ~] # chkconfig ntpd on
[root@localhost ~] # service ntpd start

查看NTP信息

[root@localhost ~] # ntpq -p

NTP服务器配置完成启动之后;NTP自身或者与其server的同步需要一个时间段这个过程可能是5-10分钟;在这个时间段内客户端运行ntpdate命令时会产生no serversuitable for synchronization found的错误,上图表示210.72.145.44的reach为0不可用,LOCAL的reach为17可用。

将时间同步到硬件时钟

[root@localhost ~]# vi /etc/sysconfig/ntpd
SYNC_HWCLOCK= yes

客户配置

[root@localhost ~] # ntpdate 172.16.16.1
[root@localhost ~] # crontab -e
*/ 1* * * * ntpdate 172.16.16.1

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/127176.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • RNN训练算法BPTT介绍

    RNN训练算法BPTT介绍 本篇文章第一部分翻译自:http://www.wildml.com/2015/10/recurrent-neural-networks-tutorial-part-3-backpropagation-through-time-and-vanishing-gradients/,英文好的朋友可以直接看原文。最近看到RNN,先是困惑于怎样实现隐藏层的互联,搞明白之后又不太明白如何使用BPTT进…

  • 力争群雄:2012年度IT博客大赛100强脱颖而出[通俗易懂]

    力争群雄:2012年度IT博客大赛100强脱颖而出[通俗易懂]2012年度IT博客大赛于11月20日圆满结束。这一所谓的“海选”阶段为期33天,引无数网友和博主翘首以待,来源包括51CTO、独立个人博客、其他博客服务托管商,以及今年评选新增加的分类如独立博客、学生博客和团队博客等众多博主共同参加了这一角逐,其中100位实力雄厚和人气充盈的博主获得了前100强的殊荣。他们占据了25万张票选中的8成以上份量,并将为2012年度IT博客50…

  • python获取当前系统的日期_python怎么获取当前系统时间

    python获取当前系统的日期_python怎么获取当前系统时间python获取当前系统时间,包括年月日,时分秒,主要通过Python中的datetime模块来实现。下面我们就通过具体的代码示例,给大家详细介绍Python获取当前时间日期的实现方法。代码示例如下:importdatetimenow=datetime.datetime.now()print(“当前系统日期和时间是:”)print(now.strftime(“%Y-%m-%d%H:%…

    2022年10月19日
  • 各种烦人图片的整理方法_凡人烦人

    各种烦人图片的整理方法_凡人烦人各种烦人图片资料的整理整合,也帮助自己进行一下梳理,有新的内容页会随时更新,大家看着图片烦恼的也可以看下,希望对和我一样的菜鸟有帮助哈!当然对于高手来说,您的回复是我勃起的动力首先还是要喊下口号———

  • python中的换行符是什么_python的换行符是什么?_后端开发

    python中的换行符是什么_python的换行符是什么?_后端开发python换行符是什么?python换行符是“\n”。Windows换行符是’\r\n’,Unix/Linux的换行符为’\n’,Mac的换行符为’\r’,在python中,对换行符举行了一致处置惩罚,定义为“\n”。运用“\”举行换行输入:1、在python中,Python用反斜线(“\”)作为续行符(换行符),这里以python3.5为例。起首运转终端或许cmd敕令行(windows…

    2022年10月19日
  • Redis的五种数据结构的底层实现原理

    Redis的五种数据结构的底层实现原理

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号