设置NTP服务器以允许本地机器同步到Linux

我试图设置一台机器作为一个ntp服务器,其他本地机器将同步其时间。 无论ntp服务器是否连接到互联网,都需要这样做,即:时间是正确的并不重要,只要这些机器是相互同步的。

我的configuration文件如下:

NTP服务器/etc/ntp.conf

driftfile /var/lib/ntp/ntp.drift server 0.pool.ntp.org iburst server 1.pool.ntp.org iburst server 2.pool.ntp.org iburst server 127.127.1.0 fudge 127.127.1.0 stratum 10 restrict -4 default kod notrap nomodify nopeer noquery restrict -6 default kod notrap nomodify nopeer noquery restrict 127.0.0.1 restrict ::1 

NTP客户端/etc/ntp.conf

 driftfile /var/lib/ntp/ntp.drift server 192.168.1.146 iburst restrict -4 default kod notrap nomodify nopeer noquery restrict -6 default kod notrap nomodify nopeer noquery restrict 127.0.0.1 restrict ::1 

我改变服务器上的时间我然后用sudo /etc/init.d/ntp start运行ntp服务器然后尝试testing客户端可以用sudo ntpdate 192.168.1.146接收ntp更新

这个工作,但只有当连接到互联网(即使主时间由我的命令设置,而不是从外部ntp服务器)。

我的configuration文件中有任何错误? 我失踪的任何一步?

在某些时候,我提供了一个详细的答案,即我们如何完成您在数据中心中的工作。 自从我发表这个post后,没有什么变化。

链接到post:

使用NTP将一组linux服务器同步到一个公共时间源

我会假定你的时间服务器连接到互联网的时间足够多,NTP可以计算出你的错误率,并产生一个很好的猜测如何处理内核时钟。

首先,我build议从/etc/ntp.conf文件中删除以下两行。 他们从长远来看会引发问题,而且很less需要。 只要NTP服务器设法同步并开始pipe理内核时钟,即使互联网断开连接一段时间,也应该分发时间。

 server 127.127.1.0 fudge 127.127.1.0 stratum 10 

其次,在你的时间服务器上运行“ntpq -p”,在开始testing客户端之前,确定它是否已经与公共时间服务器同步。 在testing时手动将时间放在服务器上是一个坏主意。 不要这样做。 启动您的时间服务器,然后让它坐在上游时间服务器上同步30分钟。 你的内部时间服务器将不会把时间分配给与公共时间服务器同步(我认为PPM必须低于500)。 NTP将不会服务于客户认为是“疯狂”的时间,您需要10-30分钟来决定遵循哪些时间源。

然后,您可以在客户端上运行“ntpq -p”,以查看它们是否已同步,以及它们与时间服务器的距离。

第三,你可能想从时间服务器的ntp.conf文件中的(3)服务器上移到(5)或(6)。 现在,如果你们三个中的一个疯了或者变得不可达,NTP就不能分辨出剩下的两个中的哪一个提供了更好的时间信号。

有几件事情可以控制NTP如何在没有时间服务器可达的情况下保持内核时钟的规范。 一个是PPM(参见“ntpdc -c kerninfo”),它是指TSC或HPET或APIC时钟离现实(基于公共时间服务器)有多远。 另一个是温度波动和/或电源pipe理设置,可以改变CPU的频率。 那么时机水晶的质量,如果你是幸运的,或者真的很差,这可能是好的。

也许你需要考虑一个GPS或WWVB时间源。