西部大开发杂志社:如何在 Windows Server 中配置权威时间服务器
为确保合理地使用公共时间,Windows 时间服务使用层级关系来控制授权,并且不允许出现循环。默认情况下,基于 Windows 的计算机使用下面的层级:
- 所有客户端桌面计算机都提名身份验证域控制器作为其入站时间伙伴。
- 所有成员服务器都遵循与客户端桌面计算机相同的过程。
- 域中的所有域控制器都提名主域控制器 (PDC) 操作主机作为其入站时间伙伴。
- 所有 PDC 操作主机都遵循域的层级来选择其入站时间伙伴。
配置 Windows 时间服务以使用内部硬件时钟
若要让我们为您配置 Windows 时间服务使用内部硬件时钟,请转到“帮我修复此问题”部分。如果您希望自己修复此问题,请转到“我自己修复此问题”部分。帮我修复此问题
若要自动修复此问题,请单击“修复此问题”按钮或链接。在“文件下载”对话框中,单击“运行”,然后按照“修复此问题”向导中的步骤操作。
修复此问题
Microsoft Fix it 50394
注意
- 此向导可能只适用于英文版本。但是,Windows 的其他语言版本也提供自动修复功能。
- 如果所使用的计算机中并未出现此问题,则可将修复问题解决方案保存至闪存驱动器或 CD 中,然后在出现此问题的计算机上运行该解决方案。
我自己修复此问题
重要说明:此部分、方法或任务包含有关如何修改注册表的步骤。但是,注册表修改不当可能会出现严重问题。因此,请一定严格按照下列步骤操作。为了获得进一步保护,请在修改注册表之前对其进行备份。这样就可以在出现问题时还原注册表。有关如何备份和还原注册表的更多信息,请单击下面的文章编号,以查看Microsoft 知识库中相应的文章:322756 如何在 Windows 中备份和还原注册表要将 PDC主机配置为不使用外部时间源,请更改 PDC 主机上的公告标志。PDC 主机是存放域的林根 PDC 主机角色的服务器。这种配置会强制 PDC主机将它自身宣布为可靠的时间源,从而使用内置的互补金属氧化物半导体 (CMOS) 时钟。要将 PDC主机配置为使用内部硬件时钟,请按照下列步骤操作:
- 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
- 找到并单击以下注册表子项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
- 在右窗格中,右键单击“AnnounceFlags”,然后单击“修改”。
- 在“编辑 DWORD 值”的“数值数据”框中键入 A,然后单击“确定”。
- 退出注册表编辑器。
- 在命令提示符处,键入以下命令以重新启动 Windows 时间服务,然后按 Enter: net stop w32time && net start w32time
事件类型:信息
事件来源:W32Time
事件类别:无
事件 ID: 38
计算机:ComputerName
描述:时间提供程序 NtpClient 不能访问,或当前正在从 NTP_server_IP_Address 接收无效的时间数据。有关更多信息,请参阅位于 http://support.microsoft.com 的帮助和支持中心。
事件类型:警告
事件来源:W32Time
事件类别:无
事件 ID: 47
计算机:ComputerName
描述:时间提供程序 NtpClient: 在尝试联系它 8 次以后没有收到来自手动配置的对等端 NTP_server_IP_Address 的有效响应。此对等端将不再被作为时间源,并且 NtpClient 将尝试用此 DNS 名称发现一个新的对等端。有关更多信息,请参阅位于 http://support.microsoft.com 的帮助和支持中心。
事件类型:错误
事件来源:W32Time
事件类别:无
事件 ID: 29
计算机:ComputerName
描述:时间提供程序 NtpClient被配置为从一个或多个时间源获得时间,但是当前这些源没有一个是可以访问的。在 15 分钟内不会进行联系时间源的尝试。NtpClient没有一个能够提供准确时间的时间源。有关更多信息,请参阅位于 http://support.microsoft.com 的帮助和支持中心。
事件类型:错误
事件来源:W32Time
事件类别:无
事件 ID:12
描述:时间提供程序 NtpClient: 此机器配置为用域层级确定它的时间源,但它已经是林的根目录域的 PDC模拟器,因此在域层级没有机器在它上面以用作时间源。建议您在根域上配置一个可靠的时间服务,或者手动配置 PDC与外部时间源同步。否则,此机器将作为域层级中的权威时间源。如果没有为此计算机配置或使用外部时间源,您可以选择禁用 NtpClient。
帮我修复此问题
若要自动修复此问题,请单击“修复此问题”按钮或链接。在“文件下载”对话框中,单击“运行”,然后按照“修复此问题”向导中的步骤操作。
Microsoft Fix it 50395
注意
- 此向导可能只适用于英文版本。但是,Windows 的其他语言版本也提供自动修复功能。
- 如果所使用的计算机中并未出现此问题,则可将修复问题解决方案保存至闪存驱动器或 CD 中,然后在出现此问题的计算机上运行该解决方案。
我自己修复此问题
若要将内部时间服务器配置为与外部时间源同步,请按照下列步骤操作:- 将服务器类型更改为 NTP。为此,请按照下列步骤操作:
- 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
- 找到并单击以下注册表子项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type
- 在右窗格中,右键单击“Type”,然后单击“修改”。
- 在“编辑值”的“数值数据”框中键入 NTP,然后单击“确定”。
- 将 AnnounceFlags 设置为 5。为此,请按照下列步骤操作:
- 找到并单击以下注册表子项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
- 在右窗格中,右键单击“AnnounceFlags”,然后单击“修改”。
- 在“编辑 DWORD 值”的“数值数据”框中键入 5,然后单击“确定”。
- 启用 NTPServer。为此,请按照下列步骤操作:
- 找到并单击以下注册表子项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
- 在右窗格中,右键单击“Enabled”,然后单击“修改”。
- 在“编辑 DWORD 值”的“数值数据”框中键入 1,然后单击“确定”。
- 指定时间源。为此,请按照下列步骤操作:
- 找到并单击以下注册表子项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
- 在右窗格中,右键单击“NtpServer”,然后单击“修改”。
- 在“编辑值”的“数值数据”框中键入 Peers,然后单击“确定”。
注意:Peers 是一个占位符,应替换为您的计算机从中获取时间戳的对等端列表(以空格分隔)。列出的每个 DNS 名称都必须是唯一的。必须在每个 DNS 名称后面附加 ,0x1。如果不在每个 DNS 名称后面附加 ,0x1,则在步骤 5 中所做的更改将不会生效。
- 选择轮询间隔。为此,请按照下列步骤操作:
- 找到并单击以下注册表子项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval
- 在右窗格中,右键单击“SpecialPollInterval”,然后单击“修改”。
- 在“编辑 DWORD 值”的“数值数据”框中键入 TimeInSeconds,然后单击“确定”。
注意:TimeInSeconds 是一个占位符,应替换为您希望各次轮询之间的间隔秒数。建议值为 900(十进制)。该值将时间服务器配置为每隔 15 分钟轮询一次。
- 配置时间校准设置。为此,请按照下列步骤操作:
- 找到并单击以下注册表子项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxPosPhaseCorrection
- 在右窗格中,右键单击“MaxPosPhaseCorrection”,然后单击“修改”。
- 在“编辑 DWORD 值”的“基数”框中单击以选择“十进制”。
- 在“编辑 DWORD 值”的“数值数据”框中键入 TimeInSeconds,然后单击“确定”。
注意:TimeInSeconds 是一个占位符,应替换为适当的值,如 1 小时 (3600) 或 30 分钟 (1800)。您选择的值将因轮询间隔、网络状况和外部时间源而异。 - 找到并单击下面的注册表子项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxNegPhaseCorrection
- 在右窗格中,右键单击“MaxNegPhaseCorrection”,然后单击“修改”。
- 在“编辑 DWORD 值”的“基数”框中单击以选择“十进制”。
- 在“编辑 DWORD 值”的“数值数据”框中键入 TimeInSeconds,然后单击“确定”。
注意:TimeInSeconds 是一个占位符,应替换为适当的值,如 1 小时 (3600) 或 30 分钟 (1800)。您选择的值将因轮询间隔、网络状况和外部时间源而异。
- 退出注册表编辑器。
- 在命令提示符处,键入以下命令以重新启动 Windows 时间服务,然后按 Enter: net stop w32time && net start w32time
疑难解答
若要使 Windows 时间服务能够正常运行,网络基础结构必须正常运行。影响 Windows 时间服务的最常见问题包括以下这些:- TCP/IP 连接存在问题,如出现死网关。
- 名称解析服务未正确运行。
- 网络出现高延迟,尤其是在通过高延迟的广域网 (WAN) 链接进行同步时。
- Windows 时间服务尝试与不准确的时间源同步。
NTP支持多个不同的数据包类型。通常,NTP 客户端和简单网络时间协议 (SNTP) 客户端会将客户端模式请求数据包发送给 NTP 服务器。NTP服务器用服务器模式数据包进行响应。若要配置 W32time 服务将对称活动模式数据包(不是客户端模式数据包)发送给 NTP服务器,请在命令提示符处键入以下命令:w32tm /config /manualpeerlist:
可靠的时间源配置
如果将某个计算机配置为可靠的时间源,则会将其标识为 Windows 时间服务的根。Windows 时间服务的根是域的权威服务器,通常被配置为从外部NTP服务器或硬件设备检索时间。您可以将一台时间服务器配置为可靠的时间源,以优化在整个域层级中传输时间的方式。如果将某个域控制器配置为可靠的时间源,Net Logon服务将在该域控制器登录到网络时将其宣布为可靠的时间源。当其他域控制器查找要与之同步的时间源时,它们将首先选择可靠的时间源(如果有)。手动指定的同步
在使用手动指定的同步时,您可以指定计算机从中获得时间的单个对等端或一个对等端列表。如果计算机不是域的成员,必须手动将其配置为与指定的时间源同步。默认情况下,属于域成员的计算机会被配置为从域层级同步。手动指定的同步对域的林根或未加入域的计算机非常有用。当您手动指定外部 NTP服务器与域的权威计算机同步时,您就提供了可靠的时间。但是,为了向域提供高准确性和安全性,建议您将域的权威计算机配置为与硬件时钟同步。如果没有硬件时间源,W32time 会被配置为 NTP 类型。您必须重新配置 MaxPosPhaseCorrection 和MaxNegPhaseCorrection 这两个注册表项。根据时间源、网络状况和安全要求的不同,建议将该值设置为 15分钟或更低。该要求也适用于被配置为时间同步子网中的林根时间源的任何可靠的时间源。有关这两个注册表项的更多信息,请参见本文中的“Windows时间服务注册表项”一节。
注意:除非为手动指定的时间源编写特定的时间提供程序,否则它们不会经过身份验证,因此这些时间源很容易受到攻击。另外,如果计算机与手动指定的源同步,而不是与它的身份验证域控制器同步,则这两台计算机可能不同步。这种情况会导致Kerberos身份验证失败,还会导致其他需要网络身份验证的操作(如打印或文件共享)失败。只要将林根配置为与一个外部源同步,则林中的所有其他计算机就会彼此同步。这种配置会使得重播攻击很难发生。