在Windows上搭建NTP(网络时间协议)服务器,可以按照以下步骤进行:
Windows 10 及以上版本已经内置了NTP服务,无需额外安装软件。您可以通过以下步骤进行配置:
使用组合键 Windows + R 打开【运行】对话框,输入 regedit 打开【注册表编辑器】。
导航到以下路径:
注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
如果 NtpServer 项不存在,需要新建一个。
3. 双击 Enabled 键(如果不存在,也需要新建),将其值设置为 1,以启用NTP服务。

注册表 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer] "Enabled"=dword:00000001
导航到以下路径:
注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
双击 AnnounceFlags 键,将其值设置为 5,这表示服务器将广播其时间,并接受来自客户端的请求。

注册表 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config] "AnnounceFlags"=dword:00000005
NTP使用UDP协议的123端口进行通信,因此需要配置防火墙以允许该端口的流量。
powershell New-NetFirewallRule -DisplayName "允许UDP 123 端口入站" -Direction Inbound -Protocol UDP -LocalPort 123 -Action Allow
通常情况下,Windows 10 默认使用微软的时间服务器作为时间源。如果您需要设置自定义的时间源,可以编辑注册表或使用 w32tm 命令进行配置。
导航到以下路径:
registry HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
新建一个类型为 REG_SZ(字符串值)的项,命名为 NtpServer,其值为您希望同步的时间服务器地址,例如:
registry [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters] "NtpServer"="time.windows.com"
使用组合键 Windows + R 打开【运行】对话框,输入 services.msc 打开【服务】管理工具。
找到 Windows Time 服务,确保其已启动并设置为【自动】启动类型。
重新启动 Windows Time 服务以应用更改:
cmd net stop w32time net start w32time
验证NTP服务是否正常运行:
cmd w32tm /stripchart /computer:127.0.0.1
如果有时间回显,说明NTP服务已经成功搭建并运行。
如果您希望其他计算机或设备使用您搭建的NTP服务器进行时间同步,可以在这些设备上配置NTP客户端设置,指定您的NTP服务器地址。
例如,在Windows上,您可以使用以下命令配置NTP客户端:
cmd w32tm /config /manualpeerlist:您的NTP服务器IP地址 /syncfromflags:manual /reliable:YES /update net stop w32time && net start w32time
替换 您的NTP服务器IP地址 为您搭建的NTP服务器的实际IP地址。
通过以上步骤,您应该能够在Windows上成功搭建并运行一个NTP服务器。