摘要
在 Windows 系统中,您可以将一台计算机配置为 NTP (Network Time Protocol) 服务器,让局域网内的其他设备能够从中同步时间,这可以确保整个网络中所有设备的时间保持一致,对于日志分析、安全认证、分布式系统等场景至关重要。

Windows 提供了两种主要方式来配置 NTP 服务:
- 使用 Windows Time 服务(内置):这是最常用、最简单的方法,无需安装第三方软件。
- 使用第三方 NTP 服务器软件:如 Meinberg、Chrony 等,功能更强大,适用于更专业或高精度的需求。
本指南将重点介绍第一种方法,因为它对于绝大多数 Windows 用户来说已经足够。
第一部分:配置 Windows 作为 NTP 服务器(对内提供时间)
此方法将使您的 Windows 服务器成为局域网内其他客户端的权威时间源。
步骤 1:以管理员身份打开命令提示符
这是执行所有后续操作的前提,在开始菜单中搜索 cmd,然后右键点击“命令提示符”,选择“以管理员身份运行”。

步骤 2:配置 Windows Time 服务
Windows Time 服务默认是运行的,但需要配置它来提供时间同步。
-
设置时间源(最关键的一步) 您的服务器本身必须有一个准确的时间源,它可以是:
- 外部公共 NTP 服务器(推荐,时间最准确):如
time.windows.com、time.nist.gov、pool.ntp.org等。 - 域控制器:如果您在 Active Directory 域环境中,域控制器本身就是权威时间源,通常无需再配置外部源。
- 硬件时钟:服务器自身的硬件时钟(但不如外部 NTP 服务器准确)。
使用以下命令将服务器同步到一个公共 NTP 服务器(以
time.windows.com为例):w32tm /config /syncfromflags:manual /manualpeerlist:"time.windows.com,0x9"
/syncfromflags:manual:指定手动设置时间源。/manualpeerlist:"...":指定一个或多个 NPEER 服务器。0x9是一个特殊标志,表示该服务器是同步伙伴,而不是客户端,这很重要,因为它允许服务器从该伙伴获取时间,并继续为其他客户端提供服务。- 如果需要添加多个服务器,用空格隔开,
"time.windows.com,0x9 time.nist.gov,0x9"
- 外部公共 NTP 服务器(推荐,时间最准确):如
-
配置为 NTP 服务器模式 使用以下命令将服务器配置为向客户端提供时间服务。
(图片来源网络,侵删)w32tm /config /reliable:yes
/reliable:yes:将该计算机标记为可靠的时间源,其他客户端会更愿意从此服务器同步时间。此步骤至关重要。
-
配置防火墙规则 默认情况下,Windows 防火墙可能会阻止 NTP 流量(UDP 端口 123),您需要为“域配置文件”和“专用配置文件”启用入站规则。
- 使用命令行(推荐)
netsh advfirewall firewall add rule name="NTP" dir=in action=allow protocol=UDP localport=123 profile=domain netsh advfirewall firewall add rule name="NTP" dir=in action=allow protocol=UDP localport=123 profile=private
- 通过图形界面
- 打开“控制面板” > “系统和安全” > “Windows Defender 防火墙”。
- 点击左侧的“允许应用或功能通过 Windows Defender 防火墙”。
- 点击“更改设置”(需要管理员权限)。
- 找到并勾选“Windows 时间服务”(确保“域”和“专用”列都已勾选)。
- 如果找不到该服务,可以点击“允许其他应用...”,然后手动添加
svchost.exe,并确保它允许“TCP”和“UDP”端口 123。
- 使用命令行(推荐)
-
重启 Windows Time 服务 配置更改后,必须重启服务才能生效。
net stop w32time net start w32time
或者使用 PowerShell:
Restart-Service w32tm
步骤 3:验证 NTP 服务器是否正常工作
您的服务器已经配置为 NTP 服务器,让我们验证一下。
-
在服务器上检查时间源 在服务器本身的命令提示符中运行:
w32tm /query /status
您应该会看到类似以下的输出,表明它正在从您配置的源同步(
time.windows.com):source time.windows.com,0x9 -
在客户端上测试同步 在同一局域网内的另一台 Windows 电脑(客户端)上,将其时间源指向您刚刚配置的服务器(假设服务器 IP 为
168.1.100)。w32tm /config /syncfromflags:manual /manualpeerlist:"192.168.1.100,0x8" net stop w32time net start w32time w32tm /resync /force
/manualpeerlist:"192.168.1.100,0x8":0x8标志表示这是一个客户端,只从此服务器同步时间,不提供时间。/resync /force:强制立即同步一次。
同步后,在客户端上运行
w32tm /query /status,您应该看到源是您服务器的 IP 地址。 -
使用 NTP 查询工具(更直观) 您可以使用
ntp.org提供的在线查询工具来验证您的服务器是否对外响应。 在浏览器中访问:https://www.ntp.org/support/use-ntp/在 "NTP Server Query" 输入框中,输入您服务器的域名或 IP 地址,然后点击 "Query"。 如果一切正常,您会看到您的服务器信息、时间偏移、延迟等数据。
第二部分:配置 Windows 客户端同步时间
如果您只是想让一台 Windows 电脑从外部或内部服务器同步时间,操作非常简单。
使用图形界面(适用于普通用户)
- 右键点击任务栏右下角的时间,选择“调整日期/时间”。
- 在打开的设置页面中,确保“自动设置时间”和“自动设置时区”是开启状态。
- 点击“其他日期、时间和区域设置”。
- 在弹出的窗口中,点击“更改日期和时间” > “更改设置” > “Internet 时间”选项卡。
- 点击“更改设置...”。
- 在“服务器”框中输入您要同步的 NTP 服务器地址(如
time.windows.com或您内部服务器的 IP)。 - 点击“立即更新”,确定”两次。
使用命令行(适用于管理员和自动化)
-
配置时间源
w32tm /config /syncfromflags:manual /manualpeerlist:"time.windows.com"
如果要从内部服务器同步,请替换为内部服务器的 IP。
-
重启服务
w32tm /resync /force
这个命令会先更新配置,然后立即强制同步一次。
第三部分:常见问题与故障排除
-
问题:客户端无法同步,提示
0x80072726(RPC 服务器不可用) 或类似错误。- 原因:通常是防火墙阻止了 NTP 流量(UDP 123端口)。
- 解决:请按照本文 步骤 2.3 中的方法,检查并配置 Windows 防火墙规则。
-
问题:
w32tm /query /status显示source为Local CMOS Clock。- 原因:Windows Time 服务没有成功从配置的 NPEER 服务器同步时间。
- 解决:
- 检查 NPEER 服务器地址是否正确,网络是否通畅(
ping一下)。 - 检查防火墙是否阻止了服务器访问外部 NTP 源。
- 重新执行配置命令:
w32tm /config /syncfromflags:manual /manualpeerlist:"your_server,0x9",然后重启服务。
- 检查 NPEER 服务器地址是否正确,网络是否通畅(
-
问题:时间同步非常慢或不准确。
- 原因:
- 网络延迟过高。
- 时间源本身不稳定。
w32tm服务配置不当(/reliable:no)。
- 解决:
- 选择一个地理位置更近的公共 NTP 服务器。
- 在客户端上,可以添加多个时间源,
w32tm /config /manualpeerlist:"server1 server2 server3"。 - 确保您的 NTP 服务器已标记为可靠 (
w32tm /config /reliable:yes)。
- 原因:
-
问题:
w32tm命令提示“访问被拒绝”。- 原因:没有使用管理员权限运行命令提示符或 PowerShell。
- 解决:右键点击命令提示符,选择“以管理员身份运行”。
| 任务 | 命令 |
|---|---|
| 配置服务器时间源 | w32tm /config /syncfromflags:manual /manualpeerlist:"time.windows.com,0x9" |
| 将服务器设为可靠源 | w32tm /config /reliable:yes |
| 重启时间服务 | net stop w32time && net start w32time |
| 配置客户端同步源 | w32tm /config /syncfromflags:manual /manualpeerlist:"192.168.1.100,0x8" |
| 强制客户端同步 | w32tm /resync /force |
| 检查当前同步状态 | w32tm /query /status |
通过以上步骤,您就可以成功地将 Windows 服务器配置为 NTP 服务器,并管理整个网络的时间同步了。
