如何在Windows通过NTP协议实现服务器时间同步(python或C实现)

如何在Windows通过NTP协议实现服务器时间同步(python或C实现),第1张

(知道不能发链接。)

1获取NTP服务器时间。在pypi找ntplib。有范例。

2设置windows系统时间。有很多方法。最简单的可以直接用date命令。也可以用win32API SetSystemTime,这个精度控制好一些,可以设置到ms。

如果要定期对时,设置计划任务即可。

1、在开始菜单栏中,点击“运行”输入regedit,打开Windows 注册表

2、设定成为NTP 服务器类型。

修改登陆档案中: “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters”

[Type]设定值修改为”NTP”。

3、设定授权时间服务器

修改登录档中: “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config”

[AnnounceFlags]修改设定值为5。

4、启用NTP服务器

修改登录档中: “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer”

[Enabled]数值修改为1。

5、重起Windows Time服务

打开开始菜单输入“CMD”在命令行模式下输入:

net stop w32time && net start w32time

1

1

重启一下win32time服务。

注意:

1、在系统服务中设置W32Time服务启动模式为自动。

2、确定防火墙允许UDP123端口访问。

打开 UDP:123端口

打开开始菜单输入“CMD”在命令行模式下输入:

netsh firewall add portopening pro

windows server 2008做NTP服务器与H3C网络设备组网首先WINDOWS SERVER 2008默认是关闭NTP服务的,需要通过修改注册表开启

方法如下:

------------------------------------------------------------------------

服务端:

默认情况下,独立服务器WINDOWS SERVER 2008是作为NTP客户端工作的 ,所以必须通过修改注册表,以使系统作为NTP服务器运行。工作之前请先备份注册表文件。

1修改以下选项的键值HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer内的[Enabled]设定为1。

打开NTP服务器功能(默认是不开启NTP Server服务,除非电脑升级成为域控制站)。

2修改以下键值HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags设定为5.

该设定强制主机将它自身宣布为可靠的时间源,从而使用内置的互补金属氧化物半导体 (CMOS) 时钟。如果要采用外面的时间服务器就用默认的a值即可.

3修改以下键值HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type内的[Type]设定为NTP。

4重启Win32Time服务:先关闭 windows time 服务,再开启该服务。可以在“管理工具”的“服务”界面下完成,也可以以 DOS 方式输入“net stop w32time”、“net start w32time”。

至此,已完成服务器端设定.

客户端:

客户端的设定更改注册表即可

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient

SpecialPollInterval     值修改成十进制43200 (单位为秒,43200为12小时)

SpecialPollTimeRemaining  值修改成〔时间同步服务器〕,0 如:19216811,0

客户端设置完成.

--------------------------------------------------------------------

H3C网络设备

在H3C网络设备上保证和这台NTP服务器全网互通

所有网络设备选择客户端/服务器工作模式

只需要在H3C网络设备上做一条命令

ntp-service unicast-server xxxx 这里的ip地址就是NTP服务器的ip地址

然后可以通过dis ntp-service status来查看同步状态

同步之后会发现和NTP windows 2008服务器时间差了8个小时

这个是因为windows 2008 是北京时间东8区

而网络设备一般默认是0区

所以用以下命令

clock timezone utc+0800 add 8

即可。

  在 Windows Server 中配置权威时间服务器的方法

  1 时间服务器经常会碰到客户端机器需要和服务器在时间上保持同步,否则会出现各种问题,特别是有时间相关的触发功能的时候。

  为解决各设备间时间统一的问题,我们可在网络中设置一台服务器使其作为基准时间,其它设备通过NTP协议与其同步时间。这样很容易做到各设备时间差异小于1s。

  NTP----- Network Time Protocol

  

  2 服务端配置

  适用于Windows Server 2003以及Windows Sever 2008

  1) 开放防火墙123 UDP端口;

  2) 运行中输入“gpeditmsc”;

  3) 展开“策略”下的“计算机配置”中的“管理模板\系统\Windows 时间服务\全局配置设置”;

  4) 将其状态改变为“已启用”;

  5) 改变AnnounceFlags参数值为5,

  6) 展开“策略”下的“计算机配置”中的“管理模板\系统\Windows 时间服务\时间提供程序\启用Windows NTP服务器”

  7) 将其状态改变为“已启用”;

  8) 在Windows 服务中启动Windows Time服务,并设置启动类型为“自动”;

  9) 完成。

  

  3 客户端配置

  适用于Windows XP、Windows Server 2003、Windows Vista、Windows 7以及Windows Sever 2008。

  1) 运行中输入“gpeditmsc”;

  2) 展开“策略”下的“计算机配置”中的“管理模板\系统\Windows 时间服务\时间提供程序\启用Windows NTP客户端”

  3) 将其状态改变为“已启用”;

  4) 展开“策略”下的“计算机配置中的“管理模板\系统\Windows 时间服务\时间提供程序\配置Windows NTP客户端”

  5) 将其状态改变为“已启用”;

  6) 改变NtpServer参数中的IP为时间服务器地址:xxxxxxxxxxxx,0x9;

  7) 改变Type参数NTP;

  8) 在Windows 服务中启动Windows Time服务,并设置启动类型为“自动”;

  9)双击任务栏右下角“时间”,打开 [ 时间和日期 属性 ] 设置对话框

  10)选择 [ Internet时间 ] 标签

  11) 选中 [ 自动与Internet时间服务器同步 ] 选项,在 [ 服务器 ] 中填入“xxxxxxxxxxxx”。点击 [ 应用 ] 并按 [ 立即更新 ] 可直接同步。看是否出现“windows在于XXX进行同步时出错”的信息,还是出现“时钟在2013/8/27 12:12:00与XXX同步成功”

  12)点击 [ 应用 ] 并按 [ 立即更新 ] 可直接同步。看是否出现“windows在于XXX进行同步时出错”的信息,还是出现“时钟在2013/8/27 12:12:00 与XXX同步成功”

WindowsXP时间服务器配置

1在注册表中将服务NTPServer的Enabled属性设置为1Type改为NTP。

2如果外部时间源获取时间将Config/AnnounceFlags设置为5

3将parameters\NtpServer地址改为外部时间源的IP地址或者DNS,在使用DNS是后面要加上”,0x1”多个地址之间用空格隔开。

4其他参数是可选的参数,可根据需要配置。

5重启w32time服务在命令行中,net stop w32time && net start

w32time就配置完成了。

6此外,要保证windows

防火墙是关闭的。或者启动防火墙时,在例外中添加C:\WINDOWS\system32\w32timedll端口号:123类型UDP。

经过以上六步服务器端就设置完成了。

WindowsXP客户端的配置

1将NtpServer地址设置为服务器的地址。

2服务类型改为NTP。

3SpecialPolInterval自动同步时间间隔根据需要配置比如15分钟轮询一次(设置为900,因为单位为秒)。

4将默认的时间服务器设置为服务器的地址, XP默认是微软的时间服务器timewindowscom。在注册表中

HKEY_LOCAL_MACHINE\SOFTWARE\WINDOWS\CurrentVersion\DateTime\Servers

新建一个字符串值(名字3),输入服务器的IP地址。

并将默认值改为3这样在时期时间属性\Internet时间默认的时间同步服务器就成为我们设置的了。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何在Windows通过NTP协议实现服务器时间同步(python或C实现)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情