ntpdate命令对时offset有几百秒,请教解决办法?

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
askkkkk
帖子: 14
注册时间: 2019-10-10 9:53
系统: ubuntu

ntpdate命令对时offset有几百秒,请教解决办法?

#1

帖子 askkkkk » 2020-07-03 7:39

使用windows7作为服务器,在一些ubuntu18.04或ubuntu16.04上使用ntpdate命令对时,会出现offset特别大(几十到几百秒)的情况,请问有人遇到过吗,该如何解决?
或者是否还有其他ntp对时的方法?
谢谢!

代码: 全选

sudo ntpdate -p 8 192.168.1.217
 3 Jul 07:37:37 ntpdate[29404]: step time server 192.168.1.217 offset 218.957805 sec
头像
astolia
论坛版主
帖子: 6542
注册时间: 2008-09-18 13:11

Re: ntpdate命令对时offset有几百秒,请教解决办法?

#2

帖子 astolia » 2020-07-03 9:52

最关键的信息你都不提。win7服务器的时钟准不?ubuntu系统上原来的时钟准不?校正时间后的时钟准不?此次校正距离上一次校正隔了多久?
计算机系统的时钟源本来就会有误差存在,差一些的压控晶振一天差个几秒都有可能。常见的温补晶振一个月差个十几二十秒也正常,你一年不校正不就差两百秒了。
如果确认是晶振本身的问题,如果不换更高精度的时钟源,那就只能搞个cron任务,定时校正
askkkkk
帖子: 14
注册时间: 2019-10-10 9:53
系统: ubuntu

Re: ntpdate命令对时offset有几百秒,请教解决办法?

#3

帖子 askkkkk » 2020-07-03 13:22

astolia 写了: 2020-07-03 9:52 最关键的信息你都不提。win7服务器的时钟准不?ubuntu系统上原来的时钟准不?校正时间后的时钟准不?此次校正距离上一次校正隔了多久?
计算机系统的时钟源本来就会有误差存在,差一些的压控晶振一天差个几秒都有可能。常见的温补晶振一个月差个十几二十秒也正常,你一年不校正不就差两百秒了。
如果确认是晶振本身的问题,如果不换更高精度的时钟源,那就只能搞个cron任务,定时校正
是通过计划任务的形式校时,5分钟一次,有的机器每次ntpdate输出offset都是200多秒。
有些机器准,有些机器不准。
正常情况,ntpdate命令执行几次过后和ntp服务器的系统时间offset应该只有0.0几秒。
目标只要跟windows7的系统时间相差1秒内就行。
windows7的ntp服务是通过W32Time服务开启的。
头像
astolia
论坛版主
帖子: 6542
注册时间: 2008-09-18 13:11

Re: ntpdate命令对时offset有几百秒,请教解决办法?

#4

帖子 astolia » 2020-07-03 21:29

你还是没有说关键信息:有问题的机器,校正后时间正确吗?它的走时准不准?5分钟一次都能差200秒,你在断网情况下花个5分钟,一边跑watch -n 1 date 一边和手机手表对比一下不费事吧?
我能想到的几种可能
1、系统上有其他的定时脚本从其他ntp服务器获取时间,那台服务器的时钟和你win7服务器有差异
2、ntpdate执行后没有用hwclock -w调整硬件时钟,然后系统由于某些原因又从不准的硬件时钟里读取重新设置了系统时间
3、有人拦截篡改了NTP的数据包,或者破坏了ntpdate设置系统时钟的功能
4、硬件时钟坏了,计时误差过大
askkkkk
帖子: 14
注册时间: 2019-10-10 9:53
系统: ubuntu

Re: ntpdate命令对时offset有几百秒,请教解决办法?

#5

帖子 askkkkk » 2020-07-04 10:12

astolia 写了: 2020-07-03 21:29 你还是没有说关键信息:有问题的机器,校正后时间正确吗?它的走时准不准?5分钟一次都能差200秒,你在断网情况下花个5分钟,一边跑watch -n 1 date 一边和手机手表对比一下不费事吧?
我能想到的几种可能
1、系统上有其他的定时脚本从其他ntp服务器获取时间,那台服务器的时钟和你win7服务器有差异
2、ntpdate执行后没有用hwclock -w调整硬件时钟,然后系统由于某些原因又从不准的硬件时钟里读取重新设置了系统时间
3、有人拦截篡改了NTP的数据包,或者破坏了ntpdate设置系统时钟的功能
4、硬件时钟坏了,计时误差过大
系统断网的情况下,5分钟内自己走不会偏,没有最走最快,或者越走越慢;
自己组建的局域网和部署的机器,只用ntp一种对时方式,ntp报文不会被篡改;
现在想知道为什么 ntpdate命令输出的 offset为什么很大,不知道是不是命令使用方法错了。
:Cry 比较弱鸡,ntpdate会修改硬件时钟吗,硬件时钟不正常,会导致ntpdate命令输出的offset不正常吗?
头像
astolia
论坛版主
帖子: 6542
注册时间: 2008-09-18 13:11

Re: ntpdate命令对时offset有几百秒,请教解决办法?

#6

帖子 astolia » 2020-07-04 14:57

askkkkk 写了: 2020-07-04 10:12 系统断网的情况下,5分钟内自己走不会偏,没有最走最快,或者越走越慢;
你这个只能说明硬件时钟晶振是比较准确的,不能说明其他问题
askkkkk 写了: 2020-07-04 10:12 ntpdate会修改硬件时钟吗,硬件时钟不正常,会导致ntpdate命令输出的offset不正常吗?
不会修改硬件时钟,只会修改系统时间,需要你手动用hwclock来把系统时间同步到硬件时钟,否则每次重启后又回到校正前的状态了。硬件时钟包含两部分,一个是主板上cmos里记录的时间日期,一个是时钟晶振提供的时间流逝速率。系统只会在启动时获取一次cmos时间日期,如果晶振走时不准即提供的时间流逝速率不准,就会导致系统时间变快或变慢,自然offset就不正常。不过通过断网测试,已经排除了这种可能。
askkkkk 写了: 2020-07-04 10:12 现在想知道为什么 ntpdate命令输出的 offset为什么很大,不知道是不是命令使用方法错了。
就是ntp服务器回应的数据包里记录的时间和你当前系统时间差距大。原因下面三者之一
1)数据包里的时间错了
2)是当前系统时间错了
3)ntpdate程序在处理过程中出错了
其中,
1)有可能是a)ntp服务器的时间就不准或者b)数据包传输过程中被篡改了
2)可能是c)硬件时钟晶振走时不准,d)有其他程序在根据硬件时钟调整系统时间,或者e)有其他程序在通过ntp调整系统时间

然后上面你否认了b,通过实验排除了c和d。
我一直在问你服务器时间正不正确和有问题的机器校正后时间正不正确,就是想确定上面3和a的情况,但你一直不说。3的可能性最低,因为当ntpdate出错,那么设置的系统时间就会和ntp服务器时间有差,很容易发现,你不说就当它没问题。
那么剩下a和e两种情况,最可能的就是系统上某些程序之后向其他ntp服务器发送请求,两个服务器之间的时间有差异,就覆盖掉了之前从局域网服务器获取的时间数据。你在连网情况下用上面的watch+date看系统时间是否有突变,或者wireshark之类的抓包软件抓取一下ntp包,就很容易确定是不是这种情况
askkkkk
帖子: 14
注册时间: 2019-10-10 9:53
系统: ubuntu

Re: ntpdate命令对时offset有几百秒,请教解决办法?

#7

帖子 askkkkk » 2020-07-06 13:27

astolia 写了: 2020-07-04 14:57
askkkkk 写了: 2020-07-04 10:12 系统断网的情况下,5分钟内自己走不会偏,没有最走最快,或者越走越慢;
你这个只能说明硬件时钟晶振是比较准确的,不能说明其他问题
askkkkk 写了: 2020-07-04 10:12 ntpdate会修改硬件时钟吗,硬件时钟不正常,会导致ntpdate命令输出的offset不正常吗?
不会修改硬件时钟,只会修改系统时间,需要你手动用hwclock来把系统时间同步到硬件时钟,否则每次重启后又回到校正前的状态了。硬件时钟包含两部分,一个是主板上cmos里记录的时间日期,一个是时钟晶振提供的时间流逝速率。系统只会在启动时获取一次cmos时间日期,如果晶振走时不准即提供的时间流逝速率不准,就会导致系统时间变快或变慢,自然offset就不正常。不过通过断网测试,已经排除了这种可能。
askkkkk 写了: 2020-07-04 10:12 现在想知道为什么 ntpdate命令输出的 offset为什么很大,不知道是不是命令使用方法错了。
就是ntp服务器回应的数据包里记录的时间和你当前系统时间差距大。原因下面三者之一
1)数据包里的时间错了
2)是当前系统时间错了
3)ntpdate程序在处理过程中出错了
其中,
1)有可能是a)ntp服务器的时间就不准或者b)数据包传输过程中被篡改了
2)可能是c)硬件时钟晶振走时不准,d)有其他程序在根据硬件时钟调整系统时间,或者e)有其他程序在通过ntp调整系统时间

然后上面你否认了b,通过实验排除了c和d。
我一直在问你服务器时间正不正确和有问题的机器校正后时间正不正确,就是想确定上面3和a的情况,但你一直不说。3的可能性最低,因为当ntpdate出错,那么设置的系统时间就会和ntp服务器时间有差,很容易发现,你不说就当它没问题。
那么剩下a和e两种情况,最可能的就是系统上某些程序之后向其他ntp服务器发送请求,两个服务器之间的时间有差异,就覆盖掉了之前从局域网服务器获取的时间数据。你在连网情况下用上面的watch+date看系统时间是否有突变,或者wireshark之类的抓包软件抓取一下ntp包,就很容易确定是不是这种情况
十分感谢你耐心的帮忙分析!
服务器时间观察了20分钟,看着正常。
有问题的机器校时后时间不正常,与服务器时间偏差跟输出的offset一样,offset大的时候,会运行多次ntpdate命令,输出的offset值基本一样,数值很大。
我现在去抓包看下情况。
回复