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变为Active或Sync。
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




