这两种服务器同步方式的优缺点是什么?
在我看来,您的服务器每天的漂移可能不会超过 1 秒,因此 crontab 上的 ntpdate 就可以了。但我听说你可以在这里使用冗余的 NTP 服务器
http://www.pool.ntp.org/en/use.html
以便在发生故障时保持同步时间。
你有什么建议吗?
这两种服务器同步方式的优缺点是什么?
在我看来,您的服务器每天的漂移可能不会超过 1 秒,因此 crontab 上的 ntpdate 就可以了。但我听说你可以在这里使用冗余的 NTP 服务器
http://www.pool.ntp.org/en/use.html
以便在发生故障时保持同步时间。
你有什么建议吗?
NTP 算法包含允许您计算和修复服务器时钟偏差的信息。NTPD 包括使用它来保持时钟同步的能力,并且将比未运行 NTPD 的计算机上的时钟更准确地运行。NTPD 还将使用多个服务器来提高准确性。
ntpdate 不保留任何状态来为您执行此服务,因此不会提供相同的准确性。它允许您向它提供一个服务器列表,它将用来尝试为您提供更好的结果,但这并不能替代 NTPD 中提供的复杂算法,这些算法会随着时间的推移跟踪您与每个服务器的偏差。
NTPDATE 会立即更正系统时间,这可能会导致某些软件出现问题(例如,破坏现在看起来很旧的会话)。NTPD 有意缓慢地纠正系统时间,避免了该问题。您可以在启动 NTPD 时添加 -g 开关,以允许 NTPD 第一次更新较大的更新,这或多或少等同于在启动 NTPD 之前运行一次 ntpdate,这一次是推荐的做法。
至于安全问题,ntp 服务器不会在未启动的连接上重新连接,这意味着您的防火墙应该能够告诉您发起了 ntp 请求并允许返回流量。无需为任意连接打开端口即可使 NTPD 正常工作。
从 ntpdate(8) 手册页:
ntpd 比 ntpdate 更受欢迎,因为您可以获得平滑的时间校正,而不是时钟跳动。当你的日志中有一个向后的时间跳跃时,你对它们有什么意义?ntpdate 还将根据需要在服务器之间透明地切换。
至于需要开放端口(正如 Kyle 所提到的),可以将较新版本的 ntpd(例如我的 Debian 服务器上的 4.2.4)配置为向 LAN 广播/多播,并使用加密身份验证。
编辑:另见这个问题。
我通常建议您运行 NTPD,并将您的服务器与组织内的指定时间服务器同步。该内部服务器通常会与公共 NTP 服务器之一(如您链接到的)同步。
我已经毫无问题地使用了 ntpdate 方法,但它似乎比运行真正的 ntpd 守护程序更骇人听闻。
我听说过运行 ntpd 的虚拟机上的时钟偏差问题。我还听说有人通过针对多个池服务器运行调用 ntpdate 的常规 cron 作业来纠正此问题。我没有遇到过这些问题,但我已经听说过好几次了。
如其他地方所述,NTP 提供了平滑的时间校正。如果您服务器上的应用程序不介意丢失整秒,或者重复执行相同的秒,那么 ntpd 不会比 ntpdate 为您带来太多好处。
另一方面,如果您确实有对秒敏感的时间敏感应用程序,或者更糟糕的是对部分秒敏感,那么 ntpd 是迄今为止更好的选择。Novell eDirectory 时间戳更新用于更新冲突处理,如果更新非常快(例如在早上登录高峰期间),这将变得至关重要。系统日志服务器需要至少精确到半秒的时间才能保持正常的日志。
对于我在家中的 MythTV 盒子,我注意到它甚至比我的有线电视提供商认为的时间少了几秒钟,所以我在上面使用了 NTP。对于工作中的 UPS 监控服务器,我使用 crontabbed ntpdate 的原因与 Kyle Hodgson 指出的相同,因为它是一个堡垒主机,即使我已锁定应用程序,我也不希望该端口打开;因为该应用程序是第二次关闭的真实情况并不可怕。
至于冗余,我们在网络上至少维护两个时间主机,并将我们所有的内部主机指向这两个。然后这两个跟踪不同的互联网 NTP 主机。更重要的是,它们被配置为对等安排,因此如果我们的互联网链接出现故障,它们可以以一致的方式保持彼此之间的时间。强大的 NTP 绝对是可以设计的。
在访问和强化至关重要的服务器上,我使用了 xntpd(我所依赖的 ntpd 版本)需要打开 UDP 端口 123 的推理。由于我更喜欢只打开 tcp 22 和 80,所以我使用了 ntpdate而是在 crontab 中。我从来没有听说过为什么它需要它,或者我记得没有一个很好的理由。
使用 crontab 的 ntpdate 调用的缺点之一是它不能优雅地处理漂移校正。ntpdate、iirc 会在得知您已过时后立即更新时钟 - ntp 守护程序通常会轻轻地纠正漂移。这样做的好处是您的日志保持正常 - 例如,您可以想象,在繁忙的 Web 服务器上,如果 RTC 漂移了几分钟,那么第二天阅读 Web 日志可能会推断出人们能够访问安全他们登录之前的 URL,因为网络点击会乱序。
ntpdate 用于一次性更新,如果您希望定期同步时间,请为此目的使用服务,ntpd。
据我所知,没有令人信服的理由不使用 ntpd
您不需要使用 crontab,这就是 ntpd 的用途。
最初,当您的时间结束时,一种方法是简单地停止 ntpd,然后运行
ntpdate ntp.server.com
以使其恢复同步,然后再次启动 ntp。不过,如果您有一个大型网络,我可能会设置几个本地 ntp 服务器,并让所有主机都使用它们。
请参阅此讨论以了解为什么仍然需要和使用“ntpdate”。
总结一下:ntpd在进行大量时间调整时比较慢,即使使用 -g 选项也是如此。
对于家庭使用,ntpdate 真的没什么大不了的。它“慢”是有原因的。在 PRODUCTION ENTERPRISE 环境中使用带有 ntpdate 的 cron 的任何人都是白痴。