我的时钟关闭了,所以我想使用 进行同步ntpdate
。我尝试了几个不同的 NTP 服务器,但出于某种原因,我总是收到以下错误消息:
$ sudo ntpdate ntp.ubuntu.com
4 Mar 12:27:35 ntpdate[1258]: no server suitable for synchronization found
$ sudo ntpdate pool.ntp.org
4 Mar 12:27:50 ntpdate[1267]: no server suitable for synchronization found
$ sudo ntpdate de.pool.ntp.org
4 Mar 12:28:01 ntpdate[1273]: no server suitable for synchronization found
$ sudo ntpdate us.pool.ntp.org
4 Mar 12:28:12 ntpdate[1276]: no server suitable for synchronization found
相关问题
我已经看过了相关问题,但没有一个解决我的问题:
- 无法使用 NTP 同步时间- 这个人得到的错误与我的不同;他的问题是与守护进程发生冲突。我根本
ntpd
没有安装该ntp
软件包(其中包括守护进程)。ntpd
- 如何使用 ntp 强制更新时钟?- 这个人的问题是,
ntpdate
当他将命令放入他的 时/etc/rc.local
,该命令在启动时无法正常工作,问题同样与ntpd
正在运行的守护进程发生冲突。我既没有尝试ntpdate
在启动时运行,也没有(再次)ntpd
安装守护进程。 - 无法使用“ntpdate”同步时间,错误:“未找到适合同步的服务器”- 这是我的错误,但可接受的答案基本上是“使用
ntpd
而不是ntpdate
”。啊啊啊……
我尝试过的事情
我安装了 ntp 包
...并尝试使用ntpd
守护进程而不是ntpdate
实用程序。它也不会同步我的时间;守护进程启动正常,但我的时钟仍然关闭。我甚至尝试使用/etc/ntp.conf
后一篇文章中接受的答案中的确切内容,然后重新启动守护进程。不行。无论如何,我不想使用守护进程。我完全知道它ntpdate
被认为是“弃用”,建议改用它ntpd -q
。另请参见此处:
但因为ntpd
对我来说也不起作用,问题出在别处我发现我更愿意不必安装任何额外的软件包来同步时钟。Ubuntuntpdate
预装了,并且它应该可以正常工作。所以我ntp
再次卸载了该软件包。
是不是123端口被封了?
摘自这篇文章:
...我觉得我的电脑/网络可能被屏蔽了 123 端口。确实如此,
$ sudo nmap -p123 -sU -P0 localhost
...
PORT STATE SERVICE
123/udp closed ntp
...
$ sudo ufw allow 123/udp
Rules updated
Rules updated (v6)
$ sudo nmap -p123 -sU -P0 localhost
...
PORT STATE SERVICE
123/udp open ntp
...
但仍然:
$ sudo ntpdate ntp.ubuntu.com
4 Mar 13:06:16 ntpdate[4361]: no server suitable for synchronization found
即使有-u
选项,它告诉ntpdate
使用非特权端口进行同步(而不是端口123
),而这肯定不会被我的工作场所阻止:
$ sudo ntpdate -u ntp.ubuntu.com
4 Mar 13:06:28 ntpdate[4427]: no server suitable for synchronization found
或许是地层太高了?
最后,摘自 serverfault 上的这篇文章:
...我认为 NTP 服务器的层级可能太高了。但事实并非如此。让我们看一些调试信息:
$ sudo ntpdate -dv ntp.ubuntu.com
4 Mar 13:12:24 ntpdate[4523]: ntpdate [email protected] Wed Oct 9 19:08:07 UTC 2013 (1)
Looking for host ntp.ubuntu.com and service ntp
host found : golem.canonical.com
transmit(91.189.89.199)
transmit(91.189.94.4)
transmit(91.189.89.199)
transmit(91.189.94.4)
transmit(91.189.89.199)
transmit(91.189.94.4)
transmit(91.189.89.199)
transmit(91.189.94.4)
transmit(91.189.89.199)
transmit(91.189.94.4)
91.189.89.199: Server dropped: no data
91.189.94.4: Server dropped: no data
server 91.189.89.199, port 123
stratum 0, precision 0, leap 00, trust 000
refid [91.189.89.199], delay 0.00000, dispersion 64.00000
transmitted 4, in filter 4
reference time: 00000000.00000000 Mon, Jan 1 1900 1:00:00.000
originate timestamp: 00000000.00000000 Mon, Jan 1 1900 1:00:00.000
transmit timestamp: d6c041ae.e6166441 Tue, Mar 4 2014 13:12:30.898
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 91.189.94.4, port 123
stratum 0, precision 0, leap 00, trust 000
refid [91.189.94.4], delay 0.00000, dispersion 64.00000
transmitted 4, in filter 4
reference time: 00000000.00000000 Mon, Jan 1 1900 1:00:00.000
originate timestamp: 00000000.00000000 Mon, Jan 1 1900 1:00:00.000
transmit timestamp: d6c041af.1948fc50 Tue, Mar 4 2014 13:12:31.098
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
4 Mar 13:12:33 ntpdate[4523]: no server suitable for synchronization found
呼……这篇太长了,抱歉。我被难住了。有什么线索吗?
更新:附加信息
无论 NTP 服务器是否HOSTNAME
参与/etc/ntp.conf
,也无论服务是否ntpd
正在运行,只要我运行sudo ntpdate -u HOSTNAME
,就会得到no server suitable for synchronization found
。当ntpd
服务处于不是奔跑和我忽略选项-u
。当ntpd
服务是运行时我省略了-u
选项,结果得到了the NTP socket is in use, exiting
。
还:
$ timedatectl status
Local time: Wed 2014-03-05 13:11:54 CET
Universal time: Wed 2014-03-05 12:11:54 UTC
Timezone: Europe/Berlin (CET, +0100)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: no
Last DST change: DST ended at
Sun 2013-10-27 02:59:59 CEST
Sun 2013-10-27 02:00:00 CET
Next DST change: DST begins (the clock jumps one hour forward) at
Sun 2014-03-30 01:59:59 CET
Sun 2014-03-30 03:00:00 CEST
但这里的 UTC 时间不正确。目前 UTC 时间是11:11
,不是12:11
。
和:
$ sudo hwclock --show
Wed 05 Mar 2014 01:11:56 PM CET -0.625627 seconds
答案1
您的托管服务提供商正在阻止 ntp 数据包。一些 ISP 已实施这种严厉措施来应对 DDoS 攻击。您可以看到 ntpdate 正在从 ntpdate -vd 发送数据包:
transmit(91.189.94.4)
transmit(91.189.89.199)
transmit(91.189.94.4)
transmit(91.189.89.199)
我会联系您的 ISP,询问他们是否阻止了外部 ntp 请求,以及他们是否有您可以用于时间同步的本地服务器。
还有一些更模糊的可能性,但由于您没有发布任何来自 syslog 的日志,因此很难排除它们。
答案2
然而,这不是 ntp 答案......
sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
这个和 curl 版本这里。
答案3
使用 hpdate
如果您的网络无法使用 ntp 传输,请安装 htpdate。它通过 http 协议同步时间。根据手册页,准确度将在 0.5 秒以内。
sudo apt-get install htpdate
sudo htpdate -a google.com
安装软件包时,htpdate 服务将启动。如果有互联网连接,时间将立即更新。
答案4
与 Alex 的回答类似,这对我解决 ntp 端口被防火墙保护的问题很有用:
sudo date -s "$(curl http://s3.amazonaws.com -v 2>&1 | \
grep "Date: " | awk '{ print $3 " " $5 " " $4 " " $7 " " $6 " GMT"}')"