无法使用 NTP 同步时间

无法使用 NTP 同步时间

当我尝试使用 NTP 同步时间时。使用以下命令

sudo ntpdate -b pool.ntp.org

我收到这个错误说NTP 套接字正在使用中。如何修复此问题?

18 Jan 05:53:49 ntpdate[21340]: the NTP socket is in use, exiting

答案1

NTP 套接字正在使用中,退出

表示您正在运行 NTP 守护程序,通常是通过ntp包。您不能同时有两个应用程序调整时钟。

  1. 首先停止当前正在运行的 NTP 守护进程:

    sudo service ntp stop
    
  2. 运行您的ntpdate命令。

  3. 再次启动 NTP 守护进程:

    sudo service ntp start
    

背景

NTP 守护进程不会大步前进或后退,但对于非常平稳和小的过渡很有用。ntpdate因此,在它正常工作之前,请先使用同步时间。您可以像这样查询守护进程的状态:

ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*chime1.surfnet. 194.171.167.130  2 u   59   64    7    3.159   -0.207   0.136
+chime2.surfnet. .GPS.            1 u   59   64    7    6.872   -0.592   0.091
[...]
 ns1.tudelft.nl  .INIT.          16 u    -   64    0    0.000    0.000   0.000
+ev001.tilaa.nl  193.67.79.202    2 u   55   64    7    4.038   -0.613   0.110

答案2

NTP socket in use如果您收到如下所示的错误:

在此处输入图片描述

在这种情况下只需运行

$ sudo service ntp stop
$ sudo ntpdate pool.ntp.org
$ sudo service ntp start

你会得到

在此处输入图片描述

或者直接跑

sudo ntpdate -u pool.ntp.org

使用 ntpd 守护进程运行更新

答案3

一个常见的问题是,人们发现他们的计算机在指定的 DST(夏令时)转换时没有更新。一旦意识到这一点,用户就会尝试使用sudo ntpdate -b pool.ntp.org或类似方法更正时间,结果却发现 NTP 已在运行,而且根本不起作用。

在一般情况下,NTP 无法在 DST 转换时校正您的时钟。例如,NTP 有时会拒绝设置你的时钟。搜索 NTP 问题时,您会得到大量结果,因此显然 NTP 的局限性已经影响了许多人。我相信任何 NTP 设计决策都有充分的理由,但这并不能改变这样一个事实:它不能被信任总是按照普通用户的期望去做。

如果出于某些特定目的它对你来说很重要,请务必检查它。 如果你手动设置正确的时间,自动夏令时转换可能会更顺利之前过渡。

对于普通用户来说,这是一个难以尝试的问题,因为夏令时每年仅发生两次。

答案4

如果 ntp deamen 已安装并正在运行,您将会收到相同的错误,因为您无法同时通过两个程序调整时钟。

如果服务正在运行,它将同步到 /etc/ntp.conf 中的服务器,这样时间就会同步。最好每晚重新启动 ntp 守护进程,这样如果它以某种方式停止,每天都会启动,请在 crontab 中设置它。

crontab -e
@daily sudo service ntp restart >> /tmp/time.log

您可以通过以下命令检查服务器同步的详细信息

ntpq -p

相关内容