- 将你的 Windows 服务器配置成一个标准的 NTP 时间源,供网络中的其他设备(如其他电脑、服务器、网络设备)同步时间。
- 配置你的 Windows 客户端(包括服务器本身),让它从一个外部或内部的 NTP 时间源同步时间。
下面我将详细讲解这两种配置方法。

将 Windows 服务器配置为 NTP 服务器(作为时间源)
如果你想让一台 Windows Server 成为局域网内的权威时间源,你需要配置 Windows Time 服务,并将其设置为权威时间源。
第 1 步:检查和安装角色(如果需要)
Windows Server 的“角色”或“功能”中已经包含了 Windows Time 服务,但为了确保万无一失,可以检查一下。
- 打开 服务器管理器。
- 点击 “管理” -> “添加角色和功能”。
- 在向导中,一直点击 “下一步”,直到 “功能” 页面。
- 在功能列表中,找到并勾选 “Windows Time 服务”。
- 点击 “安装” 完成安装。
第 2 步:配置注册表(关键步骤)
要让 Windows 服务器成为权威时间源,必须修改注册表。操作前请务必备份注册表!
- 按
Win + R键,输入regedit并回车,打开注册表编辑器。 - 导航到以下路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config - 在右侧窗口中,找到名为
AnnounceFlags的 DWORD (32 位) 值。- 如果不存在,请右键点击空白处 -> 新建 -> DWORD (32 位) 值,并将其命名为
AnnounceFlags。 - 双击
AnnounceFlags,将其值修改为:5:如果你的域功能级别是 Windows Server 2008 或更高。A:如果你的域功能级别是 Windows Server 2003 或更低。- 对于独立(非域)服务器,设置为
5通常是可行的。
- 如果不存在,请右键点击空白处 -> 新建 -> DWORD (32 位) 值,并将其命名为
- 导航到以下路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer - 在右侧窗口中,找到名为
Enabled的 DWORD (32 位) 值。- 如果不存在,请右键点击空白处 -> 新建 -> DWORD (32 位) 值,并将其命名为
Enabled。 - 双击
Enabled,将其值修改为1。
- 如果不存在,请右键点击空白处 -> 新建 -> DWORD (32 位) 值,并将其命名为
- (可选但推荐)在同一
NtpServer键下,可以修改RegKey的值为Parameters,以确保配置被正确应用。
第 3 步:配置 Windows Time 服务类型
- 导航到以下注册表路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient - 在右侧窗口中,找到名为
SpecialPollInterval的 DWORD (32 位) 值。- 这个值决定了客户端向此服务器同步时间的频率(以秒为单位)。
- 默认值是
604800(7天),你可以修改为一个更小的值,900(15分钟)或3600(1小时)。 - 注意:这个值是以 秒 为单位的,不要直接填入
15或1。
第 4 步:重启 Windows Time 服务
- 以管理员身份打开 命令提示符 (CMD) 或 PowerShell。
- 执行以下命令来重启服务,使所有更改生效:
w32tm /config /update net stop w32time net start w32time
或者,你也可以在服务管理器中重启 "Windows Time" 服务。
(图片来源网络,侵删)
第 5 步:配置防火墙(重要!)
为了让其他设备能够访问你的 NTP 服务器,必须在防火墙中允许 NTP 流量。
- 打开 “高级安全 Windows Defender 防火墙”。
- 在左侧点击 “入站规则”。
- 在右侧,点击 “新建规则...”。
- 规则类型选择 “端口”,点击“下一步”。
- 选择 “TCP”,并在特定本地端口中输入
123(NTP 服务的标准端口),点击“下一步”。 - 选择 “允许连接”,点击“下一步”。
- 规则应用配置(域、专用、公用),根据你的网络环境选择,通常勾选“专用”即可,点击“下一步”。
- 为规则命名,
NTP Server Inbound,然后点击“完成”。
你的 Windows 服务器已经成功配置为 NTP 服务器,网络中的其他设备可以将它的时间源地址指向这台服务器的 IP 地址。
配置 Windows 客户端同步时间
无论是 Windows 客户端还是服务器,它自己也需要同步时间,你可以让它从一个外部公共 NTP 服务器(如 time.windows.com)同步,也可以从你在场景一中配置的内部 NTP 服务器同步。
使用图形界面(适用于普通用户)
- 右键点击任务栏右下角的时间 -> “调整日期/时间”。
- 在打开的设置页面中,找到 “其他日期、时间和区域设置”。
- 点击 “设置日期和时间”。
- 在弹出的窗口中,点击 “更改日期和时间” -> “更改时区”。
- (关键步骤) 返回到“日期和时间”设置主界面,向下滚动找到 “其他日期、时间和区域设置”,再次点击进入。
- 点击 “设置日期和时间” -> “Internet 时间” 选项卡 -> “更改设置”。
- 勾选 “与 Internet 时间服务器同步”。
- 在服务器地址中输入你想要同步的时间源地址。
- 公共 NTP 服务器:
time.windows.com或pool.ntp.org - 你的内部 NTP 服务器:输入你配置好的服务器的 IP 地址或主机名。
- 公共 NTP 服务器:
- 点击 “立即更新”(可选)和 “确定” 保存设置。
使用命令行(推荐用于管理员和自动化)
命令行方式更强大,也更适合批量管理。

-
以管理员身份打开命令提示符或 PowerShell。
-
(可选但推荐)将类型设置为 NTPClient 首先确保你的客户端是作为 NTP 客户端去同步时间,而不是 NTP 服务器。
w32tm /config /syncfromflags:manual /update
/syncfromflags:manual:表示手动指定时间源。/update:应用配置。
-
配置时间源 指定要同步的 NTP 服务器,你可以指定多个服务器,用空格隔开,系统会按顺序尝试。
w32tm /config /manualpeerlist:"time.windows.com 0x8 pool.ntp.org 0x8" /update
time.windows.com:微软的公共时间源。pool.ntp.org:公共 NTP 服务器池。0x8:这是一个特殊标志,表示这是一个可靠的时间源。强烈建议添加此标志,尤其是在从公共服务器同步时。- 如果你使用的是内部服务器,命令应为:
w32tm /config /manualpeerlist:"ntp.yourdomain.com 0x8" /update
-
立即同步并检查状态
- 立即强制同步一次:
w32tm /resync /force
- 查看 Windows Time 服务的当前状态和配置:
w32tm /query /status
- 查看详细的同步信息:
w32tm /query /verbose
- 立即强制同步一次:
| 命令 | 功能 |
|---|---|
w32tm /query /status |
查看时间服务当前状态(源、上次同步时间等) |
w32tm /resync |
尝试与配置的时间源重新同步 |
w32tm /resync /force |
强制与时间源重新同步,即使时间差异不大 |
w32tm /config /update |
应用通过 w32tm /config 进行的所有更改 |
w32tm /config /syncfromflags:domhier |
将时间源设置为域层级中的权威时间源(域环境) |
w32tm /config /syncfromflags:manual |
将时间源设置为手动指定的服务器 |
w32tm /config /manualpeerlist:"server1 server2" |
手动指定多个时间源服务器 |
net stop w32time && net start w32time |
重启 Windows Time 服务 |
故障排查
如果时间同步失败,可以:
- 检查防火墙:确认目标 NTP 服务器的
123端口是开放的。 - 检查网络连接:确保客户端可以访问配置的 NTP 服务器 IP 地址。
- 检查时间源服务器:确保你的内部 NTP 服务器已经正确配置为权威时间源(
AnnounceFlags=5)。 - 查看事件日志:在 “事件查看器” -> “Windows 日志” -> “系统” 中,查找来源为
W32Time的日志,里面会记录详细的同步成功或失败信息。 - 使用
w32tm /query /verbose:这个命令能提供最详细的同步信息,是排查问题的利器。
