AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 16467
Accepted
Unknown
Unknown
Asked: 2009-06-01 16:39:40 +0800 CST2009-06-01 16:39:40 +0800 CST 2009-06-01 16:39:40 +0800 CST

比较 NTPD 和 ntpdate

  • 772

这两种服务器同步方式的优缺点是什么?

在我看来,您的服务器每天的漂移可能不会超过 1 秒,因此 crontab 上的 ntpdate 就可以了。但我听说你可以在这里使用冗余的 NTP 服务器

http://www.pool.ntp.org/en/use.html

以便在发生故障时保持同步时间。

你有什么建议吗?

time ntp ntpd ntpdate
  • 10 10 个回答
  • 26996 Views

10 个回答

  • Voted
  1. Best Answer
    lambacck
    2009-06-01T18:21:04+08:002009-06-01T18:21:04+08:00

    NTP 算法包含允许您计算和修复服务器时钟偏差的信息。NTPD 包括使用它来保持时钟同步的能力,并且将比未运行 NTPD 的计算机上的时钟更准确地运行。NTPD 还将使用多个服务器来提高准确性。

    ntpdate 不保留任何状态来为您执行此服务,因此不会提供相同的准确性。它允许您向它提供一个服务器列表,它将用来尝试为您提供更好的结果,但这并不能替代 NTPD 中提供的复杂算法,这些算法会随着时间的推移跟踪您与每个服务器的偏差。

    NTPDATE 会立即更正系统时间,这可能会导致某些软件出现问题(例如,破坏现在看起来很旧的会话)。NTPD 有意缓慢地纠正系统时间,避免了该问题。您可以在启动 NTPD 时添加 -g 开关,以允许 NTPD 第一次更新较大的更新,这或多或少等同于在启动 NTPD 之前运行一次 ntpdate,这一次是推荐的做法。

    至于安全问题,ntp 服务器不会在未启动的连接上重新连接,这意味着您的防火墙应该能够告诉您发起了 ntp 请求并允许返回流量。无需为任意连接打开端口即可使 NTPD 正常工作。

    从 ntpdate(8) 手册页:

    ntpdate 可以根据需要手动运行以设置主机时钟,也可以从主机启动脚本运行以在启动时设置时钟。在某些情况下,这对于在启动 NTP 守护程序 ntpd 之前初始设置时钟很有用。也可以从 cron 脚本运行 ntpdate。但是,重要的是要注意,带有人为的 cron 脚本的 ntpdate 不能替代 NTP 守护程序,后者使用复杂的算法来最大限度地提高准确性和可靠性,同时最大限度地减少资源使用。最后,由于 ntpdate 不像 ntpd 那样规范主机时钟频率,因此使用 ntpdate 的准确性是有限的。

    • 26
  2. pgs
    2009-06-01T18:22:00+08:002009-06-01T18:22:00+08:00

    ntpd 比 ntpdate 更受欢迎,因为您可以获得平滑的时间校正,而不是时钟跳动。当你的日志中有一个向后的时间跳跃时,你对它们有什么意义?ntpdate 还将根据需要在服务器之间透明地切换。

    至于需要开放端口(正如 Kyle 所提到的),可以将较新版本的 ntpd(例如我的 Debian 服务器上的 4.2.4)配置为向 LAN 广播/多播,并使用加密身份验证。

    编辑:另见这个问题。

    • 8
  3. Michael Gorsuch
    2009-06-01T16:46:47+08:002009-06-01T16:46:47+08:00

    我通常建议您运行 NTPD,并将您的服务器与组织内的指定时间服务器同步。该内部服务器通常会与公共 NTP 服务器之一(如您链接到的)同步。

    我已经毫无问题地使用了 ntpdate 方法,但它似乎比运行真正的 ntpd 守护程序更骇人听闻。

    • 5
  4. Matt Simmons
    2009-06-01T17:03:23+08:002009-06-01T17:03:23+08:00

    我听说过运行 ntpd 的虚拟机上的时钟偏差问题。我还听说有人通过针对多个池服务器运行调用 ntpdate 的常规 cron 作业来纠正此问题。我没有遇到过这些问题,但我已经听说过好几次了。

    • 3
  5. sysadmin1138
    2009-06-13T20:23:05+08:002009-06-13T20:23:05+08:00

    如其他地方所述,NTP 提供了平滑的时间校正。如果您服务器上的应用程序不介意丢失整秒,或者重复执行相同的秒,那么 ntpd 不会比 ntpdate 为您带来太多好处。

    另一方面,如果您确实有对秒敏感的时间敏感应用程序,或者更糟糕的是对部分秒敏感,那么 ntpd 是迄今为止更好的选择。Novell eDirectory 时间戳更新用于更新冲突处理,如果更新非常快(例如在早上登录高峰期间),这将变得至关重要。系统日志服务器需要至少精确到半秒的时间才能保持正常的日志。

    对于我在家中的 MythTV 盒子,我注意到它甚至比我的有线电视提供商认为的时间少了几秒钟,所以我在上面使用了 NTP。对于工作中的 UPS 监控服务器,我使用 crontabbed ntpdate 的原因与 Kyle Hodgson 指出的相同,因为它是一个堡垒主机,即使我已锁定应用程序,我也不希望该端口打开;因为该应用程序是第二次关闭的真实情况并不可怕。

    至于冗余,我们在网络上至少维护两个时间主机,并将我们所有的内部主机指向这两个。然后这两个跟踪不同的互联网 NTP 主机。更重要的是,它们被配置为对等安排,因此如果我们的互联网链接出现故障,它们可以以一致的方式保持彼此之间的时间。强大的 NTP 绝对是可以设计的。

    • 3
  6. Kyle
    2009-06-01T16:59:39+08:002009-06-01T16:59:39+08:00

    在访问和强化至关重要的服务器上,我使用了 xntpd(我所依赖的 ntpd 版本)需要打开 UDP 端口 123 的推理。由于我更喜欢​​只打开 tcp 22 和 80,所以我使用了 ntpdate而是在 crontab 中。我从来没有听说过为什么它需要它,或者我记得没有一个很好的理由。

    使用 crontab 的 ntpdate 调用的缺点之一是它不能优雅地处理漂移校正。ntpdate、iirc 会在得知您已过时后立即更新时钟 - ntp 守护程序通常会轻轻地纠正漂移。这样做的好处是您的日志保持正常 - 例如,您可以想象,在繁忙的 Web 服务器上,如果 RTC 漂移了几分钟,那么第二天阅读 Web 日志可能会推断出人们能够访问安全他们登录之前的 URL,因为网络点击会乱序。

    • 1
  7. Rog
    2009-06-01T18:04:59+08:002009-06-01T18:04:59+08:00

    ntpdate 用于一次性更新,如果您希望定期同步时间,请为此目的使用服务,ntpd。

    据我所知,没有令人信服的理由不使用 ntpd

    • 1
  8. Xerxes
    2009-06-01T16:50:55+08:002009-06-01T16:50:55+08:00

    您不需要使用 crontab,这就是 ntpd 的用途。

    最初,当您的时间结束时,一种方法是简单地停止 ntpd,然后运行ntpdate ntp.server.com以使其恢复同步,然后再次启动 ntp。

    不过,如果您有一个大型网络,我可能会设置几个本地 ntp 服务器,并让所有主机都使用它们。

    • 0
  9. James
    2009-10-20T11:41:01+08:002009-10-20T11:41:01+08:00

    请参阅此讨论以了解为什么仍然需要和使用“ntpdate”。

    总结一下:ntpd在进行大量时间调整时比较慢,即使使用 -g 选项也是如此。

    • 0
  10. StateGov1
    2011-07-15T07:40:18+08:002011-07-15T07:40:18+08:00

    对于家庭使用,ntpdate 真的没什么大不了的。它“慢”是有原因的。在 PRODUCTION ENTERPRISE 环境中使用带有 ntpdate 的 cron 的任何人都是白痴。

    • -3

相关问题

  • 你使用什么样的时间管理系统?

  • 时间同步和计划任务

  • 时间漂移

  • 让 Windows Vista 使用我们的域服务器的时间

  • Windows Server 无法可靠地同步 NTP 时间

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve