在 Windows Server 2008 中,时间同步服务由 Windows Time (W32Time) 服务提供,这个服务对于确保服务器、客户端以及整个网络环境的稳定和安全至关重要,许多安全协议(如 Kerberos 认证)对时间同步有严格要求,时间不同步可能导致认证失败。

检查当前时间和时间同步状态
在配置之前,首先需要了解当前的状态。
查看当前时间
在命令提示符(CMD)中输入以下命令:
time /t
或者
date /t
这会显示当前的系统时间和日期。

查看时间服务状态和配置
在命令提示符(CMD)中输入以下命令:
w32tm /query /status
输出示例:
源: ntp.aliyun.com
轮次: 10
当前时间: 2025/10/27 10:30:15.1234
精度: 1 (0x0)
稳定度: 5 (0x5)
上次成功同步: 2025/10/27 10:29:15
上次同步错误: 0x0000000F
这个命令告诉你:
- 源: 你的服务器正在从哪个时间源同步时间。
- 轮次: 表示同步路径的层级,0 是最高层级(权威源)。
- 当前时间: 同步后的精确时间。
- 上次成功同步: 上一次成功同步的时间点。
配置 Windows Time 服务
Windows Server 2008 的时间同步遵循一个分层结构(称为时间层次结构):

- 顶层: 互联网上的权威时间源,如
time.windows.com。 - 第二层 (域层级): 如果服务器是 Active Directory 域的一部分,它会自动从域控制器同步时间,域控制器之间会从其配置的源(通常是域中的 PDC 仿真器角色)同步。
- 第三层 (独立服务器或工作组): 独立于域的成员服务器或工作组计算机,需要手动配置一个时间源。
服务器是 Active Directory 域成员
如果你的服务器是域环境的一部分,最佳实践是让它自动从域控制器同步时间,域控制器会负责与外部权威源同步,并确保整个域的时间一致。
- 检查域控制器角色: 在域中,PDC 仿真器 通常是所有域客户端和服务器的时间源,你需要确保你的服务器指向了正确的 PDC 仿真器。
- 配置域控制器: 你应该在域的 PDC 仿真器上配置一个外部时间源。
- 在 PDC 仿真器上,以管理员身份打开命令提示符。
- 运行以下命令,使其同步到
time.windows.com:w32tm /config /syncfromflags:manual /manualpeerlist:"time.windows.com" /update
- 然后重启 Windows Time 服务:
net stop w32time && net start w32time
- 注意: 在 Windows Server 2008 R2 及更高版本中,有更简单的命令
w32tm /config /syncfromflags:domhier,但在 2008 中手动配置更可靠。
服务器是独立服务器或工作组计算机
对于独立的服务器,你需要手动指定一个时间源,强烈建议使用公共 NTP 服务器,而不是自己搭建,除非有特殊要求。
-
选择一个公共 NTP 服务器:
- Windows 官方:
time.windows.com - 阿里云:
ntp.aliyun.com - 国家授时中心:
ntp.ntsc.ac.cn - NTP.org 提供的列表: http://www.ntp.org/ (选择一个离你地理位置近的)
- Windows 官方:
-
配置时间源:
- 以管理员身份打开命令提示符。
- 运行以下命令(以阿里云为例):
w32tm /config /syncfromflags:manual /manualpeerlist:"ntp.aliyun.com" /update
/syncfromflags:manual: 表示手动指定时间源。/manualpeerlist:"...": 指定时间源的地址。/update: 使配置立即生效,无需重启。
-
重启 Windows Time 服务:
net stop w32time net start w32time
或者使用
sc命令重启服务:sc stop w32time sc start w32time
-
强制立即同步一次: 配置完成后,可以手动触发一次同步,以验证配置是否正确。
w32tm /resync /force
/force: 强制同步,即使服务认为不需要。/rediscover: 重新发现网络中的时间源。
常用 Windows Time 命令总结
| 命令 | 功能 |
|---|---|
w32tm /query /status |
查看当前时间同步状态和源。 |
w32tm /query /configuration |
查看当前 Windows Time 服务的详细配置。 |
w32tm /config /syncfromflags:manual /manualpeerlist:"ntp.aliyun.com" /update |
手动配置时间源。 |
w32tm /config /syncfromflags:domhier /update |
配置为从域层次结构同步(适用于域环境)。 |
w32tm /resync |
尝试与时间源同步一次。 |
w32tm /resync /force |
强制立即同步一次。 |
net start w32time |
启动 Windows Time 服务。 |
net stop w32time |
停止 Windows Time 服务。 |
sc start w32time |
使用 sc 命令启动服务。 |
sc stop w32time |
使用 sc 命令停止服务。 |
故障排查
如果时间同步出现问题,可以按照以下步骤排查:
-
检查服务是否运行:
- 打开“服务”管理工具 (
services.msc)。 - 找到 Windows Time 服务。
- 确认其“启动类型”为 自动,服务状态”为 正在运行,如果不是,请启动它并设置为自动。
- 打开“服务”管理工具 (
-
检查防火墙规则:
- Windows Time 服务使用 UDP 端口 123 进行通信。
- 确保服务器的防火墙(包括 Windows 防火墙和第三方防火墙)允许入站和出站的流量通过 UDP 端口 123。
- 你可以临时关闭防火墙进行测试,如果同步成功,则说明是防火墙规则问题。
-
检查 NTP 服务器可达性:
- 使用
ping命令测试是否能连接到你的时间源。ping ntp.aliyun.com
- 使用
tracert命令检查网络路径。tracert ntp.aliyun.com
- 使用
-
检查日志:
- 事件查看器 (
eventvwr.msc) 是查找线索的重要工具。 - 导航到 “Windows 日志” -> “应用程序”。
- 在筛选器中输入
w32time,查看与 Windows Time 相关的事件,错误和警告事件会提供非常有用的诊断信息。
- 事件查看器 (
-
重置配置:
- 如果配置看起来不正确,可以尝试重置为默认配置,然后重新设置。
- 重置命令(以域环境为例):
w32tm /unregister w32tm /register net stop w32time && net start w32time w32tm /config /syncfromflags:domhier /update w32tm /resync /force
重要提示
- 不要更改域控制器上的时间: 在域环境中,域控制器(特别是 PDC 仿真器)的时间是权威的,直接手动修改域控制器的时间会导致整个域的时间混乱,引发严重的认证问题,所有时间修改都应通过
w32tm命令进行。 - 时区设置: 时间同步解决的是时间点的一致性,而时区设置决定了你看到的本地时间,确保服务器的时区配置正确(中国应选择
(UTC+08:00) 北京,重庆,香港特别行政区,乌鲁木齐),可以在“控制面板” -> “日期和时间” -> “更改时区”中设置。 - **Windows Server 2008
