Unk*_*own 23 ntp time ntpd ntpdate
这两种同步服务器的方法之间的优缺点是什么?
在我看来,您的服务器每天的漂移可能不会超过 1 秒,因此 crontab 上的 ntpdate 就可以了。但我听说你可以在这里使用冗余的 NTP 服务器
http://www.pool.ntp.org/en/use.html
以便在发生故障时保持同步时间。
你有什么建议吗?
小智 26
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 的准确性是有限的。
我通常建议您运行 NTPD,并将您的服务器与组织内的指定时间服务器同步。该内部服务器通常会与公共 NTP 服务器之一(如您链接的那样)同步。
我已经毫无问题地使用了 ntpdate 方法,但它似乎比运行真正的 ntpd 守护程序更黑。