如何在Windows通过NTP协议实现服务器时间同步(python或C实现)
(知道不能发链接。)
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时间默认的时间同步服务器就成为我们设置的了。
0条评论