利用Windows NTP服务将局域网PC设置为其他Windows PC的时钟同步服务器

服务器 0

一、原理简述

通常,Windows设备依赖于一个互联网时间服务器和一个时钟源(如GPS卫星)来跨设备同步时间。但在离线场景下,如果设备没有连接到Internet,则需要通过本地NTP (Network time Protocol)服务器进行时间同步。

一般有两个办法获取本地的NTP服务:

  1. 咨询企业IT团队是否有NTP服务器可以使用
  2. 按照如下办法,利用一台常开的机器,启用Windows自带的NTP服务,将其设置为自己的NTP服务器

二、测试环境
一些项目系统中,会有多个Windows客户端电脑和一个Windows管理服务端电脑,一般客户端电脑不连接Internet,服务端电脑,一般7x24小时开机,常有人使用值守,而且也更易于连接Internet,因此服务器很适合NTP服务提供端为其他无法连接Internet的客户端电脑提供NTP时钟同步服务。示意图如下:

三、测试过程

测试机器

服务器一台:Windows10系统
客户端一台:Windows10系统

配置Windows Time服务

  1. win+R打开运行,输入services.msc,点击OK打开Service服务页面,找到Windows Time,右键菜单中检查服务是否已经停止,(默认是停止的,Stop选项为灰色)
  2. 注册表中创建NTP服务

  3. win+R打开运行,输入regedit,打开注册表编辑页面,导航到注册表位置:Computer/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W32Time/Parameters
  4. 以上列表默认不包含LocalNTP,按下图所示创建一个名为LocalNTP的键,类型选为DWORD(32-bit)Value
  5. 双击新建的LocalNTP,将Base(基数)选为Hex(十进制),Value data(数据数值)改为1

注册表启用时间服务

注册表导航到

Computer/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W32Time/TimeProviders

2. 选择NtpServer,双击Enable打开编辑窗口,Base(基数)修改为Hexadecimal(十六进制),Value data修改为1

注册表配置Announce Flags

启动Windows NTP Time服务

  1. 注册表导航到:Computer/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W32Time/Config
  2. 双击 Announce Flags,Base(基数)修改为Hexadecimal(十六进制),Value data修改为5
  3. 关闭注册表编辑器
  4. 回到Service服务页面,双击Windows Time,属性页面修改Startup Type(启动类型)为Automatic(自动),点击OK保存设置。这样每次启动服务器进入系统后,Windows Time服务会自动启动(默认是不启动的)

局域网另外一台Windows上测试同步

2. 点击右边的“Add clocks for different time zone”或在控制面板找到时间和日期设置,打开如下窗口3. 点击更改设置按钮,打开Internet时间设置,修改服务器地址前面设置的本地NTP服务器IP,点击立即更新,更新结果会在下方展示出来,系统时间随即也发生改变。

  1. 局域网里打开另一台电脑,同样为Windows10系统,打开系统设置,点击Time&Language选项,打开自动设置时间开关

提高客户端时间同步频率

  1. Windows 默认的时间同步频率32768s=9.1小时,且不会在系统开机时自动同步,需要手动将同步频率提高
  2. 打开播放器的注册表编辑器,浏览到 Computer/HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/W32Time/TimeProviders/NtpClient, 双击SpecialPollInterval,设置基数为十进制,数值单位为秒,3600s为一个小时,点击确定保存,关闭注册表。3. 再次打开Internet时间设置,点击立即更新,手动同步一次时间,点击确认关闭当前窗口
  3. 4. 上一级窗口即可看到系统下次同步时间点为一小时后,说明设置成功
  4. 5. 接下来可以手动调乱播放器时间,等待一小时后,检查时间是否正确同步。
  5. 四、常见的无法同步故障


    1. 同步时出错,由于超时时间已过,该操作返回

  6. 【原因1】:NTP服务器系统关机或不在线
    【原因2】:NTP服务器的系统设置中 "自动设置时间" 没开启或手动关闭再打开过,导致Windows Time服务状态自动切换到Disable状态
    【原因3】:测试中多次遇到点击立即更新后,同步出错并返回以上结果,随即再点第二次立即更新,同步就成功了。为避免以上问题,播放器设置自动同步时,可以将频率设置的比预期高一倍,如预期的是1天更新一次,实际设置12小时更新一次或更快些。测试中还发现,如果系统设置中手动关闭 "自动设置时间"后再重新打开,Windows Time服务会自动切换为Manual(手动)状态,这种状态下再重启服务器系统后,Windows Time服务不会再自动打开。因此每次开关服务器的"自动设置时间"都将影响NTP服务自动开启,必须再手动将NTP服务切换为Automatic状态。2. 同步出错,无法连接到对等机
  7. 【原因】:检查NTP服务器的Windows Time服务状态是否为Start状态
  8. 3. 无法与时间服务器自动同步,因为时间差别太大,请手动更新时间

  9. 【原因】:实测电脑当前的时间比NTP服务器时间差别超过15小时将会出现以上时间差别太大,无法同步的问题。如果经常出现这类问题,可尝试使用第三方付费软件 ClockSynchro

也许您对下面的内容还感兴趣: