我将 DMZ 服务器配置为 NTP 服务器,以连接到外部 NTP 服务器并同步公司网络中的所有设备的时间。以下是 DMZ 服务器中的 ntp.conf 文件的内容
server 127.127.1.0
fudge 127.127.1.0 stratum 6
driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntpd.log
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
server 0.asia.pool.ntp.org iburst
server 1.asia.pool.ntp.org iburst
server 2.asia.pool.ntp.org iburst
server 3.asia.pool.ntp.org iburst
server time.google.com iburst
restrict -4 default kod nomodify notrap
restrict 127.0.0.1
restrict ::1
但是,阿联酋当地时间(服务器所在时区)与服务器“日期”之间有 27 秒的差异。我多次执行以下命令并重新启动服务器。这是 Debian 9.6 服务器。我在服务器中进行了所有软件包更新,但仍然有 27 秒的差异。
/etc/init.d/ntp stop
ntpdate -u 0.asia.pool.ntp.org
/etc/init.d/ntp start
hwclock -w
ntpq -p
ntpq -p输出如下:
~# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
LOCAL(0) .LOCL. 6 l 709 64 0 0.000 0.000 0.000
-ntp.paina.net 131.113.192.40 2 u 30 64 377 220.331 31.973 0.491
-119.28.206.193 100.122.36.196 2 u 107 64 346 151.095 8.540 8.537
+uk.cluster.ntp. 185.134.196.169 2 u 28 64 377 133.718 -2.215 0.278
+t2.time.sg3.yah 106.10.133.18 2 u 28 64 377 95.837 5.051 0.602
*time2.google.co .GOOG. 1 u 30 64 377 163.875 -6.637 0.338
答案1
我在 FreeBSD 上遇到了同样的问题,并发现了以下问题:
27 正好是 1970 年 1 月 1 日(Unix 时钟开始计时)与今天之间的闰秒数。因此,问题很可能与闰秒有关。要检查的事项:
- 闰秒数据库文件
ntpd 应该安装闰秒数据库文件。守护进程在找到此文件时会向系统日志报告其是否正确。
- 上游时间服务器
确实存在一些时间服务器,它们提供的时间用于与我们这种服务器不同的目的,并且它们可能以不同的方式处理闰秒。用于将ntpdate -q
上游时间服务器的意见与互联网上知名的服务器进行比较。
- 时区数据库
时区数据库可以支持闰秒,也可以不支持闰秒。如果您以某种方式安装了错误的版本,您的本地时间将出现(当前)27 秒的偏移。比较date
和时,可以看到差异TZ=UTC date
。
答案2
这可能不是解决您原始问题的方法,但您应该更改配置中的几件事:
删除已弃用的本地时钟驱动程序,改用孤立模式。将:
server 127.127.1.0
和替换fudge 127.127.1.0 stratum 6
为tos orphan 6
。(请参阅网络时间协议 (NTP) 文档有关孤儿模式的更多信息。)使用任何一个NTP 池或者谷歌的时间服务,但是不是都。出现这种情况的原因是,你混合了闰年模糊时间源和非闰年模糊时间源。