我真的需要运行 ntpd 来使我的机器时钟与 NTP 协议保持同步吗?

我真的需要运行 ntpd 来使我的机器时钟与 NTP 协议保持同步吗?

我在我的机器上使用 Devuan GNU/Linux (~= Debian Buster without systemd)。在基于 Debian 的系统上,我们可以安装软件包ntpdate,它提供ntpdate二进制文件 - 一个 NTP 客户端,可以同步您的时钟一次,以及ntp,它提供ntpd守护进程。除此之外,它还执行周期性同步。

现在,这个问题的公认答案:

如何保持 Debian 内部时钟同步(与 NTP 服务器)?

建议我应该安装该ntp软件包。但我想知道这是否真的有必要。也就是说,为什么不简单地ntpdate提供一个 cron 脚本来每 X 小时、几天或其他什么时间运行客户端一次?我是否真的需要 ntpd 的所有功能 - 正如建议的那样,当它有自己的手册页时? :

BUGS
    The **ntpd** utility has gotten rather fat.  While not huge, it has gotten larger than
    might be desirable for an elevated-priority ntpd running on a workstation, particularly
    since many of the fancy features which consume the space were designed more with a busy
    primary server, rather than a high stratum workstation in mind.

注意:这个问题是关于物理机,而不是虚拟机。

答案1

drift这取决于您允许时钟存在多少误差 ( )。

众所周知,时钟漂移随着时间的推移。时钟的每个周期可能产生的小误差会在较长的时间内累积,并且可能(并且通常确实)使时钟与“实时”分开。

许多计算机上的内部时钟是由一个硬件芯片受温度影响的漂移很小(普通石英晶体约为 10ppm)。有时它比实时速度快,有时比实时速度慢。一个月内可能会出现 20 秒(一个月 10 ppm)的不同步。定期同步可以减少最大错误。例如,ntpdate每周使用一次,最大误差将小于 5 秒 (~20/4)。

ntp程序的目标是更频繁地同步到“ntp 时间”(这不完全是“实时”,但非常接近)。 ntp 同步的常见错误受到网络延迟的限制,可能小于 100 毫秒,通常小于 10 毫秒。这会将硬件时钟设置为原子时钟时间(非常接近“实时”)。那个时间将从那一点开始漂移。 ntp 客户端可以通过某些方式调整计算机时钟的漂移,以使其更接近接收到的时间。

是的,对于 ntp 协议的所有小修正和精度,它已经变得有些复杂。如今,拥有 GPS 时钟并不罕见。50纳秒内“世界时间”(UTC) 的(50.0e-09 秒)。这比任何 NTP 系统所能提供的都要多。在这种情况下,具有此类设备的计算机将被赋予 0 级别(层)以供 ntp 使用。

当然,每隔一段时间调整一次ntpdate就意味着“实时”的计算机知识会每隔一段时间就逐步改变。这意味着现在写入的文件的时间戳可能比之前写入的文件小。该ntp系统尽力避免这种“跳跃”。

至少有ntpd和chrony作为ntp时间的服务器。您可以使用其中之一(不能同时使用两者)来保持计算机时钟,也可以使用 GPS 时钟。

答案2

是的,您可以定期运行 ntpdate 并通过经常调整来保持时钟同步。时钟可能会在每次调整时跳过(跳跃)一些时间,这可能会导致问题,具体取决于您是否运行需要一致计时的软件。

您还可以运行 ntpd,并让其使用为此目的设计的协议来管理时钟。您还可以考虑使用 chrony,它看起来是一种更新、更轻量的实现。同样,它依赖于守护进程来保持时钟同步,或者您可以使用命令行随时同步。

使用 NTP 协议的解决方案将使您的时钟得到一致且温和的调整,从而实现最小的调整和调整之间最平滑的过渡(一旦守护进程启动,时间实际上不会直接调整)。

相关内容