You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows 10非域物理工作站未与配置的本地NTP服务器同步,源始终为Local CMOS Clock问题咨询

Windows 10非域物理工作站未与配置的本地NTP服务器同步,源始终为Local CMOS Clock问题咨询

看起来你碰到了一个挺棘手的Windows时间服务配置问题——明明已经指定了本地NTP服务器,而且服务器本身也能正常响应时间请求,但系统却一直用CMOS时钟作为时间源,NTP客户端的peer状态还一直卡在Pending。我来帮你梳理下可能的原因和对应的解决步骤:

先明确几个关键问题点

从你提供的信息来看:

  • 这是非域物理机,排除了域组策略强制覆盖配置、虚拟机宿主时间同步干扰这两个常见坑
  • w32tm /stripchart显示时间差恒定,说明客户端完全没在和服务器做时间同步
  • Peer状态为Pending,意味着Windows时间服务还没和NTP服务器成功完成握手和初始化同步

排查和解决步骤

1. 确认NTP服务器的可达性与端口连通性

虽然你用AboutTime验证过服务器可用,但还是建议用Windows自带命令再确认下:

w32tm /query /computer:<LocalNTPserverName> /status

如果返回错误,大概率是以下两种情况:

  • 服务器端的NTP服务配置有问题(比如未启用、层级设置错误)
  • UDP 123端口被防火墙拦截(要同时检查工作站本地防火墙和NTP服务器侧的防火墙,确保该端口的入站/出站规则允许NTP流量)

2. 重置Windows时间服务配置

有时候时间服务的配置会出现缓存或异常,重置是最直接的办法:

# 停止时间服务
net stop w32time
# 注销服务
w32tm /unregister
# 重新注册服务
w32tm /register
# 启动服务
net start w32time
# 强制同步一次
w32tm /resync /force

执行完后再用w32tm /query /peers查看peer状态,正常情况下应该会从Pending变为ActiveSync

3. 检查时间偏移量是否超过阈值

你的配置里MaxAllowedPhaseOffset设置为300秒(5分钟),如果工作站和NTP服务器的时间差超过这个值,客户端会拒绝自动同步。你可以先手动把工作站的时间调得和服务器接近(相差不超过5分钟),再执行一次强制同步试试。

4. 验证服务运行权限与依赖

打开services.msc找到Windows Time服务:

  • 确认服务的登录身份是Local System账户,权限不足会导致无法正常连接NTP服务器
  • 检查服务依赖的**Remote Procedure Call (RPC)**服务是否处于运行状态,RPC是时间服务正常工作的必要依赖

原始问题背景参考

在一台配置为连接本地时间服务器的Windows 10工作站上(peer列表仅包含本地网络中的一个NTP服务器),使用w32tm /query /source查看配置时,源仍然是Local CMOS clock。

为什么源不等于peer列表中的地址?

NTP服务器是可用的,并且可以请求时间(用AboutTime检查过,显示当前主机与本地或远程NTP服务器之间的差异)。也检查了工作站与NTP服务器之间的差异,使用命令w32tm /stripchart computer:<LocalNTPserverName>时,差异保持恒定,即使过了几个小时,很明显时间没有与NTP服务器对齐。

当前peer配置:

w32tm /query /peers
Peer: <LocalNTPserverName>,0x9
State: Pending
Time Remaining: 0.0000000s
Mode: 0 (reserved)
Stratum: 0 (unspecified)
PeerPoll Interval: 0 (unspecified)
HostPoll Interval: 0 (unspecified)

但源是CMOS时钟:

w32tm /query /source
Local CMOS Clock

需要说明的是,工作站不在域中,也不是虚拟机。

完整配置如下:

w32tm /query /configuration
[Configuration]
EventLogFlags: 2 (Local)
AnnounceFlags: 10 (Local)
TimeJumpAuditOffset: 28800 (Local)
MinPollInterval: 10 (Local)
MaxPollInterval: 15 (Local)
MaxNegPhaseCorrection: 4294967295 (Local)
MaxPosPhaseCorrection: 4294967295 (Local)
MaxAllowedPhaseOffset: 300 (Local)
FrequencyCorrectRate: 4 (Local)
PollAdjustFactor: 5 (Local)
LargePhaseOffset: 50000000 (Local)
SpikeWatchPeriod: 900 (Local)
LocalClockDispersion: 10 (Local)
HoldPeriod: 5 (Local)
PhaseCorrectRate: 1 (Local)
UpdateInterval: 30000 (Local)
[TimeProviders]
NtpClient (Local)
DllName: C:\WINDOWS\system32\w32time.dll (Local)
Enabled: 1 (Local)
InputProvider: 1 (Local)
AllowNonstandardModeCombinations: 1 (Local)
ResolvePeerBackoffMinutes: 15 (Policy)
ResolvePeerBackoffMaxTimes: 7 (Policy)
CompatibilityFlags: 2147483648 (Local)
EventLogFlags: 0 (Policy)
LargeSampleSkew: 3 (Local)
SpecialPollInterval: 3600 (Policy)
Type: NTP (Policy)
NtpServer: <LocalNTPserverName>,0x9 (Policy)
NtpServer (Local)
DllName: C:\WINDOWS\system32\w32time.dll (Local)
Enabled: 0 (Local)
InputProvider: 0 (Local)

备注:内容来源于stack exchange,提问作者Claudiu Cruceanu

火山引擎 最新活动