学以致用

focus on Python , C++, and some interest in Go and R

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

近期的项目用到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  --- (立即同步时间)

posted on 2011-08-30 22:35  Jerry.Kwan  阅读(4594)  评论(0编辑  收藏  举报