近期的项目用到NTP,在使用的时候碰到一些问题,特记录如下:
(1)NTP Server部分
若要将内部时间服务器配置为与外部时间源同步,请按照下列步骤操作:
1. 将服务器类型更改为 NTP。为此,请按照下列步骤操作:
a. 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
b. 找到并单击以下注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type
c. 在右窗格中,右键单击“Type”,然后单击“修改”。
d. 在“编辑值”的“数值数据”框中键入 NTP,然后单击“确定”。
2. 将 AnnounceFlags 设置为 5。为此,请按照下列步骤操作:
a. 找到并单击以下注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
b. 在右窗格中,右键单击“AnnounceFlags”,然后单击“修改”。
c. 在“编辑 DWORD 值”的“数值数据”框中键入 5,然后单击“确定”。
3. 启用 NTPServer。为此,请按照下列步骤操作:
a. 找到并单击以下注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
b. 在右窗格中,右键单击“Enabled”,然后单击“修改”。
c. 在“编辑 DWORD 值”的“数值数据”框中键入 1,然后单击“确定”。
4. 指定时间源。为此,请按照下列步骤操作:
a. 找到并单击以下注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
b. 在右窗格中,右键单击“NtpServer”,然后单击“修改”。
c. 在“编辑值”的“数值数据”框中键入 Peers,然后单击“确定”。
注意:Peers 是一个占位符,应替换为您的计算机从中获取时间戳的对等端列表(以空格分隔)。列出的每个 DNS 名称都必须是唯一的。必须在每个 DNS 名称后面附加 ,0x1。如果不在每个 DNS 名称后面附加 ,0x1,则在步骤 5 中所做的更改将不会生效。
5. 选择轮询间隔。为此,请按照下列步骤操作:
a. 找到并单击以下注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval
b. 在右窗格中,右键单击“SpecialPollInterval”,然后单击“修改”。
c. 在“编辑 DWORD 值”的“数值数据”框中键入 TimeInSeconds,然后单击“确定”。
注意:TimeInSeconds 是一个占位符,应替换为您希望各次轮询之间的间隔秒数。建议值为 900(十进制)。该值将时间服务器配置为每隔 15 分钟轮询一次。
6. 配置时间校准设置。为此,请按照下列步骤操作:
a. 找到并单击以下注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxPosPhaseCorrection
b. 在右窗格中,右键单击“MaxPosPhaseCorrection”,然后单击“修改”。
c. 在“编辑 DWORD 值”的“基数”框中单击以选择“十进制”。
d. 在“编辑 DWORD 值”的“数值数据”框中键入 TimeInSeconds,然后单击“确定”。
注意:TimeInSeconds 是一个占位符,应替换为适当的值,如 1 小时 (3600) 或 30 分钟 (1800)。您选择的值将因轮询间隔、网络状况和外部时间源而异。
e. 找到并单击下面的注册表子项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxNegPhaseCorrection
f. 在右窗格中,右键单击“MaxNegPhaseCorrection”,然后单击“修改”。
g. 在“编辑 DWORD 值”的“基数”框中单击以选择“十进制”。
h. 在“编辑 DWORD 值”的“数值数据”框中键入 TimeInSeconds,然后单击“确定”。
注意:TimeInSeconds 是一个占位符,应替换为适当的值,如 1 小时 (3600) 或 30 分钟 (1800)。您选择的值将因轮询间隔、网络状况和外部时间源而异。
7. 退出注册表编辑器。
8. 在命令提示符处,键入以下命令以重新启动 Windows 时间服务,然后按 Enter:
net stop w32time && net start w32time
(2) NTP Client部分
要想使用NTP,首先要确定Windows Time服务已启动
设置windows默认使用的NTP地址
具体设置在注册表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers下的默认值
Dos下通过调用如下指令来完成时间同步操作
net time /setsntp:192.168.1.232 ---- (设置时间服务器地址)
net stop w32time --- (停止时间服务)
net start w32time --- (启动时间服务)
w32tm –s --- (立即同步时间)