通常我不会修改 Windows 10 机器的时间同步配置。最近,我更多地使用 Linux SBC(Raspberry Pi 等)开发物联网解决方案。我注意到它们中有几个在任何时候都完美同步。无论它们是通过以太网还是 WLAN 连接,我桌上的设备的 LED 信号都会在完全相同的时刻闪烁。
我的(始终在线的)Windows PC(独立,没有 Windows 域)总是会慢几秒钟。大多数情况下,与 Linux 计算机相比,时间会相差 1 到 2 秒,并且会有所不同。手动点击“立即同步”按钮不会改变任何事情。
我的笔记本更糟糕,唤醒后,时间可能会在很长一段时间内偏差好几秒,直到时间同步使它接近实际时间,但还不够。
我建了一个小测试网站前段时间,我将本地系统时间与我的网络服务器(附近一个大型数据中心的 Linux 服务器)进行了比较,并且还向我显示了差异。
现在,我已通过旧版 Windows 7 控制面板对话框将 w32time 配置更改为使用 pool.ntp.org,并且此更改也反映在注册表中。(之前是那个可疑的 time.windows.com。)这并没有改变任何东西。
为了进行测试,我运行了一个我闲置的旧程序,名为 ntpdate.exe。它需要一个 IP 地址,我需要以管理员身份启动它,但它将我的系统时钟推得非常接近我的服务器。几分钟后,它又差了 250 毫秒。
因此,Windows 自己的时间同步似乎不起作用。至少与每个 Linux 系统开箱即用的功能相比,Windows 的时间同步非常可靠。也许微软认为必须存在时钟分集,几秒钟的误差完全没问题。我的目标是保持在官方时间的 100 毫秒以内,这应该是可能的。我的 DSL 互联网链接在 ping 时间方面非常稳定。
那么 w32time 有希望做到这一点吗?如果可以,我该用什么魔法词来告诉它呢?否则,你能推荐哪些第三方工具来保持我的时间同步,并且不会占用我所有的内存?
答案1
您已经在运行 Linux。
将其中一台 Linux 机器设置为 NTP 服务器。
将 Windows 时间服务指向该服务器。(在命令行上使用 w32tm 来配置 Windows 时间服务。它隐藏得很好。)
实际上...只需同时在 Internet 上使用 2 个或更多时间服务器(您可以使用列表)可能已经可以改善情况。
这样可以让你更接近准确度,但仍然不如 Linux 上的效果好。这是因为 Windows 似乎没有像 Linux 那样很好地考虑自然时钟偏差,而且 Windows 提取时间更新的频率低于 Linux。这会使 Windows 计算机偏差更快,尤其是如果主板上的内部时钟一开始就不是很准确的话。(大多数都不是。)
如果您想做得更好,请在 Windows 上安装合适的 NTP 客户端。有几种开源 NTP 客户端可用。其中任何一个都比 Windows 内置的客户端更好。
如果您想要获得尽可能高的精度,可以购买内置无线电接收器的 USB 加密狗(或 PCI(e) 卡),用于接收世界各地各种参考时钟系统广播的时间信号。