一段时间以来,我一直在与公司网络中的一些 NTP 问题作斗争,我很难理解命令如何与服务结合。例如:在服务器中/etc/ntp.conf
有一行:
server IP_of_internal_ntp_server
但当我输入时,ntpq -p
它显示了不同的服务器 IP。此外,随着时间的推移,我了解到将服务器的时间与 NTP 服务器重新同步的方法是这样的:
service ntpd stop && ntpdate ntp_server && service ntpd start
我的问题是:
ntpd
守护进程和命令是否ntpdate
一起工作?如果是这样,为什么我必须停止ntpd
守护进程才能同步ntp
?- 该
ntpq -p
命令,会受到/etc/ntp.conf
文件的影响吗?- 在某些服务器中,Nagios NTP 检查返回结果
NTP OK: Offset unknown
,而在所有其他服务器中我都得到了正确的响应,并且所有其他服务器的配置都相同,这是为什么?
提前致谢,Itai
编辑#1
/etc/ntp.conf
::
driftfile /var/lib/ntp/drift
fudge 127.127.1.0 stratum 10
keys /etc/ntp/keys
restrict 0.centos.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
restrict 127.0.0.1
restrict 1.centos.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
restrict 2.centos.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
restrict -6 ::1
restrict default kod nomodify notrap nopeer noquery
server 127.127.1.0
server 130.117.52.203
输出ntpq -p
:
[root@nyproxy15 ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
38.74.128.71 .INIT. 16 u - 64 0 0.000 0.000 0.000
*LOCAL(0) .LOCL. 10 l 45 64 377 0.000 0.000 0.001
[root@nyproxy15 ~]#
请忽略第 16 层,我知道它需要修复。
编辑#2:我已经编辑/etc/ntp.conf
并注释掉了您提到的行。
[root@nyproxy15 ~]# service ntpd stop ; ntpdate 130.117.52.203 ; service ntpd start
Shutting down ntpd: [ OK ]
30 Sep 08:16:30 ntpdate[31192]: adjust time server 130.117.52.203 offset -0.078324 sec
ntpd: Synchronizing with time server: [ OK ]
Starting ntpd: [ OK ]
[root@nyproxy15 ~]# ntpq -p
localhost.localdomain: timed out, nothing received
***Request timed out
root@nyproxy15 ~]# ps -ef |grep ntp
root 31210 1 0 08:16 ? 00:00:00 ntpd -u ntp:ntp -p /var/run/ntpd.pid
编辑#3:
现在,似乎几分钟后就ntpq -p
返回了正确的响应:
[root@nyproxy15 ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*130.117.52.203 46.4.54.78 3 u 9 64 377 80.633 -9.950 1.420
[root@nyproxy15 ~]#
答案1
如果你希望 NTP 服务器能够可靠地执行任何操作,你就不需要欺骗它自己时钟的可靠性;
server 127.127.1.0
和
fudge 127.127.1.0 stratum 10
确实这样做了,看起来摆脱它们已经解决了问题。
至于在ntpd
使用 强行计算时间之前停止ntpdate
,我的理解是内核中有一个用于玩弄时钟的结构,并ntpd
位于其上(以便在需要时扭曲时间)。只要它在那里,ntpdate
就无法看到;因此有必要将其从画面中移除足够长的时间才能ntpdate
工作。
但我的理解严格来自于运行池服务器;我不是内核程序员,在这方面可能是错的。