ntpdate server时出错原因及解决

摘要:
stratum是ntp服务器层级,正常情况下stratum的值为“0~15”。而stratum=16是因为NTPserver还没有和它的上层NTPserver同步上。用ntpq-p命令,如下在weblbserver执行ntpq-pzhj@weblbserver-1:~$ntpq-premoterefidsttwhenpollreachdelayoffsetjitter==============================================================================dns1.synet.edu.202.118.1.462u9151024143.464-134.790.004golem.canonical192.93.2.202u91410241433.083-198.900.004zhj@weblbserver-1:~$这里简单说一下when,poll,reach几个参数,when——上次同步时间到现在的距离,单位是秒。而在开始同步时间之前,当客户端访问weblbserver-1这个NTPserver时,都会出现stratum16,noserversuitablefornchronizationfound这样的错误。也就是说如果你在NTPserver主机上重启了ntp服务,那要等4*poll秒,该NTPserver才与上层NTPserver开始同步时间,而且只有当开始同步时,该NTPserver才能为其它客户端提供NTP服务。

错误1.Server dropped: Strata too high

在ntp客户端运行ntpdate serverIP,出现no server suitable for synchronization found的错误,如下所示

zhj@test:~$ sudo ntpdate weblbserver-1
28 Dec 15:22:33 ntpdate[4444]: no server suitable forsynchronization found
zhj@test:~$

在ntp客户端用ntpdate –d serverIP查看,参数是-d是指debug模式,它会将ntpdate同步时的一些信息打印出来,而且即使从ntp server那里获取到了国际

原子时,也不会写入客户端的osclock。可以看到,错误信息中有“stratum 16”。stratum是ntp服务器层级,正常情况下stratum的值为“0~15”。而

stratum=16是因为NTP server还没有和它的上层NTP server同步上。

zhj@appserver-1:~$ sudo ntpdate -d weblbserver-1
28 Dec 15:22:06 ntpdate[4434]: ntpdate 4.2.6p5@1.2349-o Wed Oct  9 19:08:07 UTC 2013 (1)
Looking for host weblbserver-1and service ntp
host found : 192.168.0.7
transmit(192.168.0.7)
receive(192.168.0.7)
transmit(192.168.0.7)
receive(192.168.0.7)
transmit(192.168.0.7)
receive(192.168.0.7)
transmit(192.168.0.7)
receive(192.168.0.7)
192.168.0.7: Server dropped: strata too high
server 192.168.0.7, port 123
stratum 16, precision -18, leap 11, trust 000
refid [192.168.0.7], delay 0.02667, dispersion 0.00003
transmitted 4, in filter 4
reference time:    00000000.00000000  Mon, Jan  1 1900  0:00:00.000
originate timestamp: d84a9ea5.06da4607  Sun, Dec 28 2014 15:22:13.026
transmit timestamp:  d84a9ea5.07d57eae  Sun, Dec 28 2014 15:22:13.030
filter delay:  0.02667  0.02675  0.02678  0.02696
         0.00000  0.00000  0.00000  0.00000
filter offset: -0.00457 -0.00453 -0.00467 -0.00468
         0.000000 0.000000 0.000000 0.000000
delay 0.02667, dispersion 0.00003
offset -0.004574
28 Dec 15:22:13 ntpdate[4434]: no server suitable forsynchronization found
zhj@appserver-1:~$

那我们怎样知道weblbserver-1这个NTP server是否与它的上层NTP server是否同步上了呢?用ntpq -p命令(注:ntpq即ntp query,参数-p是print),

如下在weblbserver执行ntpq -p

zhj@weblbserver-1:~$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 dns1.synet.edu. 202.118.1.46     2 u  915 1024    1   43.464  -134.79   0.004
 golem.canonical 192.93.2.20      2 u  914 1024    1  433.083  -198.90   0.004
zhj@weblbserver-1:~$

这里简单说一下when,poll,reach几个参数,

when —— 上次同步时间到现在的距离,单位是秒。当然,如果ntp服务是刚启动,还没同步过,那这个参数就是ntp服务启动后到现在的距离

poll —— 同步周期,单位为秒

reach —— 它是八进制数,正常情况下值为[0, 1, 3, 7, 17, 37, 77, 177, 377],对应的二进制为[0, 1, 11, 111, 1111, 11111, 111111, 1111111, 11111111],

ntp服务启动后,reach就以poll值为周期与ntp server通信,为了方便理解,我们可以简单的认为每次ping一下上层ntp server,如果成功,那

reach就向左移一位,右边补1,如果失败,则右边补0,所以如果reach不是上面给出的枚举值,那就是在通信过程中出错了。当reach 达到17时

(对应1111,即最近的四次通信都成功了),那才开始同步时间,这时,remote项对应的域名或IP列表有,其中一个前面会有*号,表示该IP就是

NTP server。而在开始同步时间之前,当客户端访问weblbserver-1这个NTP server时,都会出现stratum 16,no server suitable for

nchronizationfound这样的错误。也就是说如果你在NTP server主机上重启了ntp服务,那要等4*poll秒(在前四次通信都是成功的前提下),

该NTP server才与上层NTPserver开始同步时间,而且只有当开始同步时,该NTP server才能为其它客户端提供NTP服务。因此,你在/etc/ntp.conf

中设置的同步周期minpoll maxpoll不能太大,因为每次ntp服务重启后,要等4倍长的时间才能开始同步。

错误2.Server dropped:no data

从客户端执行netdate –d时有错误信息如下:

transmit(192.168.30.22)
transmit(192.168.30.22)
transmit(192.168.30.22)
transmit(192.168.30.22)
transmit(192.168.30.22)
192.168.30.22: Server dropped: no data
server 192.168.30.22, port 123
.....
28 Jul 17:42:24 ntpdate[14148]: no server suitable for synchronization found

出现这个问题的原因可能有2:

1. 检查ntp的版本,如果你使用的是ntp4.2(包括4.2)之后的版本,在restrict的定义中使用了notrust的话,会导致以上错误。

使用以下命令检查ntp的版本:

ntpdate server时出错原因及解决第1张#ntpq-cversion

下面是来自ntp官方网站的说明:
The behavior ofnotrustchanged between versions 4.1 and 4.2.

In 4.1 (and earlier)notrustmeant "Don't trust this host/subnet for time".

In 4.2 (and later)notrustmeans "Ignore all NTP packets that are not cryptographically authenticated." This forces remote time servers to

authenticate themselves to your (client)ntpd

解决办法:把notrust去掉。

2. 检查ntp server的防火墙。可能是server的防火墙屏蔽了upd 123端口。

可以用命令来关掉iptables服务后再尝试从ntp客户端的同步,如果成功,证明是防火墙的问题,需要更改iptables的设置。

ntpdate server时出错原因及解决第1张#serviceiptablesstop
ntpdate server时出错原因及解决第1张

参考:http://www.xiangqian.org/jishucangku/240.html

免责声明:文章转载自《ntpdate server时出错原因及解决》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇kafka一个broker挂掉无法写入浅析Lua中table的遍历下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

centos7配置ntp服务器和客户端同步

环境centos7.6 服务端:ip:172.21.210.27 1、安装ntp、禁用chronyd时间同步服务 yum -y install ntp   #安装ntp服务 timedatectl set-ntp 0 2、配置ntp服务器 vi /etc/ntp.conf restrict default nomodify                 ...

centos7修改系统时间、时区

linux在安装的时候如果时区选择错误,可以在系统安装完成之后修改。系统时间运行着也会有偏差,需要对时间进行实时同步,方法如下: 1.用date命令查看系统当前时间,发现和北京时间有一定的误差 2.在系统联网的情况,修改时间最快的方法就是使用ntpdate命令自动同步网络服务器上的时间 yum install ntpdate -y 3. 设置系统时间与...

ntp配置中的tinker参数

今天就ntp的tinker来做专项学习。此处的tinker指的是ntp.conf配置文件中的一个配置指令名。它还有相关的配置选项 经过查看官方文档其中对ntp.conf中的tinker是如下描述的: 官方文档:http://doc.ntp.org/4.2.6/miscopt.html 意思是这个tinker指令是改变由时钟纪律算法使用的某些系统变量,这些...

Centos7搭建日志服务器rsyslog+loganalyzer

、准备环境 更新时间 yum install ntp ntpdate systemctl start ntpd systemctl enable ntpd ntpdate ntp1.aliyun.com--------------------- 2.1 关闭防火墙: #systemctl stop firewalld2.2 将SELINUX设置为disab...

linux同步windows的时间

找了很多的资料,都没有windows做时间服务,linux同步windows的时间的,最后自己找了一些软件,终于搞定了,写出来给大家共享,以免大家多走弯路   首先在http://www.meinberg.de/english/sw/index.htm   下载了一个windows的NTP服务程序:ntp4171.zip   windows 192.168...

同步集群时间

首先确保集群已经正常使用(搭建集群完毕) 集群时间同步 时间同步的方式:找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,比如,每隔十分钟,同步一次时间。 第一步 配置小弟同步老大的操作   配置时间同步实操:     1.时间服务器配置(必须 root 用户)       检查 ntp 是否安装       [root@hadoop10...