本文以Windows Server 2019 数据中心版64位为例,介绍如何使用NTP服务同步Windows实例的本地时间。
NTP(Network Time Protocol)即网络时间协议,是TCP/IP协议族中的一个应用层协议,用于客户端和服务器之间进行时钟同步,提供高精准度的时间校正。
Windows Server操作系统默认开启Windows Time服务。为了保证NTP服务配置成功后能正常同步时间,实例中必须开启NTP服务。请按以下步骤检查并开启NTP服务:
登录Windows实例,操作详情可查看登录Windows实例。
单击Windows的开始
图标,单击“Windows 系统”然后单击“运行”,在运行窗口中执行services.msc
命令。
在“服务”窗口中,找到并双击“Windows Time”服务。
在“Windows Time 的属性(本地计算机)”窗口中选择“常规”选项卡,调整如下配置:
将“启动类型”设置为“自动”。
确认“服务状态”为“正在运行”。如果不是,请单击“启动”按钮启动Windows Time服务。
单击“应用”按钮后,再单击“确定”按钮,开启NTP服务。
Windows Server操作系统默认配置微软NTP服务器(time.windows.com),您可以将默认NTP服务器更换成需要使用的NTP服务器。
登录Windows实例,操作详情可查看登录Windows实例。
在任务栏的通知区域,单击日期和时间,然后单击“更改日期和时间设置”按钮。
在“日期和时间”窗口中的“相关设置”模块,单击“添加不同时区的时钟”按钮。
在新弹出的“日期和时间”窗口中,单击“Internet 时间”选项卡,单击“更改设置”按钮。
在“Internet 时间设置”窗口中,勾选上“与Internet时间服务器同步”选项,并在“服务器”的输入框中填写您需要使用的NTP服务器地址。
火山引擎为您提供了NTP服务器,详情可查看火山引擎NTP服务器地址列表。
单击“立即更新”按钮,Windows将立即与NTP服务器进行同步。
单击“确定”按钮,完成NTP服务器地址修改。
默认同步时间间隔为400(16进制,即 1024 秒约为 17 分钟),您可以根据业务需求自定义NTP服务的时间同步间隔。请按以下步骤修改时间同步间隔:
连接Windows实例,操作详情可查看登录Windows实例。
单击Windows的开始
图标,单击“Windows 系统”,然后单击“运行”,在运行窗口中执行regedit
命令。
在“注册表编辑器”窗口的左侧目录树中,选择“HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > W32Time > TimeProviders > NtpClient”。
在右侧详情窗口“名称”列,双击“SpecialPollInterval”。
在“编辑 DWORD (32 位)值”窗口中,将“基数”调整为“十进制”,并按需填写“数值数据”。填入的数值即为您需要的同步时间间隔,单位为秒。
单击“确定”按钮,完成修改操作。
完成修改后您需要重启实例或重启服务使配置生效。如果您的业务需求导致不方便重启实例,您可以按如下指引重启服务使配置生效:
单击Windows的开始
图标,单击“Windows 系统”,然后单击“运行”按钮,在运行窗口中执行services.msc
命令。
在“服务”窗口中,找到并右键单击“Windows Time”服务。
单击“重新启动”按钮,重启服务。
您可以在获取本地管理员组的成员身份后,使用命令行工具来配置 Windows 时间服务设置。
连接Windows实例,操作详情可查看登录Windows实例。
单击Windows的开始
图标,单击“Windows 系统”,右键单击“命令提示符”,在“更多”中单击“以管理员身份运行”。
在命令提示符窗口执行如下命令,开启NTP服务并将其”启动方式“设置为“自动”。
此操作与开启NTP服务功能相同。
sc config W32Time start=auto net start w32time
在命令提示符窗口执行如下命令,修改NTP服务的地址。以更新NTP服务地址为火山引擎NTP服务器为例。
说明
w32tm /config /manualpeerlist:"ntp0.ivolces.com,0x9 ntp1.ivolces.com,0x9 ntp2.ivolces.com,0x9 ntp3.ivolces.com,0x9" /syncfromflags:manual /reliable:yes /update
在命令提示符窗口执行如下命令,修改注册表中的NTP配置的时间同步间隔设置。
以修改同步间隔时间为 600 秒为例,后续您可以将需要的时间间隔转换为十六进制,替换命令中的 258
即可。
此操作与修改 NTP 服务时间间隔功能相同。
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient /v SpecialPollInterval /d 0x258 /t REG_DWORD /f
在命令提示符窗口执行如下命令,重启时间服务并重新同步时间。
net stop w32time net start w32time w32tm /resync
在命令提示符窗口执行如下命令,查询时间同步状态。
可能是由于配置NTP服务器时,不同注册表配置冲突。请参考如下步骤取消本地组策略针对Windows Time的配置。
请在命令提升行中执行如下命令,再次配置NTP服务器地址。
w32tm /config /manualpeerlist:"ntp0.ivolces.com,0x9 ntp1.ivolces.com,0x9 ntp2.ivolces.com,0x9 ntp3.ivolces.com,0x9" /syncfromflags:manual /reliable:yes /update
单击Windows的开始
图标,单击“Windows 系统”然后单击“运行”,在运行窗口中执行如下命令,打开本地组策略编辑器。
gpedit.msc
双击“配置 Windows NTP 客户端”,在弹窗中调整为未配置。
单击“应用”按钮,再单击“确定”按钮完成操作。
说明
完成调整后,注册表中“HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\W32Time”将自动消失。
在命令提示符窗口执行如下命令,重启时间服务并重新同步时间。
net stop w32time net start w32time w32tm /resync
在命令提示符窗口执行如下命令,验证是否可以正常进行时间同步。
w32tm /query /status