问题描述
在一个与外界网络隔离的局域网内需要搭建一个NTP服务器给该局域网内的其他设备使用。尝试了一些Windows下的NTP服务器小软件之后,最后查到了Windows默认带有NTP服务器,只是默认没有开启,我们可以通过修改注册表的方式打开Windows默认的NTP服务器。
Windows时间服务介绍
从Windows 2000起的所有Microsoft Windows版本都包括Windows时间服务(W32Time),其具有将计算机时钟同步到NTP服务器的能力。
W32Time服务最初是为实现Kerberos第五版的身份验证协议,它需要误差5分钟内正确时间值以防止重放攻击。Windows 2000和Windows XP中只实现了简单的NTP,并在几个方面违反了NTP第3版的标准。从Windows Server 2003和Windows Vista开始,已包括匹配完整NTP的实现。微软称W32Time服务不能可靠地将同步时间保持在1至2秒的范围内。如果需要更高的精度,微软建议使用其他NTP实现。

Windows Server 2016现在在某些操作条件下支持1ms的时间精度。

详细步骤:

1、在Windows 服务器下,按住“ windows+r ”打开“运行”对话框,输入regedit,点击“确定”打开注册表。

2、在注册表中依次展开:HKEY_LOCAL_MACHINE、SYSTEM、CurrentControlSet、Services、W32Time、TimeProviders、NtpServer,
在NtpServer项的右侧键值ENablied,将默认的0改为1,1为启用NTP服务器。



3、再在注册表中依次展开:HKEY_LOCAL_MACHINE、SYSTEM、CurrentControlSet、Services、W32Time、Config
找到Config项右侧的AnnounceFlags。
把默认的10改为5,5的意思就是自身为可靠的时间源。



4、修改完以上之后关闭注册表编辑器,win7下 以管理员身份打开命令行如下图。Windows10则用Windows+X+A以管理员身份打开命令行。

5、在命令提示符中输入:net stop w32Time,回车
等待NTP服务停止。
然后再输入:net start w32Time,回车
启动NTP服务。

6、测试,局域网内windows电脑同步成功!

7、测试,在ubuntu虚拟机中,在终端输入命令“sudo ntpdate 192.168.10.241,”出现如下界面则同步成功!

参与评论