我有一台配置为 NTP 服务器的 ESXi 5.1 服务器和一台未同步的本地 Windows Server 2008 R2 PC。我读到,每当 ESXi 服务器作为客户端运行时,它也会充当服务器,因此我将其启用为 NTP 客户端,并且只是在服务器列表中不添加任何服务器,然后我通过从 ESXi Shell 添加防火墙设置来启用端口 123 传入/传出。
我几乎可以肯定这不是防火墙问题。我已经完全禁用了本地 PC 上的防火墙。运行“w32tm /monitor /computers:-IP of server-”可以得到服务器的时间,运行 NTPQuery 软件可以在端口 123 上得到带有服务器时间的响应。
我努力了:
- 日期/时间设置(右键单击通知区域-->调整日期/时间-->Internet 时间-->设置为服务器的 IP)--同步失败(Windows 与 -服务器的 IP- 同步时发生错误)
- 组策略编辑器(计算机配置\管理模板\系统\Windows 时间服务,目前已禁用,因为我听说这会导致问题)——同步失败
- 注册表编辑器 (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\settings)——同步失败
- 命令提示符, 使用:
。
w32tm /config /manualpeerlist:-IP of server- /syncfromflags:MANUAL /reliable:yes /update
net stop w32time && net start w32time
w32tm /resync /rediscover
这会正确更新注册表,但输出“计算机未重新同步,因为没有可用的时间数据。”每当我使用命令“w32tm /query /source”时,源始终是“本地 CMOS 时钟”。
以下是 w32tm /query /configuration 的输出
[Configuration]
EventLogFlags: 2 (Local)
AnnounceFlags: 5 (Local)
TimeJumpAuditOffset: 28800 (Local)
MinPollInterval: 10 (Local)
MaxPollInterval: 15 (Local)
MaxNegPhaseCorrection: 3600 (Local)
MaxPosPhaseCorrection: 3600 (Local)
MaxAllowedPhaseOffset: 1 (Local)
FrequencyCorrectRate: 4 (Local)
PollAdjustFactor: 5 (Local)
LargePhaseOffset: 50000000 (Local)
SpikeWatchPeriod: 900 (Local)
LocalClockDispersion: 10 (Local)
HoldPeriod: 5 (Local)
PhaseCorrectRate: 1 (Local)
UpdateInterval: 360000 (Local)
[TimeProviders]
NtpClient (Local)
DllName: C:\windows\system32\w32time.dll (Loca
Enabled: 1 (Local)
InputProvider: 1 (Local)
AllowNonstandardModeCombinations: 1 (Local)
ResolvePeerBackoffMinutes: 15 (Local)
ResolvePeerBackoffMaxTimes: 7 (Local)
CompatibilityFlags: 2147483648 (Local)
EventLogFlags: 1 (Local)
LargeSampleSkew: 3 (Local)
SpecialPollInterval: 900 (Local)
Type: NTP (Local)
NtpServer: -IP of server-,0x1 (Local)
NtpServer (Local)
DllName: C:\windows\system32\w32time.dll (Loca
Enabled: 1 (Local)
InputProvider: 0 (Local)
AllowNonstandardModeCombinations: 1 (Local)
有什么想法吗?提前致谢。
答案1
我找到了答案。我必须将上游服务器设置为自己的时钟,IP 地址为 127.127.1.0,以使我的服务器的时钟同步。
ESXi 服务器的回复显示跳跃指示器为 3,服务器层为 0。这意味着 ESXi NTP 服务器运行不同步,无法向客户端提供有效的参考时间。根据 RFC 4330,如果返回的层为 0(且跳跃指示器为 3),则简单 NTP (SNTP) 客户端不应使用 NTP 回复数据包中的时间。