我们使用 PHP 脚本与 NTP 时间服务器同步时间。一切正常,但当使用 Windows 服务器时,脚本会失败。
原始 Windows 服务器发行版中是否有运行的修改版本的 NTP?
答案1
旧版本的 Windows Server 使用 SNTP,虽然与 NTP 类似,但并不完全相同。您需要第三方软件包比如mdpc提到的提供高精度 NTP 服务。另一个可用的软件包是塔迪斯 2000,它也能提供准确的 NTP 服务。请参阅这个文件以获得解释,如果安装单独的 NTP 服务,请确保禁用 W32Time。
Zoredache 正确地提到 NTP 支持内置于 W32Time 服务中;但所使用的计算以及之后如何使用结果可能与您的需求不同。请记住,W32Time 服务虽然可以灵活地支持 NTP,由于 Active Directory 是基于 Kerberos 的,因此旨在帮助 Active Directory。我观察到我们的几台机器(服务器和工作站)在依靠 W32Time 与域控制器保持同步时会出现轻微的时间漂移。多秒(有时是几分钟)的漂移通常没问题,不会对我的工作造成问题。如果您需要亚秒级的精度,你可能想多了解一下 W32Time 的工作原理并考虑任何潜在问题。
答案2
我已经成功使用了预编译和打包的 Windows NTP 客户端好几年了。它是几乎所有 Linux 系统用于时间同步(包括配置文件)的标准参考 NTP 包。它正确地将自身安装为服务并禁用默认的 Windows 时间同步。它位于
http://www.meinbergglobal.com/english/sw/ntp.htm#ntp_stable