立即关闭 NTPD 同步

立即关闭 NTPD 同步

我的任务是将 Linux 设备与 ntp 服务器同步。文档说,默认情况下,ntpd 检查系统时间和服务器时间之间的差异,如果偏移量在恐慌阈值(默认为 1000 秒)内,ntpd 就会开始缓慢校正系统时间。好的,这对我来说很好,我需要这种行为。

我手动设置系统时间,然后启动 ntpd。使用命令 ntpq -c peers,我可以查看同步过程。它显示设备连接到服务器并获取数据包。但一两分钟后,系统时间发生了重大变化,与服务器时间相差甚远。这对我来说很糟糕,我需要慢慢纠正。我不知道为什么会这样!!!

我尝试在不同的服务器和 Linux 机器上进行此操作,一切都一样。

基于 raspberry pi 2 的设备,使用 buildroot 构建 linux 映像。

# ntpd --version
ntpd [email protected] Fri Jul 29 11:57:46 UTC 2016 (1)
#
# uname -a
Linux buildroot 3.18.12-v7 #3 SMP PREEMPT Thu May 12 17:53:44 MSK 2016 armv7l GNU/Linux
#
# cat /etc/ntp.conf
server 10.0.0.111 #my local server
driftfile /etc/ntp.drift
logfile /var/log/ntp/ntp.log
restrict 10.0.0.111 nomodify noquery #ban any packets from server, which send to modify local time

我找不到任何关于此问题的解释。所有问题都是关于守护进程启动时同步时间的速度,但我需要相反的答案。

所以,不知道......

答案1

默认情况下,ntpd如果偏移量大于 128 毫秒,则将步进(而不是调整)时间。您可以使用-x命令行选项避免这种情况,但请注意:纠正一秒的偏移量将花费大约 2000 秒,因此这可能需要很长时间。

 -x    Normally, the time is slewed if the offset is less than the step 
       threshold, which is 128 ms by  default,  and  stepped  if
       above  the  threshold.  This option sets the threshold to 600 s, 
       which is well within the accuracy window to set the clock
       manually.  Note: Since the slew rate of typical Unix kernels is 
       limited to 0.5 ms/s, each second of adjustment requires an
       amortization  interval of 2000 s.  Thus, an adjustment as much as 600 s 
       will take almost 14 days to complete.  This option
       can be used with the -g and -q options.  
       Note: The kernel time discipline is disabled with this option.

答案2

对于一次性时间同步,您可以使用两种不同的方法/协议:

  • ntpdate使用 SNTP 协议,速度非常快
  • ntpd -q使用NTP协议,虽然速度较慢,但​​更准确。

相关内容