2020-08-01
234 次阅读
环境介绍:
域控AD:作为时间服务器给加入域或未加域的PC和其他服务器作为时间源提供,同时作为互联网时间服务器的客户端,自动从互联网时间服务器同步时间。
操作步骤:
一、将AD配置为NTPclient 从互联网时间服务器同步时间
域控制器默认情况下,时间配置里并没有internet时间配置这个标签,是因为域控制器默认以自己的时间为准,同时向加入域的PC或成员服务器提供时间,也就是说域成员机器会把域控当作时间源服务器并自动同步。
这里需要修改注册表
1、打开注册表定位到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient 分支 将enable 值设为十进制1,表示启用ntp client
2、再将SpecialPollInterval的值设为1800,这个值表示多长时间和服务器同步一次,单位是秒。
3、再到config子项下修改AnnounceFlags值为十进制的5
AnnounceFlags设为5表示以外部时间源为准进行同步,10表示以本机BIOS时间为准。
4、转到Parameters分支下修改ntpserver的值为外部时间源域名或ip地址和Type值为ntp。
这里也是网上搜索到的阿里云的时间服务器,测试可用。阿里提供7个时间源服务器,分别是:
time1.aliyun.com
time2.aliyun.com
time3.aliyun.com
time4.aliyun.com
time5.aliyun.com
time7.aliyun.com
ntpserver的值可以有多个,以空格分隔开。
如
```
ntpserver.contoso.com clock.adatum.com
```
如果只有两个时间服务器,如果要将 ntpserver.contoso.com 的优先级设置为高于 clock.adatum.com。
```
ntpserver.contoso.com,0x8 clock.adatum.com,0xa
```
到此ntp客户端配置完成
5、打开命令行(以管理员身份运行)重启一下w32time这个服务,而且这个服务要设为自动启动,否则当服务器端断电之后再上电需要重新开启w32time服务。
重启服务
```
net stop w32time&net start w32time
```
设置自动启动w32time
```
W32tm /register
```
如果无法启动服务,详见《WIN7下解决因为Windows Time服务无法启动而造成的时间无法同步问题》
开启w32tm debug模式并打印日志到文件的方法
```
w32tm /debug /enable /file:c:\w32time.log /size:10000000 /entries:0-116 #开启方法
w32tm /debug /disable 关闭方法
```
6、验证配置情况
显示目前服务器指定的外部时间
```
w32tm /query /status
```
可以看时间源域名和IP地址 上次成功同步的时间撮。
显示本地时间与目标时间的时间差
```
w32tm /stripchart /computer:time7.aliyun.com /samples:30 /dataonly
```
看到机器当前时间与时间源的时间相差很小,基本是准确的。
显示运行状态
```
w32tm /query /peers
```
7、防火墙高级设置,或直接 cmd 运行
```
netsh firewall add portopening protocol = UDP port =123 name = NTPSERVER (修改 Windows 防火墙设置,允许 123 端口的 UDP 连接。);
```
以上为一种设置。以下为另一种。
1、 添加时间服务器地址(域名或IP)(下面这个键存放着时间服务器列表)
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers
在右边窗口点右键新建“字符串值”,将此“字符串值”命名为6。双击此新建的“字符串值”,输入地址:ntp.aliyun.com,保存。将“默认”(即第一个“字符串值”)修改为6即可。前面的几个时间服务器分别为:
```
time.windows.com
time.nist.gov
time-nw.nist.gov
time-a.nist.gov
time-b.nist.gov
```
2、 指定时间源
```
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
修改键NtpServer的值为ntp.aliyun.com,0x6
```
3、 设置校时周期
```
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval
修改键SpecialPollInterval的值为十进制的1800(即为1800秒,半小时)
```
4、重启服务
```
net stop w32time&net start w32time
```
5、验证配置情况
```
C:\Users\Administrator>w32tm /query /status
Leap 指示符: 0(无警告)
层次: 3 (次引用 - 与(S)NTP 同步)
精度: -6 (每刻度 15.625ms)
根延迟: 0.0424652s
根分散: 0.0296346s
引用 ID: 0xCB6B0658 (源 IP: 203.107.6.88)
上次成功同步时间: 2020/7/20 11:19:13
源: ntp.aliyun.com,0x6
轮询间隔: 10 (1024s)
C:\Users\Administrator>w32tm /query /peers
#对等数: 1
对等: ntp.aliyun.com,0x6
状态: 运行中
剩余时间: 759.4448167s
模式:1 (主动对称)
层次: 2 (次引用 - 与(S)NTP 同步)
对等机轮询间隔: 10 (1024s)
主机轮询间隔: 10 (1024s)
```
6、设置权威服务器
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
修改键AnnounceFlags的值为十进制的10
二、将AD或任一台机器配置为NTPserver 对内提供时间源
1、打开注册表定位到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer 分支 将enable 值设为十进制1,表示启用ntp server
2、配置组策略,设置时间同步
```
1.打开“Active Directory 用户和计算机”,新建组织单位,起名为“Desktop&Server”,将Computers内的计算机全部移动到新建的组织单位下。(此步操作重要,见填坑说明)
2.打开组策略管理:控制面板-管理工具-组策略管理
3.选中新建的“Desktop&Server”,鼠标右键,选择“在这个域中创建GPO并在此处链接……”,输入新建GPO的名称(随意)
4.在下方的“组策略对象”中,选新建的GPO,右键编辑
5.计算机配置—策略—管理模板—系统—Windows时间服务,双击“全局时间配置”,选择“已启用”。
修改MaxNegPhaseCorrection的值为3600(即为3600秒,1小时)
修改MaxPosPhaseCorrection的值为3600(即为3600秒,1小时)
修改AnnounceFlags的值为5
点“应用”,“确定”。
6.计算机配置—策略—管理模板—系统—Windows时间服务—时间提供程序,“启用Windows NTP客户端”,选择“已启用”。
“配置Windows NTP客户端”,选择“已启用”。
修改NtpSever的值为dc.rybb.com,0x6
注:dc.rybb.com 是你域控的名字,也就是域控机的主机名
修改Type的值为NTP
修改SpecialPollInterval的值为1800(30分钟)
```
3、域内成员同步策略
刷新组策略指令`gpupdate /force`
重启服务`net stop w32time&net start w32time`
5、域内成员验证配置
```
C:\Users\Administrator>w32tm /query /status
Leap 指示符: 0(无警告)
层次: 4 (次引用 - 与(S)NTP 同步)
精度: -6 (每刻度 15.625ms)
根延迟: 0.0738678s
根分散: 0.1001609s
引用 ID: 0xAC10F665 (源 IP: 172.16.1.10)
上次成功同步时间: 2020/7/20 12:17:49
源: dc.rybb.com,0x6
轮询间隔: 10 (1024s)
C:\Users\Administrator>w32tm /query /peers
#对等数: 1
对等: dc.rybb.com,0x6
状态: 运行中
剩余时间: 810.3614176s
模式:1 (主动对称)
层次: 3 (次引用 - 与(S)NTP 同步)
对等机轮询间隔: 10 (1024s)
主机轮询间隔: 10 (1024s)
```
填坑说明
如果在“Default Domain Policy”下添加时间同步策略,将会导致域控服务器也获取并执行策略,由于组策略的优先级较高,导致第一步配置的与阿里云NTP同步策略失效。使得域控服务器本身的时间准确性得不到保证。因此通过新建组织单位的方式,对除了域控服务器以外的计算机下发该策略。确保所有成员时间准确。
主要参数说明
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
NtpServer 设置时钟服务器(IP),必须在每个 DNS 名称后面附加 ,0x1。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval
MaxPosPhaseCorrection and MaxNegPhaseCorrection 最大校准时间范围,即当电脑时间快于或慢于该值时,不进行校准,而记录事件。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
MaxAllowedPhaseOffset 尝试校准最大偏移量,即当电脑时差大于该值时,直接同步,当时差小于该值时,时间以0.05秒渐进方式缓慢同步。

参考资料
https://docs.microsoft.com/zh-cn/windows-server/networking/windows-time-service/Windows-Time-Service-Tools-and-Settings
https://www.cnblogs.com/mfyang/p/9338095.html
https://www.jianshu.com/p/ca6ad7563618
https://www.dwhd.org/20200321_224838.html