Windows 包含 W32Time,它是 Kerberos 身份验证协议所需的时间服务工具。Windows 时间服务的目的是确保组织中运行 Microsoft Windows 2000 或更高版本的所有计算机都使用同一个时间。
为确保合理地使用公共时间,Windows 时间服务使用层级关系来控制授权,并且不允许出现循环。默认情况下,基于 Windows 的计算机使用下面的层级:
• |
所有客户端桌面计算机都提名身份验证域控制器作为其入站时间伙伴。 |
• |
所有成员服务器都遵循与客户端桌面计算机相同的过程。 |
• |
域中的所有域控制器都提名主域控制器 (PDC) 操作主机作为其入站时间伙伴。 |
• |
所有 PDC 操作主机都遵循域的层级来选择其入站时间伙伴。 |
在此层级中,位于林根的 PDC 操作主机成为组织的权威时间服务器。我们极力建议您将权威时间服务器配置为从硬件源收集时间。当您将权威时间服务器配置为与 Internet 时间源同步时,不会有任何身份验证。我们还建议您降低服务器和独立客户端的时间校准设置。这些建议可以为您的域提供更准确的时间和更高的安全性。
|
回到顶端 |
配置 Windows 时间服务以使用内部硬件时钟
警告:如果使用注册表编辑器或其他方法错误地修改了注册表,可能导致严重问题。这些问题可能需要重新安装操作系统才能解决。Microsoft 不能保证您可以解决这些问题。修改注册表需要您自担风险。
要将 PDC 主机配置为不使用外部时间源,请更改 PDC 主机上的公告标志。PDC 主机是存放域的林根 PDC 主机角色的服务器。这种配置会强制 PDC 主机将它自身宣布为可靠的时间源,从而使用内置的互补金属氧化物半导体 (CMOS) 时钟。要将 PDC 主机配置为使用内部硬件时钟,请按照下列步骤操作:
1. |
单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。 |
2. |
找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W32Time/Config/AnnounceFlags
|
3. |
在右窗格中,右键单击“AnnounceFlags”,然后单击“修改”。 |
4. |
在“编辑 DWORD 值”的“数值数据”框中键入 A,然后单击“确定”。 |
5. |
退出注册表编辑器。 |
6. |
在命令提示符处,键入以下命令以重新启动 Windows 时间服务,然后按 Enter:
net stop w32time && net start w32time
|
注意:决不能将 PDC 主机配置为与它自身同步。如果 PDC 主机配置为与它自身同步,应用程序日志中将记录以下事件:
时间提供程序 NtpClient 不能访问,或当前正在从 192.168.1.1 (ntp.m|0x0|192.168.1.1:123->192.168.1.1:123) 接收无效的时间数据。
在尝试联系它 8 次以后,没有收到来自手动对等端 192.168.1.1 的响应。此对等端将不再被作为时间源,同时 NtpClient 将尝试发现一个新的对等端以与其同步。
时间提供程序 NtpClient 被配置为从一个或多个时间源获得时间,但是当前这些源没有一个是可以访问的。在 960 分钟内,不会进行联系时间源的尝试。NtpClient 没有一个能够提供准确时间的时间源。
如果 PDC 主机在没有使用外部时间源的情况下运行,应用程序日志中会记录以下事件:
时间提供程序 NtpClient:此机器配置为用域层级确定它的时间源,但它已经是林的根目录域的 PDC 模拟器,因此在域层级没有机器在它上面以用作时间源。建议您在根域上配置一个可靠的时间服务,或者手动配置 PDC 与外部时间源同步。否则,此机器将作为域层级中的权威时间源。如果没有为此计算机配置或使用外部时间源,您可以选择禁用 NtpClient。
这段文本是为了提醒您使用外部时间源;您可以忽略它。
|
回到顶端 |
配置 Windows 时间服务以使用外部时间源
要将内部时间服务器配置为与外部时间源同步,请按照下列步骤操作:
1. |
将服务器类型更改为 NTP。为此,请按照下列步骤操作:
a. |
单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。 |
b. |
找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W32Time/Parameters/Type
|
c. |
在右窗格中,右键单击“Type”,然后单击“修改”。 |
d. |
在“编辑值”的“数值数据”框中键入 NTP,然后单击“确定”。 |
|
2. |
将 AnnounceFlags 设置为 5。为此,请按照下列步骤操作:
a. |
找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W32Time/Config/AnnounceFlags
|
b. |
在右窗格中,右键单击“AnnounceFlags”,然后单击“修改”。 |
c. |
在“编辑 DWORD 值”的“数值数据”框中键入 5,然后单击“确定”。 |
|
3. |
启用 NTPServer。为此,请按照下列步骤操作:
a. |
找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W32Time/TimeProviders/NtpServer
|
b. |
在右窗格中,右键单击“Enabled”,然后单击“修改”。 |
c. |
在“编辑 DWORD 值”的“数值数据”框中键入 1,然后单击“确定”。 |
|
4. |
指定时间源。为此,请按照下列步骤操作:
a. |
找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W32Time/Parameters/NtpServer
|
b. |
在右窗格中,右键单击“NtpServer”,然后单击“修改”。 |
c. |
在“编辑值”的“数值数据”框中键入 Peers,然后单击“确定”。
注意:Peers 是一个占位符,应替换为您的计算机从中获取时间戳的对等端列表(以空格分隔)。列出的每个 DNS 名称都必须是唯一的。必须在每个 DNS 名称后面附加 ,0x1。如果不在每个 DNS 名称后面附加 ,0x1,则在步骤 5 中所做的更改将不会生效。 |
|
5. |
选择轮询间隔。为此,请按照下列步骤操作:
a. |
找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W32Time/TimeProviders/NtpClient/SpecialPollInterval
|
b. |
在右窗格中,右键单击“SpecialPollInterval”,然后单击“修改”。 |
c. |
在“编辑 DWORD 值”的“数值数据”框中键入 TimeInSeconds,然后单击“确定”。
注意:TimeInSeconds 是一个占位符,应替换为您希望各次轮询之间的间隔秒数。建议值为 900(十进制)。该值将时间服务器配置为每隔 15 分钟轮询一次。 |
|
6. |
配置时间校准设置。为此,请按照下列步骤操作:
a. |
找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W32Time/Config/MaxPosPhaseCorrection
|
b. |
在右窗格中,右键单击“MaxPosPhaseCorrection”,然后单击“修改”。 |
c. |
在“编辑 DWORD 值”的“基数”框中单击以选择“十进制”。 |
d. |
在“编辑 DWORD 值”的“数值数据”框中键入 TimeInSeconds,然后单击“确定”。
注意:TimeInSeconds 是一个占位符,应替换为适当的值,如 1 小时 (3600) 或 30 分钟 (1800)。您选择的值将因轮询间隔、网络状况和外部时间源而异。 |
e. |
找到并单击下面的注册表子项:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W32Time/Config/MaxNegPhaseCorrection |
f. |
在右窗格中,右键单击“MaxNegPhaseCorrection”,然后单击“修改”。 |
g. |
在“编辑 DWORD 值”的“基数”框中单击以选择“十进制”。 |
h. |
在“编辑 DWORD 值”的“数值数据”框中键入 TimeInSeconds,然后单击“确定”。
注意:TimeInSeconds 是一个占位符,应替换为适当的值,如 1 小时 (3600) 或 30 分钟 (1800)。您选择的值将因轮询间隔、网络状况和外部时间源而异。 |
|
7. |
退出注册表编辑器。 |
8. |
在命令提示符处,键入以下命令以重新启动 Windows 时间服务,然后按 Enter:
net stop w32time && net start w32time
|
|
回到顶端 |
疑难解答
要使 Windows 时间服务能够正常运行,网络基础结构必须正常运行。影响 Windows 时间服务的最常见问题包括以下这些:
• |
TCP/IP 连接存在问题,如出现死网关。 |
• |
名称解析服务未正确运行。 |
• |
网络出现高延迟,尤其是在通过高延迟的广域网 (WAN) 链接进行同步时。 |
• |
Windows 时间服务尝试与不准确的时间源同步。 |
建议您使用 Netdiag.exe 实用工具解决与网络有关的问题。Netdiag.exe 是 Windows Server 2003 支持工具包的一部分。请参见工具的“帮助”,获取您可以与 Netdiag.exe 一起使用的命令行参数的完整列表。如果问题仍未得到解决,您可以打开 Windows 时间服务调试日志。由于调试日志可能包含非常详细的信息,建议您在打开 Windows 时间服务调试日志后与 Microsoft 产品支持服务联系。
要获取 Microsoft 产品支持服务电话号码和支持费用信息的完整列表,请访问下面的 Microsoft 网站:
http://support.microsoft.com/default.aspx?scid=fh;[LN];CNTACTMS (http://www.support.microsoft.com/default.aspx?scid=fh;%5Bln%5D;cntactms)
注意:特殊情况下,如果 Microsoft 支持专业人员确定某个特定的更新能够解决您的问题,可免收通常情况下收取的电话支持服务费用。对于特定更新无法解决的其他支持问题和事项,将照常收取支持费用。
|
回到顶端 |
NTP 支持多个不同的数据包类型。通常,NTP 客户端和简单网络时间协议 (SNTP) 客户端会将客户端模式请求数据包发送给 NTP 服务器。NTP 服务器用服务器模式数据包进行响应。要配置 W32time 服务以将对称活动模式数据包(不是客户端模式数据包)发送给 NTP 服务器,请在命令提示符处键入以下命令:
w32tm /config /manualpeerlist:<server>,0x4 /syncfromflags:MANUAL
注意:使用 0x8 标志强制 W32time 发送普通的客户端请求而不是对称模式活动数据包。NTP 服务器会照常答复这些普通的客户端请求。
|
回到顶端 |
可靠的时间源配置
被配置为可靠时间源的计算机会被标识为 Windows 时间服务的根。Windows 时间服务的根是域的权威服务器,通常被配置为从外部 NTP 服务器或硬件设备检索时间。您可以将一台时间服务器配置为可靠的时间源,以优化在整个域层级中传输时间的方式。如果将某个域控制器配置为可靠的时间源,Net Logon 服务将在该域控制器登录到网络时将其宣布为可靠的时间源。当其他域控制器查找要与之同步的时间源时,它们将首先选择可靠的时间源(如果有)。
|
回到顶端 |
手动指定的同步
在使用手动指定的同步时,您可以指定计算机从中获得时间的单个对等端或一个对等端列表。如果计算机不是域的成员,必须手动将其配置为与指定的时间源同步。默认情况下,属于域成员的计算机会被配置为从域层级同步。手动指定的同步对域的林根或未加入域的计算机非常有用。当您手动指定外部 NTP 服务器与域的权威计算机同步时,您就提供了可靠的时间。但是,为了向域提供高准确性和安全性,建议您将域的权威计算机配置为与硬件时钟同步。
如果没有硬件时间源,W32time 会被配置为 NTP 类型。您必须重新配置 MaxPosPhaseCorrection 和 MaxNegPhaseCorrection 这两个注册表项。根据时间源、网络状况和安全要求的不同,建议将该值设置为 15 分钟或更低。该要求也适用于被配置为时间同步子网中的林根时间源的任何可靠的时间源。有关这两个注册表项的更多信息,请参见本文中的“Windows 时间服务注册表项”一节。
注意:除非为手动指定的时间源编写特定的时间提供程序,否则它们不会经过身份验证,因此这些时间源很容易受到攻击。另外,如果计算机与手动指定的源同步,而不是与它的身份验证域控制器同步,则这两台计算机可能不同步。这种情况会导致 Kerberos 身份验证失败,还会导致其他需要网络身份验证的操作(如打印或文件共享)失败。只要将林根配置为与一个外部源同步,则林中的所有其他计算机就会彼此同步。这种配置会使得重播攻击很难发生。
|
回到顶端 |
所有可用的同步机制
“所有可用的同步机制”选项是最适合网络用户的同步方法。这种方法可实现与域层级的同步,并且根据具体的配置,它还可以在域层级不可用时提供备用的时间源。如果客户端无法与域层级同步时间,时间源将自动切换为“NtpServer”设置指定的时间源。这种同步方法最有可能为客户端提供准确的时间。
|
回到顶端 |
Windows 时间服务注册表项
以下注册表项位于 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W32Time/ 下:
注册表项 |
MaxPosPhaseCorrection |
路径 |
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W32Time/Config |
注意: |
该项指定服务可进行的最大正时间校准量(以秒为单位)。如果服务确定某个更改幅度大于所需的幅度,它将记录一个事件。(0xFFFFFFFF 是一种特殊情况,它表示总是校准时间。)域成员的默认值是 0xFFFFFFFF。独立客户端和服务器的默认值是 54,000,即 15 小时。 |
注册表项 |
MaxNegPhaseCorrection |
路径 |
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W32Time/Config |
注意: |
该项指定服务可进行的最大负时间校准量(以秒为单位)。如果服务确定某个更改幅度大于所需的幅度,它将转而记录一个事件。(-1 是一种特殊情况,它表示总是校准时间。)域成员的默认值是 0xFFFFFFFF。独立客户端和服务器的默认值是 54,000,即 15 小时。 |
注册表项 |
MaxPollInterval |
路径 |
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W32Time/Config |
注意: |
该项指定系统轮询间隔所允许的最大间隔(单位是对数表示的秒)。尽管系统必须根据预定的间隔进行轮询,但是提供程序可以根据请求拒绝生成示例。域成员的默认值是 10。独立客户端和服务器的默认值是 15。 |
注册表项 |
SpecialPollInterval |
路径 |
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W32Time/TimeProviders/NtpClient |
注意: |
该项指定手动对等端的特殊轮询间隔(以秒为单位)。当启用 SpecialInterval 0x1 标志时,W32Time 将使用此轮询间隔而非操作系统确定的轮询间隔。域成员的默认值是 3,600。独立客户端和服务器的默认值是 604,800。 |
注册表项 |
MaxAllowedPhaseOffset |
路径 |
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W32Time/Config |
注意: |
该项指定 W32Time 尝试使用时钟速率调整计算机时钟的最大偏移量(以秒为单位)。当偏移量大于该速率时,W32Time 将直接设置计算机时钟。域成员的默认值是 300。独立客户端和服务器的默认值是 1。 |
|
回到顶端 |
有关 Windows 时间服务的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
816043 (http://www.support.microsoft.com/kb/816043/) 如何打开 Windows 时间服务中的调试日志
884776 (http://www.support.microsoft.com/kb/884776/) 配置 Windows 时间服务以防出现大的时间偏移
321708 (http://www.support.microsoft.com/kb/321708/) 如何在 Windows 2000 中使用网络诊断工具 (Netdiag.exe)
314054 (http://www.support.microsoft.com/kb/314054/) 如何在 Windows XP 中配置权威时间服务器
216734 (http://www.support.microsoft.com/kb/216734/) 如何在 Windows 2000 中配置权威时间服务器
有关基于 Windows Server 2003 的林中的 Windows 时间服务的更多信息,请访问下面的 Microsoft 网站:
http://technet2.microsoft.com/windowsserver/en/library/A0FCD250-E5F7-41B3-B0E8-240F8236E2101033.mspx
|
回到顶端 |