无法使用`ntpdate`同步时间,错误:“没有适合同步的服务器”

我的ntp.conf文件:

user@pc[0][07:37:40]:/etc$ cat /etc/ntp.conf idriftfile /var/lib/ntp/ntp.drift server 0.pool.ntp.org server 1.pool.ntp.org server 2.pool.ntp.org server pool.ntp.org 

命令输出:

 user@pc[0][07:37:24]:/etc$ sudo ntpdate -dv pool.ntp.org 18 Jun 07:37:35 ntpdate[10737]: ntpdate 4.2.4p8@1.1612-o Tue Apr 19 07:15:05 UTC 2011 (1) Looking for host pool.ntp.org and service ntp host found : conquest.kjsl.com transmit(198.137.202.16) transmit(216.45.57.38) transmit(64.6.144.6) transmit(198.137.202.16) transmit(216.45.57.38) transmit(64.6.144.6) transmit(198.137.202.16) transmit(216.45.57.38) transmit(64.6.144.6) transmit(198.137.202.16) transmit(216.45.57.38) transmit(64.6.144.6) transmit(198.137.202.16) transmit(216.45.57.38) transmit(64.6.144.6) 198.137.202.16: Server dropped: no data 216.45.57.38: Server dropped: no data 64.6.144.6: Server dropped: no data server 198.137.202.16, port 123 stratum 0, precision 0, leap 00, trust 000 refid [198.137.202.16], delay 0.00000, dispersion 64.00000 transmitted 4, in filter 4 reference time: 00000000.00000000 Thu, Feb 7 2036 0:28:16.000 originate timestamp: 00000000.00000000 Thu, Feb 7 2036 0:28:16.000 transmit timestamp: d1a71a93.1f16c1e3 Sat, Jun 18 2011 7:37:39.121 filter delay: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 filter offset: 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 delay 0.00000, dispersion 64.00000 offset 0.000000 server 216.45.57.38, port 123 stratum 0, precision 0, leap 00, trust 000 refid [216.45.57.38], delay 0.00000, dispersion 64.00000 transmitted 4, in filter 4 reference time: 00000000.00000000 Thu, Feb 7 2036 0:28:16.000 originate timestamp: 00000000.00000000 Thu, Feb 7 2036 0:28:16.000 transmit timestamp: d1a71a93.524a05dd Sat, Jun 18 2011 7:37:39.321 filter delay: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 filter offset: 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 delay 0.00000, dispersion 64.00000 offset 0.000000 server 64.6.144.6, port 123 stratum 0, precision 0, leap 00, trust 000 refid [64.6.144.6], delay 0.00000, dispersion 64.00000 transmitted 4, in filter 4 reference time: 00000000.00000000 Thu, Feb 7 2036 0:28:16.000 transmitted 4, in filter 4 reference time: 00000000.00000000 Thu, Feb 7 2036 0:28:16.000 originate timestamp: 00000000.00000000 Thu, Feb 7 2036 0:28:16.000 transmit timestamp: d1a71a93.524a05dd Sat, Jun 18 2011 7:37:39.321 filter delay: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 filter offset: 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 delay 0.00000, dispersion 64.00000 offset 0.000000 server 64.6.144.6, port 123 stratum 0, precision 0, leap 00, trust 000 refid [64.6.144.6], delay 0.00000, dispersion 64.00000 transmitted 4, in filter 4 reference time: 00000000.00000000 Thu, Feb 7 2036 0:28:16.000 originate timestamp: 00000000.00000000 Thu, Feb 7 2036 0:28:16.000 transmit timestamp: d1a71a93.857c6fbd Sat, Jun 18 2011 7:37:39.521 filter delay: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 filter offset: 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 delay 0.00000, dispersion 64.00000 offset 0.000000 18 Jun 07:37:40 ntpdate[10737]: no server suitable for synchronization found 

我的ntp(/etc/ntp.conf)说

 server 0.ubuntu.pool.ntp.org server 1.ubuntu.pool.ntp.org server 2.ubuntu.pool.ntp.org server 3.ubuntu.pool.ntp.org 

把你改成这个并以root身份执行( sudo -i

 service ntp stop 

做这些改变:

 service ntp start 

测试一下

 date 

更新:昨晚我必须配置一台机器,发现这可能会有所帮助

 ~# dpkg-reconfigure tzdata 

您可以设置您的时区并退出(以root身份: sudo -i

 :~# dpkg-reconfigure tzdata Current default time zone: 'America/Montevideo' Local time is now: Tue Mar 6 13:18:00 UYST 2012. Universal Time is now: Tue Mar 6 15:18:00 UTC 2012. :~# 

首先,你不需要ntp服务器来同步时间(我看到你有来自包ntp /etc/ntp.conf ,提供服务器),如果你使用那个服务器,你不需要使用ntpdate手动。

更具体地说,不需要ntp包的事实,每次使用ntpdate-debian网络连接时,时间都会同步,这是默认安装中的。

因此,要尝试手动同步,请停止服务器

 sudo service ntp stop 

然后运行

 sudo ntpdate-debian 

这是debian帮助应用程序运行ntpdate而没有你现在的麻烦。

使用选项-u和可靠的服务器。 例如sudo ntpdate -u pool.ntp.org

确保您的防火墙允许出站连接。

使用命令:

 sudo ntpdate ntp.ubuntu.com 

和:

 sudo ntpdate-debian 

在更改我的路由器防火墙以允许端口123,协议UDP,出站之前,我收到了类似的错误“ntpdate [14593]:没有适合同步的服务器”。

特拉华大学(我称NTP的所在地)的ntp常见问题提到了这个错误。 链接是http://www.eecis.udel.edu/~ntp/ntpfaq/NTP-s-trouble.htm#AEN4972 。

您可以尝试使用ntpdate -d servernamentpdate -u servername来运行ntpdate -u servername 。 库存ntpdate没有从ntp配置文件中获取servername。 我认为在尝试这些命令之前用手接近正确的时间是明智的,正如William Ting在评论中所建议的那样。

上面的两个ntpdate命令在计算机上的随机公共端口号(而不是端口123)上发送并期望UDP响应,以避免使用该特权端口入站的潜在复杂性。 当然,出站filter仍然是个问题。


常见问题解答建议将数据包过滤作为原因,因为它可能会消除必要的UDP数据包传入和传出计算机上的端口123 。 您应该根据需要调整系统和路由器上的数据包筛选器。

请注意,ntpdate采用服务器参数。 ntpdate-debian使用/ etc / default / ntpdate中指定的服务器。 使用不带参数的ntpdate会导致问题中提到的错误(提问者正确地指定了它)。

我找到了解决方案,因为我必须这样做。 如果没有任何防火墙转换问题, 请访问https://serverfault.com/questions/277375/ntpdate-d-server-dropped-strata-too-high链接提供解决方案。 至少是我的。

在尝试在我的工作场所网络上同步Raspberry Pi上的时间时遇到了同样的问题。 外部ntp数据包似乎在我的网络上被阻止了。 为了解决这个问题,我删除了默认ntp.conf文件中列出的服务器并添加了我的内部网络服务器。 如果您不确定要使用的确切服务器名称,可以在/etc/resolv.conf找到它。

由于只有ntpdate-debian使用ntp.conf文件,因此只能修复ntpdate-debian (不是ntpdate )。