我最近遇到了一个以前从未见过的问题。2030 年左右的一个晚上,其中一个 DC 将时钟拨回了一个小时。此服务器同步到 pool.ntp.org 中的两个地址。发生这种情况时没有人在场,事件日志清楚地显示时间服务与公共 IP 同步。
我只能假设我们遇到了一个配置不正确的服务器,因为在第二天早上由于楼宇管理系统的时间错误造成的混乱之后,我只是重新同步了 ntp 服务器,它立即更正了它的时钟。
我通常将 ntp 配置为使用两个不同的 ntp 服务器,因此我假设客户端仅连接到第一个响应的服务器,并假设它将提供正确的时间。
所以,我的问题:
有没有办法配置 windows 时间服务,以便它只会在咨询两个不同的 ntp 服务器并且它们都在正确时间方面重合后才更正其时钟?我正在运行Win2019
编辑:我不知道可以对 ntp 结果进行历史查询(感谢 Paul Gear)。查询我配置的两个 IP 显示了我的问题的原因:
1623189765,"2021-06-08 22:02:45",-0.003809235,1,13.2,,,0,
1623188607,"2021-06-08 21:43:27",6.1543e-05,1,12.8,6,"Newark, NJ, US",0,
1623188607,"2021-06-08 21:43:27",6.1543e-05,1,12.8,,,0,
1623187438,"2021-06-08 21:23:58",0.011513196,1,12.4,6,"Newark, NJ, US",0,
中间的线表示与我使用的服务器存在巨大差异。
不要太不同意 John Mahowald,但至少从 Windows 2016 开始,Windows 时间服务已经有了很大改进,包括完整的 NTP 服务。他们还有一个文档解释如何配置 Windows 以获得高精度。我认为没有必要运行单独的非 Windows NTP 服务器,除非您有极高的精度要求(在这种情况下,您可能会改用 PTP - Windows 2019 甚至支持它)。
所以很可能,您刚刚遇到了不准确的池服务器。这种情况时有发生,并且池非常擅长快速删除这些服务器。如果你有它同步到的服务器的 IP 地址记录,你可以在https://www.ntppool.org/scores/ <IP_ADDRESS> 上查看它的历史记录。
我认为可能是因为有问题的系统仍在响应,所以选择它是因为您配置的对等点太少 (另请参阅RFC8633 中关于具有多种参考时钟的以下部分),并且 Windows 时间服务不需要重新查询池以获取新 IP,因为原始服务器仍在响应。
因此,正如约翰所说,为防止这种情况再次发生,您可以做的最重要的事情是添加更多时间源。来自池的更多来源很好,如果您想要池之外的东西具有相当稳定的 IP 并提供相当准确的服务,请尝试
time.apple.com
,它似乎是全球分布的第 1 层服务器的 Geo-DNS 池。w32time只是一个 SNTP 客户端,据我所知,所以如果数据包有很大的跳跃,时间就会被步进。 可以将组策略配置为具有额外的 NTP 服务器,但这些是用于故障后备,而不是像 ntpd 这样的错误检查同时进行多个关联。
考虑在 AD DS 前运行您自己的非 w32time 服务,这是一个具有多个源的完整 NTP 实现。选择带有 GNSS 天线、ntpd 或 chrony 安装的物理设备。
如果 Internet 可用,可能来自 NTP 池的四个源优于两个。使用 ntpd 或 chrony 很容易。