一、选择服务器基准时钟,可选择内部硬件时钟和外部NTP授时服务器。 (首先要保证自己的时间准确)
A配置 Windows 时间服务以使用服务器内部硬件时钟
(1) 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
(2) 找到并单击下面的注册表子项:
程序代码
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
(3) 在右窗格中,右键单击“AnnounceFlags”,然后单击“修改”。
(4) 在“编辑 DWORD 值”的“数值数据”框中键入 A,然后单击“确定”。
B配置 Windows 时间服务以使用外部时间源
(1) 指定时间源。为此,请按照下列步骤 *** 作:
a 找到并单击下面的注册表子项:
程序代码
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer
b 在右窗格中,右键单击“NtpServer”,然后单击“修改”。
c 在“编辑值”的“数值数据”框中键入 Peers,然后单击“确定”。
注意:Peers 是一个占位符,应替换为您的计算机从中获取时间戳的对等端列表(以空格分隔)。列出的每个 DNS 名称都必须是唯一的。必须在每个 DNS 名称后面附加 ,0x1。如果不在每个 DNS 名称后面附加 ,0x1,则在下面步骤中所做的更改将不会生效。
(2) 选择轮询间隔。为此,请按照下列步骤 *** 作:
a 找到并单击下面的注册表子项:
程序代码
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient
\SpecialPollInterval
b 在右窗格中,右键单击“SpecialPollInterval”,然后单击“修改”。
c 在“编辑 DWORD 值”的“数值数据”框中键入 TimeInSeconds,然后单击“确定”。
注意:TimeInSeconds 是一个占位符,应替换为您希望各次轮询之间的间隔秒数。建议值为 900(十进制)。该值将时间服务器配置为每隔 15 分钟轮询一次。
(3) 配置时间校准设置。为此,请按照下列步骤 *** 作:
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)。您选择的值将因轮询间隔、网络状况和外部时间源而异。
二、配置NTP授时服务器
(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,然后单击“确定”。
三、使配置即时生效
1 退出注册表编辑器。
2 在命令提示符处,键入以下命令以重新启动 Windows 时间服务,然后按 Enter:
程序代码
net stop w32time && net start w32time
四、配置防火墙允许NTP访问
如果你需要在服务器所在区域外访问该服务器的NTP服务,需要在防火墙上添加允许:
程序代码
名称 端口 协议 方向
SNTP时间基准 123 UDP 入
五、相关注册表说明
注册表项 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。
备注说明:
1、一般 *** 作:
1)将时间服务器改成,授时中心地址(210。72。145。44)
net time /setsntp:2107214544
2)启动时间同步服务
sc start w32time
3)同步时间
w32tm /resync (实际上,大多数情况下,光作第三步即可。) 2、启动前提:
DOS启动Window Time服务: net stop w32time 、 net start w32time
要启动 Window Time 服务,必须先启动 Remote Access Connection Manager 服务。
地球分为东西十二个区域,共计 24 个时区,以格林威治作为全球标准时间(即GMT 时间,0时区),东部时区以格林威治时区进行加法,而西时区则以格林威治时间作减法。但地球的轨道并非正圆,在加上自转速度逐年递减,时间会有误差。在计算时间的时,最准确是使用“原子震荡周期”所计算的物理时钟。这种时钟被称为标准时间,即UTC时间(Coordinated Universal Time)。UTC 的准确性毋庸置疑,美国的 NIST F-1 原子钟 2000 年才将产生 1 秒误差。
实际生产生活中,使用原子时钟这种准确的计时似乎缺少必要性,我们更多关注的是参与活动的各个个体在相同的时间环境下对话。例如,当我们说明天早上8:00开会的时候,我们并不在乎原子时钟真实的计时情况,只要参会的所有个体对“明天早上8:00”这个时间具有相同的认知即可。这里时间同步是个非常重要的概念,如果某位同仁手表慢了半小时,那它对“早上8:00”的理解就比其他人要慢半小时,最终会导致ta开会迟到。同样的道理,我们在影视剧中经常能看到特种作战小组在执行特别任务前一般都要先完成组员之间的时间同步,避免组员之间在时间上的认知差异给任务带来不必要的麻烦,甚至危及生命。
NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用于分布式设备(比如电脑、手机、智能手表等)进行时间同步,避免人工校时的繁琐和由此引入的误差,方便快捷地实现多设备时间同步。 NTP校时服务基于UDP传输协议进行报文传输,工作端口默认为123/udp 。
NTP的实现过程如图所示,假如设备A和设备B本地时间存在差异(设备A早上10点,设备B早上11点),现在设备A欲通过NTP和设备B在时间上保持同步:
这样可以轻松计算出来:
现假设设备A和设备B之间的时间差位 ,易得:
通过上式计算出
设备A就能根据 调整本地时间,实现和设备B的时间同步。
NTP的目的是在一个同步子网中,通过NTP协议将主时间服务器的时钟信息传送到其他二级时间服务器,实现二级时间服务器和主时间服务器的时钟同步。这些服务器按层级关系连接,每一级称为一个层数(stratum),如主时间服务器层数为 stratum 1,二级时间服务器层数为 stratum 2,以此类推。时钟层数越大,准确性越低。
注意:准确性指相对于主时间服务器而言。
在NTP网络结构中,有以下几个概念:
在正常情况下,同步子网中的主时间服务器和二级时间服务器呈现出一种分层主从结构。在这种分层结构中,主时间服务器位于根部,二级时间服务器向叶子节点靠近,层数递增,准确性递减,降低的程度取决于网络路径和本地时钟的稳定性。
NTP有两种不同类型的报文,一种是时钟同步报文,另一种是控制报文。控制报文仅用于需要网络管理的场合,它对于时钟同步功能来说并不是必需的,这里不做介绍。
时钟同步报文封装在UDP报文中,其格式如图所示:
各主要字段解释如下:
其中,NTP发送和接收的报文数据包类似,通常只需要前48个字节就能进行授时和校时服务。下面分别是抓包获取的NTP请求数据包和回复数据包示例(仅前48个字节):
收到数据包后,接收端本地再产生一个时间戳( )。
这里,每个返回数据前4字节为秒的整数部分,后4字节为秒的小数部分。
设备可以采用多种NTP工作模式进行时间同步:
单播C/S模式运行在同步子网层数较高的层级上,客户端需要预先知道时间服务器IP或域名并定期向服务器发送时间同步请求报文,报文中的 Mode字段设置为 3(客户模式)。服务器端收到报文后会自动工作在服务器模式,并发送应答报文,报文中的Mode字段设置为4(服务器模式)。客户端收到应答报文后,进行时钟过滤和选择,并同步到优选的服务器。客户端不管服务器端是否可达,也不管服务器端所在的层数。在这种模式下,客户端会同步到服务器,但不会修改服务器的时钟。服务器则在客户端发送请求之间无需保留任何状态信息。客户端根据本地情况自由管理发送报文的时间间隔。
对等体模式运行在同步子网较低层级上,主动对等体和被动对等体实现时钟相互同步。这里有两个概念:主动对等体和被动对等体。
如上图所示,对等体模式工作步骤如下:
1主动对等体和被动对等体首先交互Mode字段为3(客户端模式)和4(服务器模式)的NTP报文,这一步主要是获得通信时延。
主动对等体和被动对等体可以互相同步。如果双方的时钟都已经同步,则以层数小的时钟为准。
注意:对等体模式不需要用户手动设置,设备依据收到的NTP报文自动建立连接并设置状态变量。
广播模式应用在多台工作站和不需要很高精度的高速网络中。主要工作流程如图所示:
注意:在广播模式下,服务端只负责向外广播时钟信息,自身时钟不受客户端影响。
组播模式适用于有大量客户端分布在网络中的情况。通过在网络中使用 NTP 组播模式, NTP 服务器发送的组播消息包可以到达网络中所有的客户端,从而降低由于 NTP 报文过多而给网络造成的压力。主要工作流程如下:
注意:组播模式和广播模式类似,只是它是向特定的组播地址发送时钟同步广播报文。在组播模式下,服务端只负责向外广播时钟信息,自身时钟不受客户端影响。
多播模式适用于服务器分布分散的网络中。客户端可以发现与之最近的多播服务器,并进行同步。多播模式适用于服务器不稳定的组网环境中,服务器的变动不会导致整网中的客户端重新进行配置。其工作流程如下:
注意:为了防止多播模式下,客户端不断的向多播服务器发送 NTP 请求报文增加设备的负担,协议规定了最小连接数的概念。多播模式下,客户端每次和服务器时钟同步后,都会记录下此次同步过中建立的连接数,将调用最少连接的数量被称为最小连接数。以后当客户端调动的连接数达到了最小连接数且完成了同步,客户端就认为同步完成;同步完成后每过一个超时周期,客户端都会传送一个报文,用于保持连接。同时,为了防止客户端无法同步到服务器,协议规定客户端每发送一个 NTP 报文,都会将报文的生存时间 TTL(Time To Live)进行累加(初始为 1),直到达到最小连接数,或者 TTL 值达到上限(上限值为 255)。若 TTL 达到上限,或者达到最小连接数,而客户端调动的连接数仍不能完成同步过程,则客户端将停止一个超时周期的数据传输以清除所有连接,然后重复上述过程。
下面补充一些常用的NTP时钟服务器:
更多NTP授时服务器请查看:
假设你比较喜欢清华的服务并打算将 ntptunatsinghuaeducn 作为你的授时服务器。下面将简单介绍不同的 *** 作系统该如何 *** 作使得设备能够使用此服务器同步时间。
本部分以主流Windows 10 系统为例演示如何使用NTP服务同步系统时间。
来将此服务器设置为个人选择的时间服务器。
Linux发行版有两个主流程序支持ntp协议:ntpd和chrony。
具体使用和配置参考各自文档: ntpd doc 和 chrony doc
在“系统配置 > 日期与时间 > 自动设置日期与时间”一栏,填入 ntptunatsinghuaeducn 。
什么是时间戳?时间戳就是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。沃通TSA服务是按照国内外相关时间戳技术与服务标准,根据我国可信时间戳服务体系规划建设的权威第三方公共可信时间戳服务,可广泛应用于知识产权保护、文化创意、电子政务等各类领域。沃通TSA服务由我国唯一法定时间源国家授时中心负责时间溯源、同步和监测,由国家权威机构确保时间源的公信力。
时间戳的作用
客户端在向服务端接口进行请求,如果请求信息进行了加密处理,被第三方截取到请求包,可以使用该请求包进行重复请求 *** 作。如果服务端不进行防重放攻击,就会服务器压力增大,而使用时间戳的方式可以解决这一问题。
防篡改:一般使用的方式就是把参数拼接,当前项目AppKey,双方约定的“密钥”,加入到Dictionary字典集中,按ABCD顺序进行排序,最后在MD5+加密客户端将加密字符串和请求参数一起发送给服务器。服务器按照上述规则拼接加密后,与传入过来的加密字符串比较是否相等
防复用:上面的方式进行加密,就无法解决防复用的问题,这时需要在客户端和服务端分别生成UTC的时间戳,这个UTC是防止你的客户端与服务端不在同一个时区,然后把时间戳timestamp拼在密文里就可以了。时间戳(timestamp),通常是一个字符序列,唯一地标识某一刻的时间。数字时间戳技术是数字签名技术一种变种的应用。
定义
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
分类
1自建时间戳:此类时间戳是通过时间接收设备(如GPS,CDMA,北斗卫星)来获取时间到时间戳服务器上,并通过时间戳服务器签发时间戳证书。此种时间戳可用来企业内部责任认定,在法庭认证时并不具备法律效力。因其在通过时间接收设备接收时间时存在被篡改的可能,故此不能做为法律依据。
2具有法律的效力的时间戳:它是由我国中科院国家授时中心与北京联合信任技术服务有限公司负责建设的我国第三方可信时间戳认证服务。由国家授时中心负责时间的授时与守时监测。因其守时监测功能而保障时间戳证书中的时间的准确性和不被篡改。获取时间戳平台有“大众版权保护平台”,可与我国中科院国家授时中心时间同步。
数据库系统中时间戳
数据库中自动生成的唯一二进制数字,与时间和日期无关的, 通常用作给表行加版本戳的机制。存储大小为 8个字节。
每个数据库都有一个计数器,当对数据库中包含 timestamp 列的表执行插入或更新 *** 作时,该计数器值就会增加。该计数器是数据库时间戳。这可以跟踪数据库内的相对时间,而不是时钟相关联的实际时间。一个表只能有一个 timestamp 列。每次修改或插入包含 timestamp 列的行时,就会在 timestamp 列中插入增量数据库时间戳值。这一属性使 timestamp 列不适合作为键使用,尤其是不能作为主键使用。对行的任何更新都会更改 timestamp 值,从而更改键值。如果该列属于主键,那么旧的键值将无效,进而引用该旧值的外键也将不再有效。如果该表在动态游标中引用,则所有更新均会更改游标中行的位置。如果该列属于索引键,则对数据行的所有更新还将导致索引更新。
使用某一行中的 timestamp 列可以很容易地确定该行中的任何值自上次读取以后是否发生了更改。如果对行进行了更改,就会更新该时间戳值。如果没有对行进行更改,则该时间戳值将与以前读取该行时的时间戳值一致。若要返回数据库的当前时间戳值,请使用 @@DBTS。
在控制并发时起到作用
用户A/B同时打开某条记录开始编辑,保存是可以判断时间戳,因为记录每次被更新时,系统都会自动维护时间戳,所以如果保存时发现取出来的时间戳与数据库中的时间戳如果不相等,说明在这个过程中记录被更新过,这样的话可以防止别人的更新被覆盖。什么是时间戳?时间戳就是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。那么时间戳有什么作用了?
时间戳的作用
客户端在向服务端接口进行请求,如果请求信息进行了加密处理,被第三方截取到请求包,可以使用该请求包进行重复请求 *** 作。如果服务端不进行防重放攻击,就会服务器压力增大,而使用时间戳的方式可以解决这一问题。
防篡改:一般使用的方式就是把参数拼接,当前项目AppKey,双方约定的“密钥”,加入到Dictionary字典集中,按ABCD顺序进行排序,最后在MD5+加密客户端将加密字符串和请求参数一起发送给服务器。
服务器按照上述规则拼接加密后,与传入过来的加密字符串比较是否相等
防复用:上面的方式进行加密,就无法解决防复用的问题,这时需要在客户端和服务端分别生成UTC的时间戳,这个UTC是防止你的客户端与服务端不在同一个时区,然后把时间戳timestamp拼在密文里就可以了。
沃通CA时间戳服务是按照国内外相关时间戳技术与服务标准,根据我国可信时间戳服务体系规划建设的权威第三方公共可信时间戳服务。为我国重点行业提供具有法律效力的第三方可信时间戳签发服务,解决各类电子数据、电子文件的法律效力问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)