我正在同步两台电脑的时间(用于一些网络延迟实验)。我知道NTP 池时间服务器也可以为 ubuntu 完成这项工作。(当然,有些软件,如 NetTime,在 Windows 上也可以工作。)每个区域/国家区域都有许多 NTP 服务器。例如,如果我使用亚洲-新加坡区域,请复制:
server 0.sg.pool.ntp.org
server 1.sg.pool.ntp.org
server 2.sg.pool.ntp.org
server 3.sg.pool.ntp.org
有超过20 台服务器 新加坡区。我的 PC 时间将只与这 20 多个服务器中的任意一个同步。因此,我担心的是:
这种方法能准确同步两台电脑的时间吗? 即使每个同步延迟可以小于 10 毫秒,它们也可能使用同一国家/地区中的两个不同服务器。我可以假设同一区域中的这些服务器都同步良好(例如,彼此之间的延迟小于 10 毫秒)吗?如果是,我可以认为我的两台 PC 之间的延迟可以小于 20-30 毫秒吗?
答案1
使用 ntpdate 。安装 ntpdate 并设置一个 cron 任务,使用起来非常简单ntpdate -u yourServerToSync
。cron 任务可以有您需要的频率,但我认为一天一次就足够了。首次同步后,两台电脑每天都会在同一时间同步到时间服务器。
答案2
首先ntpdate 已贬值所以你现在不应该在生产环境中使用它。你应该配置并正确运行 ntp 守护进程,以获得可靠的计时设置并消除跳过服务器时间的可能性(因为 ntp 将根据需要不断调整时钟)
正如您所看到的,仅使用池的问题在于您可能会获得它根据 DNS 查询决定的任何服务器,在您的情况下,您应该直接选择 3 - 5 个低层服务器,并将它们添加到两台机器的配置中。ntp 喜欢有一个最低限度3 台服务器和理想情况下5 进行同步以确保强大的时间域。
如果你选择一些低层服务器,他们应该所有这些都在几毫秒之内(如果不是更好的话),只要它们配置正确,您就不必担心。如果您的需求增长并且您需要同步更多机器,那么您可以运行自己的服务器,以确保您内部提供的内容一次只来自一个参考源。