2023年11月30日发(作者:)

NTP协议在Windows系统中的配置应⽤

NTP 协议在Windows 系统中的配置应⽤

温从轩

(浙江省平阳县⽓象局,浙江 平阳 325400)

摘要:本⽂介绍了NTP Network Time Protocol )协议的相关知识,给出了独⽴主机、⼯作组以及域环境下的相应配置⽅法以

及注意要点,并给出了Windows 系统中NTP 授时服务器的架设⽅法。

关键词:NTP;Windows;时间

按地⾯测报观测规范要求,测报⼯作⽤机时钟与标准北京时间误差不得超过30秒。如何获取标准北京时间,以及如何保持局

域⽹内各⼯作⽤机的同步,是⼀个不容忽视的问题。本⽂作者通过应⽤NTP 协议,实现了这⼀⽬标。本⽂则是实现过程的⼀

个⼩结。

1 NTP 原理与⼯作模式

NTP Network Time Protocol )是由美国德拉⽡⼤学的David L. Mills 教授于1985年提出,是设计⽤来在Internet 上使不同的

机器能维持相同时间的⼀种通讯协定。NTP 的详细说明在RFC-1305中。除了可以估算封包在⽹络上的往返延迟外,NTP

可独⽴地估算计算机时钟偏差,从⽽实现在⽹络上的⾼精准度计算机校时。在⼤多数的地⽅,NTP 可以提供1-50ms 的可信赖

性的同步时间源和⽹络⼯作路径。

SNTP Simple Network Time Protocol )是NTP 的⼀个⼦集。它只能获得时间,不能分发时间。它只能同步⼀个时间源,

⽬的是为了那些不需要完整NTP 实现复杂性的主机。SNTP 的详细说明在RFC 1769/2030中。在应⽤中,可以不考虑SNTP

NTP 的区分。

1.1 NTP 的基本原理

:客户⽅发送查询请求时间(以客户⽅时间系统为参照

)

:服务器收到查询请求时间(以服务器时间系统为参照

)

:服务器回复时间信息包时间(以服务器时间系统为参照)

:客户⽅收到时间信息包时间(以客户⽅时间系统为参

)

:请求信息在⽹上传播所消耗的时间

:回复信息在⽹上传播所消耗的时间

现已知T1 T2T3T4,希望求得θ以调整客户⽅时钟有:

1: NTP 传输模型

假设请求和回复在⽹上传播的时间相同,即,则可解得:

可以看到,、只与差值、差值相关,⽽与差值⽆关,即最终的结果与服务器处理请求所需的时间⽆关。据此,客户⽅A即可通

过计算出时差去调整本地时钟。

1.2NTP的⼯作模式:

/被动对称模式:⼀对⼀的连接,双⽅均可同步对⽅或被对⽅同步,先发出申请建⽴连接的⼀⽅⼯作在主动模式下,另⼀⽅

⼯作在被动模式下。

客户/服务器模式:与主/被动模式基本相同。唯⼀区别在于,客户⽅可被服务器同步,但服务器不能被客户同步。

⼴播模式:⼀对多的连接,服务器不论客户⼯作在何种模式下,主动发出时间信息,客户由此信息调整⾃⼰的时间,此时⽹络

延时忽略,因此在准度上有损失,但可满⾜秒级应⽤。

2Windows系统下NTP客户端的设置

Windows 包含W32Time组件,通过它利⽤NTP协议,可以设置精确的时间,并实现⾃动的同步。为确保合理地使⽤公共时

间,Windows 时间服务使⽤层级关系来控制授权,并且不允许出现循环。

2.1W32Time服务的开启

XP以及Server 2003中,W32Time默认开启。在Windows 2000中,W32Time默认关闭,其开启⽅法如下:

单击开始菜单—>控制⾯板—>管理⼯具—>服务,服务中找到Windows Time,设置启动类型为⾃动,⽽后单击启动可以⽴即

启动时间服务。

或者,通过命令⾏直接开启时间服务的命令为:

net stop w32time && net start w32time

2.2Windows XP独⽴主机进⾏时间同步的设置

双击任务栏右下⾓时间区域-->internet时间-->服务器填⼊PeerList,选择⾃动与Internet时间服务器同步。按"⽴即更新"可直接

同步。

注意:加⼊域后此界⾯不可见。其中PeerList 是所需时间源的域名系统(DNS) 名称或Internet 协议(IP) 地址的列表(以逗号分

隔)。

或者,在DOS⽅式输⼊“net time /setsntp:PeerList”

2.3Windows 2003 Server进⾏时间同步的设置

命令⾏下输⼊:

w32tm /config /syncfromflags:manual /manualpeerlist:PeerList

w32tm /config /update

2.4⼯作组环境下其他主机的设置

在局域⽹环境内,只需要⼀台计算机连接到Internet并设置时间同步,其余计算机定时与其进⾏时间同步即可。⼀个简单的样

例是通过计划任务调⽤BA T⽂件实现,其BA T包含命令如下:net time ComputerName /set /y

其中,ComputerName是已经连接到Internet进⾏时间同步的计算机名。这个命令⾏也可以⽤于主机进⾏⽴即对时。

2.5域环境下其他主机的设置

在域环境下,客户机默认登陆时会⾃动从域控制器获取时间,并且在组策略同步中(90-120分钟⼀次)⾃动更新,因此,域

环境下只需要按2.3的操作步骤在PDC(主域控制器)上设置时间服务,⾃⾏为域环境下的电脑指定其他时间源是毫⽆意义

的。

2.6使⽤第三⽅软件实现时间同步

Windows的时间服务不能正常⼯作时,在联⽹条件下,也可以通过第三⽅软件从指定的时间源读取时间,从⽽实现精确时

间的获得。这⾥推荐国家授时中⼼提供的国家授时中⼼⽹络授时,⽹络下载地址为:

/SERVE/

该款软件下载后解压、安装、运⾏,然后设置好是否每⼩时校准、校时⽇志是否保存(可记录⽤户的本机内部时钟偏差及校准

情况,然后确定,软件恢复简洁框,平时可⼿动或让其⾃动校准。该款软件由于需要通过端⼝1231进⾏访问,因此,需要注

意在防⽕墙上打开端⼝1231

3可⽤的NTP时间源列表与测试⽅法

3.1NTP时间源收集参考

出于安全性的考虑,⼀般不推荐使⽤国外的以及来历不明的时间源。

当前国内最权威的时间源当属中国国家授时中⼼,但其只提供了⼀个IP

中国国家授时中⼼:210.72.145.44

维护了⼀个有志愿者提供的NTP时间源服务器列表,每次访问它将随机分配⼀个较近的NTP时间源地址。因此,

访问它具有⽐较⾼的可靠性。其中,使⽤将从中国⼤陆范围内随机返回NTP时间源地址。

组织中国部分:

组织:

此外:

微软(美国):

美国政府:

3.2NTP时间源的测试⽅法

要测试⼀个NTP时间源是否可⽤,我们可以借⽤W32tm中的/Stripchart参数显⽰此计算机和另⼀台计算机之间偏移量的带状

图,通过读取返回值判断NTP时间源的⼯作状态。其命令⾏命令如下:w32tm /stripchart /computer:

其中,target是要测量与此计算机之间的偏移量的计算机。

如果时间服务器⼯作正常,返回结果中将包含类似下列的⾏:

22:13:11 d:-00.0000240s o:-00.2171945s [ *| ]

如果返回结果中包含error⾏,例如22:12:45 error: 0x80072746,则此时间源不可⽤。

4Windows系统配置NTP授时服务器

4.1Windows2000XP做时间服务器

2.2介绍内容将主机配置为与Internet同步,否则使⽤本机硬件时钟做时间源。

修改注册表,将“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParameters”

LocalNTP改为1

注意这台windows主机不能加⼊任何域,否则⽆法启动windows time服务。

4.2Windows 2003 配置NTP授时服务器

修改注册表,将“HKEY_LOCAL_MACHINESYSTEMCurrentControl SetServi cesW32Ti meParametersType”

“NTP”,从⽽将服务器类型更改为NTP

修改注册表,将“HKEY_LOCAL_MA CH INESY STEMCurrentControl SetServi cesW32Ti meConfi gA nnounceFl ags”

“5”

修改注册表,将“H K EY_LOCAL_MA CH INESY STEMC urren tCo nt rol Se tServi ce sW32Ti m eTi me P rovi de rsN tp

Serve ren abl ed”改为“1”

修改后需要重新启动Windows 时间服务使配置⽣效。

5注册表内与NTP有关的重要项值

Windows在注册表“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32Time”下存放W32Tim的所有参

数,其中较重要的有:

MaxPosPhaseCorrection

路径为“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfig”。该项指定服务可进⾏的最⼤正

时间校准量(以秒为单位)。如果服务确定某个更改幅度⼤于所需的幅度,它将记录⼀个事件。特殊情况:0xFFFFFFFF

⽰总是校准时间。域成员的默认值是0xFFFFFFFF。独⽴客户端和服务器的默认值是54,00015 ⼩时)。

MaxNegPhaseCorrection

路径为“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfig”。该项指定服务可进⾏的最⼤负

时间校准量(以秒为单位)。如果服务确定某个更改幅度⼤于所需的幅度,它将转⽽记录⼀个事件。特殊情况:-1 表⽰总是

校准时间。域成员的默认值是0xFFFFFFFF。独⽴客户端和服务器的默认值是54,00015 ⼩时)。

MaxPollInterval

路径为“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfig”。该项指定系统轮询间隔所允许

的最⼤间隔(单位是⽤对数形式表⽰的秒)。请注意,尽管系统必须根据预定的间隔进⾏轮询,但是提供程序可以根据请求拒

绝⽣成⽰例。域成员的默认值是10。独⽴客户端和服务器的默认值是15

SpecialPollInterval

路径为“HKEY_LOCAL_MACHINESYSTEMCurrentControl SetServi cesW32Ti meTi meProvidersNtpClient”。该项指定

⼿动对等端的特殊轮询间隔(以秒为单位)。当启⽤SpecialInterval 0x1 标志时,W32Time 将使

⽤此轮询间隔⽽⾮操作系统确定的轮询间隔。域成员的默认值是3,600。独⽴客户端和服务器的默认值是604,800

6本局实际应⽤情况

我局局域⽹所有电脑均在单⼀的域内,为此,在域服务器上⽤管理员登陆,按2.3 作如下设置:w32tm /config

/syncfromflags:manual /manualpeerlist: , 210.72.145.44

w32tm /config /update

其他电脑不做任何改变。实际使⽤可以观察到,每台电脑均实⾏了⾃动对时,各台电脑的相互时间偏差、以及与北京标准时间

偏差均⼩于1秒,实现了⾃动、精确的对时,从根本上解决了⾃动站系统的对时问题,实际使⽤效果良好。

参考⽂献

[1] NTP协议简介 /

[2] 如何在 Windows Server 2003 中配置权威时间服务器/kb/816042/zh-cn