问题描述
在一个与外界网络隔离的局域网内需要搭建一个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
,”出现如下界面则同步成功!