NTP时间同步是一种时间同步网络技术。目前有多种时间同步技术,每一种技术都各有特点,不同技术的时间同步精度也存在较大的差异.
常用同步技术
时间同步技术 准确度 覆盖范围
短波授时 1~10毫秒 全球
长波授时 1毫秒 区域
GPS 5~500纳秒 全球
电话拨号授时 100毫秒 全球
互联网授时(NTP) 1~50毫秒 全球
SDH传输网授时 100纳秒 长途
另外,还有两个相对简单的、低精度的互联网时间协议:Time协议(RFC868)和Daytime协议(RFC867),可以提供1s校准精度的广域网时间同步。
在win2012 R2版本里,没有了internet互联网时间,需要使用另外的方式去做时间同步
可以分几种场景:
一、没有Windows域环境
集群中的每个服务器首先都要能上网,每个服务器需要执行下面的操作
开启 NTP Client 服务
1、打开 命令行 终端, 输入:gpedit.msc,打开组策略管理器
2、按照如下路径 计算机配置管理模板系统windows 时间服务时间提供程序 找到服务器设置文件
3、双击 配置 Windows NTP 客户端
4、将 Ntp Server项,输入将要同步到的时间服务器IP地址(也可输入域名),注意 0x9 或 0x1 必须要有;在 类型 项, 选择 NTP;点击 应用---确定 按钮;
5、启动 NTP 客户端;启用NTP客户端;点击 应用--确定 按钮
6、执行下面命令更新组策略
gpupdate /force
7、检查W32Time服务是否启动,启动类型为 自动启动
二、有Windows域环境
只需要对域控制器执行操作,其他域里面的client都不需要动
更改方法跟情况一的一样,修改组策略-》更新组策略-》检查W32Time服务是否启动
如果对client设置了组策略,那么client会应用组策略的配置,而不是跟域控制器同步时间
三、没有外网的环境
服务器如果不能连外网,而当前环境有ntpd服务器
在第4步里把ntp server的地址改为内网ntpd服务器的地址即可
注意点:Windows是使用ntpd命令的方式跟NTP服务器同步时间,也就是当client和server的时间相差太大的时候,client无法与server进行时间同步
也就是,无论是有域环境还是没有域环境,无论是用组策略还是不用组策略都是这样
这个跟Linux的ntpdate命令 ntpd命令相同,Linux的ntpdate命令无论client与server时间相差多大都可以跟server同步,而ntpd命令当时间相差太大则无法同步
网上还有另一种方法不用修改组策略
有Windows域环境,在每台client里添加一个任务计划,定时执行下面命令
代码语言:javascript复制w32tm /config /syncfromflags:manual /manualpeerlist:time.stdtime.gov.tw
w32tm /config /update
没有Windows域环境,在每台client里添加一个任务计划,定时执行下面命令
当然还可以更改注册表,来设置时间同步,步骤如下
一、服务端配置 (Ntp服务器,客户端将根据这台服务器的时间进行同步)
1、 微软键 R键,进入“运行”,输入“regedit”,进入注册表
2、 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParametersType 右键修->修改 为 NTP (默认就是NTP,可以对一下如果已经是NTP不用改)
3、修改HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeTimeProvidersNtpServer的Enabled的值为1(原来为0)
4、修改HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfig里的"AnnounceFlags"值为5(原来为a)
5、重启时间服务
net stop w32time && net start w32time
6、按开始->运行,输入"services.msc"进入服务,将windows time服务start方式设置为Auto
二、客户端配置
1、找到 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParametersNtpServer,修改值为设置的NtpServer的IP,后加,0x1。如:"172.31.4.51,0x1"。注意,IP后面跟上逗号和0x1。
2、修改HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeTimeProvidersNtpClient里的 "SpecialPollInterval", 这个代表时间间隔,多长时间和Ntp服务器同步一次,单位为秒,原来的值为"93a80" (十六进制的)
3、修改 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeTimeProvidersConfig里的UpdateInterval的值,我这里改为5,但其实我不确定这个要不要设置,我自己在试的过程中发现这个不设置好像就同步不到了,所以我才设置,网上其他人说的配置没有这一步。这个原来的默认值是360000(十进制的)。
4、设置 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfigMaxNegPhaseCorrection 为 FFFFFFFF(原来为d2f0,十六进制)
设置 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfigMaxPosPhaseCorrection 为 FFFFFFFF(原来为d2f0,十六进制)
MaxNegPhaseCorrection这个代表慢于NTP服务器的时间,如果本地时间超过NTP服务器MaxNegPhaseCorrection秒,就不同步;
MaxPosPhaseCorrection这个代表快于NTP服务器的时间,如果本地时间超过NTP服务器MaxNegPhaseCorrection秒,就不同步
5、重启w32time服务 net stop w32time && net start w32time
6、按开始->运行,输入"services.msc"进入服务,将windowns time服务start方式设置为Auto