我有一台基于 Linux 的 NAS(Linux 版本 2.6.32.11-svn70860),无法使用 ntp 设置时间。之前的 SysAdmin 早已离职,所以我不知道这个问题是刚刚出现,还是已经存在多年。我也在联系制造商,但对他们的技术支持不太有信心 - 这就是我来这里的原因!
在 /var/log/daemon.log 中我看到如下行:
Jan 13 09:28:37 ntpdate[16529]: can't find host pool.ntp.org
Jan 13 09:28:37 ntpdate[16529]: can't find host time.windows.com
Jan 13 09:28:37 ntpdate[16529]: can't find host pool.ntp.org
Jan 13 09:28:37 ntpdate[16529]: no servers can be used, exiting
因此我开始调查 ntpdate。如果我执行
ntpdate pool.ntp.org
它回应
Error : Name or service not known
16 Jan 09:16:38 ntpdate[22019]: can't find host pool.ntp.org
16 Jan 09:16:38 ntpdate[22019]: no servers can be used, exiting
但如果我执行
ping pool.ntp.org
它回应
PING pool.ntp.org (207.32.191.59) 56(84) bytes of data.
64 bytes from 207.32.191.59: icmp_seq=1 ttl=56 time=97.1 ms
64 bytes from 207.32.191.59: icmp_seq=2 ttl=56 time=97.0 ms
64 bytes from 207.32.191.59: icmp_seq=3 ttl=56 time=97.4 ms
这让我认为互联网连接、IP 配置、DNS 等都没有问题。
我接下来要去哪里?
更新 1
nslookup pool.ntp.org
返回
;; Got recursion not available from A.B.C.D, trying next server
Server: 205.171.2.65
Address: 205.171.2.65#53
Non-authoritative answer:
Name: pool.ntp.org
Address: 209.114.111.1
Name: pool.ntp.org
Address: 173.242.114.154
Name: pool.ntp.org
Address: 204.235.61.9
Name: pool.ntp.org
Address: 64.6.144.6
ABCD 是我们公司内部的 IP 地址,不确定它为什么会显示出来。
更新2
我读到有关 nslookup 已被弃用而建议使用 dig 的消息,所以我尝试了一下。
dig pool.ntp.org
; <<>> DiG 9.5.1-P3 <<>> pool.ntp.org
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 56646
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;pool.ntp.org. IN A
;; Query time: 50 msec
;; SERVER: A.B.C.D#53(A.B.C.D)
;; WHEN: Thu Jan 16 11:03:40 2014
;; MSG SIZE rcvd: 30
其中 ABCD 是同一个内部名称服务器。
答案1
解决方案:负责我们 DNS 服务器的人员必须启用递归。
答案2
对我来说,解决办法是改变/etc/默认/ntpdate- 因为只有 nntpdate软件包已安装:
NTPDATE_USE_NTP_CONF=no
然后重新启动(我怀疑这是可选的)