明净

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

 

在Windows上设置NTP

英文版:http://www.satsignal.eu/ntp/setup.html#local

 

Meinberg为Windows用户提供了备受推崇且高度准确的NTP软件的安装程序非常有用- 我要感谢他们。此网页提供了在Windows XP,Vista或Windows-7/8上安装NTP的快速指南,使用标准的开箱即用设置将您的PC同步到Internet,然后检查您是否正常工作安装。  这些注释说明了为什么要使用NTP而不是其他计时软件。某些程序(如优秀的Plane Plotter)甚至要求在允许使用某些更高级的功能之前安装NTP。

如果您有多台PC,则应在每台PC上按照以下说明安装NTP。如果您有多台PC,则可能需要为网络创建一个本地时间服务器(锁定到Internet),并将其他PC同步到该本地服务器,方法是在配置文件中添加一行。更多信息在这里这是很容易的,因为该软件将作为一个客户端的远程NTP服务器,工作哪个其他NTP客户端可以连接的服务器。对于相当低的额外费用(35美元,25英镑),您可以将本地时间服务器锁定到GPS,使其比锁定到Internet源的服务器更精确。您可能希望使用Raspberry Pi之类的东西作为低成本,独立的精确时间服务器。
 

安装

访问Meinberg网站(在新选项卡中打开),并查找标题为:NTP包,其中包含对Windows XP及更高版本的IPv6支持查找下载图标技术分享 和名为ntp ... setup.exe的文件。下载安装文件并将其保存到硬盘。  

在哪里下载软件安装文件

我通常 在新PC上创建一个名为C:\ Install \的目录,这就是我下载所有软件的地方。所以在这种情况下,我创建一个名为C:\ Install \ NTP \的新目录,并将... setup.exe文件直接下载到该目录。

截至2015年7月,当前的Meinberg版本命名为:ntp-4.2.8p3-win32-setup.exe(3.72 MB)我建议右键单击下载的文件,选择“属性”,然后单击“取消阻止”按钮(如果存在)。这将在运行安装过程之前删除一条警告消息。然后双击运行setup.exe文件。在Vista或Windows-7/8上,您可能需要通过回答UAC(用户授权控制)问题来运行文件,但是,您不必禁用UAC来安装或运行NTP。我有一个报告,在Windows-XP / 64安装上,使用右键单击,需要以管理员身份运行,否则为NTP创建的帐户没有足够的权限。以下屏幕截图来自早期的Windows-8安装。

技术分享

假设您同意这些条款,请按我同意。选择文件的位置 - 您可以选择在此处制作。  

在哪里安装NTP?

在单用户PC中,在良性环境中,我建议创建一个名为C:\ Tools \的目录( 如果还没有),并将NTP软件放入C:\ Tools \ NTP \我建议这样做,因为安装包含用户可编辑的文件,而C:\ Program Files \不适合此类数据。这是因为Windows Vista和Windows-7/8执行的目录虚拟化,并且您最终编辑了一个文件,但它不是NTP将读取的文件。

创建C:\ Tools \ 目录时,通过右键单击Windows资源管理器中的目录,选择“属性”,“安全”选项卡,“编辑”,“添加”,为所有用户提供完全控制权。在对象名称框中,键入“everyone”,单击“确定”,确保选中“Everyone”,然后在“权限”框中单击“完全控制”,单击“确定”。

在多用户PC或不太友好的环境中,将默认安装目标文件夹保留为C:\ Program Files \ NTP \(或建议的任何内容),但请注意,您可能需要具有管理员权限编辑配置文件时。如果您不想编辑配置文件,而大多数用户不想编辑配置文件,则不会给您带来很大的不便。 

技术分享

选择您的目录,然后按“下一步”继续。

技术分享

保留所有组件,然后按“下一步”继续。NTP可以根据您的地理位置使用NTP池中服务器为您创建初始配置应该允许它执行此操作,因为它可以节省您选择使用哪些服务器的任务。确保选中“ 创建初始... ” ,然后从下拉列表中选择最近的国家或地区。在下面的例子中,我选择了英国然后,NTP将选择您所在地区的服务器,尝试提供最近的连接以获得最佳性能。保留安装程序建议的其他设置。

技术分享

选择区域后,按“下一步”。大多数用户无需编辑安装程序创建的文件,因此请按“否”继续。  

技术分享

但是,您可能会发现最新版本的Meinberg安装程序的安全限制阻止NTP查看任何外部服务器,因此如果所有服务器稍后显示“INIT”状态,请将安全性“限制”行更改为以下内容:

#建议NTP限制(接受来自LAN的ntpq命令):
限制来源notrap nomodify nopeer
限制127.0.0.1
restrict :: 1
限制192.168.0.0掩码255.255.255.0

一个消息来源表明,对于4.2.7及更高版本,上面的第二行应该是:

限制源nomodify noquery notrap

NTP可以创建一个帐户来运行该软件。即使您没有登录计算机,NTP也会运行,以确保更好的计时。下一个对话框建议安装程序为您创建一个帐户,这是适当的设置。建议不要使用SYSTEM帐户。保留建议的其他选项。  

Windows-8和Windows-10用户:虽然不推荐,但请选择SYSTEM帐户,而不是特殊的NTP帐户。我不确定为什么这是必需的,但是在Meinberg更新他们的安装程序之前,它将节省您以后选择SYSTEM帐户的时间。否则NTP将不起作用。

一位用户报告了问题,因为他取消选中了下面的“禁用其他时间服务...”框,这导致Windows和NTP争夺时间设置,并且NTP无法完成其工作。不幸的是,初始安装已将其设置保存在install.ini文件中,因此在尝试重新安装时,同样的错误设置仍然存在。编辑install.ini文件可以恢复正确的默认值并允许成功安装。如果您是第二次安装,请仔细检查。

技术分享

按“下一步”并为该帐户定义密码。  请务必记下此密码以备日后需要或重新安装时使用,但由于帐户权限有限,因此通常无需使用超级安全密码。如果您忘记了密码,则需要在重新安装的情况下删除ntp帐户。一个人使用太简单的密码或重新使用相同的密码得到错误2245,但我没有其他报告。

技术分享

按Next后,安装完成,并启动NTP服务。  

Windows-8.1和Windows-10

在最近的Windows-8.1 / 64全新安装和Windows-10/32全新安装上,此时我有关于服务未启动的错误消息,似乎使用SYSTEM帐户是最简单的方法围绕这个问题。可能这是关系到中提到的问题如下

您可能需要通过Windows F允许程序irewall

与任何访问Internet的程序一样,NTP可能会触发您的防火墙软件询问NTPD是否可以访问Internet。确保允许ntpd.exe传入和传出访问(在区域警报中称为“充当服务器”)。还有一个支持程序(ntpq.exe),您可以使用它来查询NTP在您自己的系统或您本地或Internet上有权访问的任何系统上的工作情况,也可能需要通过你的防火墙。  如何将程序添加到Windows-7的防火墙如果您一直在使用建议的路径,程序将在C:\ Tools \ NTP \ bin \中找到允许  ntpd.exe 如果要设置本地NTP网络,则通过防火墙接受传入的UDP请求。如果您尚未禁用文件扩展名的隐藏,则程序可能只显示为“ntpd”和“ntpq”。我建议您允许Windows资源管理器显示文件扩展名,以免您混淆。

技术分享

虽然没有必要,但您可能需要查看“控制面板”,“日期和时间”对话框,该复选框表明Windows会自动与Internet服务器同步。没有必要为此设置为NTP做了很多更好的工作,确实-这盒必须是未经检查的NTP才能正常工作。

技术分享

您现在可以为网络中的每台PC重复此安装。

在Windows-10上,此控制面板设置已被删除。而是进入PC设置菜单,时间和语言,日期和时间选项卡。确保将“自动设置时间”设置为“关”。要检查NTP是否已安装并正在运行(从禁用W32Time设置),请使用任务管理器:

  • 在“详细信息”选项卡上,检查是否没有运行“w32time.exe”程序(单击“名称”按名称排序)。
     
  • 在“服务”选项卡上(单击以按名称再次排序),检查W32Time服务是否已停止。

您还应该在控制面板本地服务中检查Windows时间服务是否已设置为已禁用。

 

路由器 

大多数路由器不需要特殊配置,因为已经内置了对NTP(端口123上的UDP数据包)的支持。

与虚拟PC一起使用

VMware的

VMware发布了自己在虚拟PC环境中使用NTP建议这些建议随着各种软件版本而发生了变化,因此最好查看VMware网站以了解当前的想法。

Microsoft Hyper-V

使用Microsoft Hyper-V 2012软件,Steve Walker的一些建议(需要为优秀的Plane Plotter软件提供良好的计时)是:

  • 主机PC配置:
    • NTP:已安装并正在运行
    • 操作系统:Microsoft Windows Server 2012 Standard 
    • Virtual PC:Hyper-V 2012,为客户端启用了Time Sync选项
    • 看到此屏幕截图,其中设置显示为禁用状态,您要确保已选中它。
  • 虚拟PC配置:
    • 操作系统:Microsoft Windows XP SP3
    • 应用软件:Plane Plotter 6.3.6

Steve Walker评论:我确保Hyper-V时间同步服务已启动,因为这将允许客户端与主机同步其时间。

域名时间II

如果来自Hyper-V时间同步服务的计时对您不够好,您可能对Larry Ellis指出的Domain Time II感兴趣 - 他写道

我最终从www.greyware.com获得了一个惊人的20美元时间客户端呼叫Domain Time II 它似乎在VM中做得非常出色(大多数时候<15ms错误)。当然,它必须经常采样以获得该值,但幸运的是我在LAN上有一个物理NTP服务器(谢谢!)将提供该功能。他们也有一个服务器组件。
如果您没有看到该软件,可以选择对该软件进行免费评估,并希望了解该软件。他们做的不错。
 

检查它是否正常工作

几分钟后检查,以允许程序连接到Internet。如果您习惯使用命令行,请获取命令提示符(“开始”,“所有程序”,“附件”,“命令提示符”或“ Windows-key -R,cmd”),然后输入命令:

    ntpq -pn

请注意,“ - pn” 必须是小写的,并且“ntpq”和“-p”之间必须有空格。一个可能更快一点的替代命令是“ntpq -pn”。你应该得到类似于下面显示的输出。或者,从“开始”菜单中选择“Meinberg”,“网络时间协议”,“快速NTP状态” - 这将为您提供方便的ntpq显示,该显示每十秒自动刷新一次。这个屏幕截图是在开始后立即拍摄的,因此民意调查是64,并且达到 “1”。

请注意,下面的两个屏幕截图是使用“ntpq -p”拍摄的,其中包括数字到名称的分辨率。使用上面建议的“-pn”版本更快。

技术分享

运行一段时间后,输出可能看起来更像是这个(合成的)屏幕截图:

技术分享

在那里你可以看到一个服务器(linnaeus)的第一列有一个星号(*),并且达到377.这可能表明一切都很好。

解释ntpq输出:

  • 显示屏是远程服务器列表,其中各种状态报告按列排列。
  • 一个远程服务器的第一列应该有一个星号(*)。这标志着NTP选择的服务器作为当前首选源。
  • 具有加号(+)的服务器足以使NTP同步,而其他服务器则不然。
  • 范围列不应该是0,和直到它到达377.这是一个位掩码表示一个八进制显示服务器达到时NTP的正常工作期间从1将扩大。在屏幕截图中,NTP运行不到一分钟,因此只与每个服务器进行一次联系。通常,您希望在此列中针对每个服务器看到377。全部为零的列表示NTP无法联系任何服务器 - 请检查防火墙设置。
  • 偏移显示你的电脑是关闭从标称UTC多远,和值单位为毫秒。所以上面的PC在正确时间的1/40左右!
  • 随着时钟偏移和频率逐渐被校正,随着NTP需要越来越少地接触服务器轮询值应该从64秒逐渐增加到1024秒。在NTP中自动更改轮询。
  • 延迟显示从电脑包到达远程服务器,反之亦然时间。高于150ms的值可能表示卫星电路,如果可能,最好避免使用此类服务​​器。您将从网络上靠近您的服务器获得最佳性能。
  • 抖动栏显示你和远程服务器之间的连接多么稳定。
  • 所述第一列显示了服务器的层数,层数与具有本地参考1个服务器,例如原子钟,或者对于许多服务器,无线电时钟或GPS接收器参考。您将看到的大多数服务器都在第2层,因此它们被锁定在stratum-1服务器上。轻载的stratum-2服务器可能比重负载的stratum-1服务器(例如具有广泛公布的地址的服务器)更好。

Meinberg 在这里提供更多信息一旦基本操作正常,如果您想进行实验,我建议您更新到更新版本,因为Meinberg安装中的版本是“稳定”版本,但“开发”版本具有一些性能和操作优势。
 

故障排除

NTP是一个网络应用程序,因此适用于任何网络应用程序的故障排除基础。在今天的Windows环境中:

  • 检查防火墙访问。
    • 程序ntpd.exe和ntpq.exe是否为防火墙“已知”?
    • 他们是否启用了传入和传出访问?
    • 在Zone Alarm中,这意味着“充当服务器”。
    • 是否启用了防火墙软件的访问请求 - 您是不是没有丢失?
  • 你可以PING和TRACERT到有问题的ntp服务器吗?
    • 请注意,今天这是一个糟糕的测试,因为许多网络和服务器禁用PING访问。
  • 你可以使用上面显示的“ ntpq -p ”命令对抗你试图使用的服务器吗?
    • 同样,这可能是一个糟糕的测试,但我发现一个服务器响应:louie.udel.edu,但是,许多服务器现在阻止这种访问。

      技术分享
       
    • 你自己运行“ ntpq -p ” 会得到类似的结果吗?
  • 检查您是否被允许访问服务器 - 很多层服务器要求您在访问之前与他们联系。寻找“开放访问”服务器。有服务器的列表在这里

请注意,NTP有一个最大时钟错误,它将纠正500ppm(每天43.2秒,或每小时1.8s),因此如果您看到偏移量逐渐增加超过此速率,您就会知道您的PC时钟太不准确而不守纪律通过NTP。但是,有一个用户报告了一个工作轮 - 设置一个计划任务,每天运行两次(或更多次)以停止并重新启动NTP服务。狡猾!你也可以告诉NTP你的时钟漂移率多少,这可能会有所帮助。
对于更复杂的问题,请注意http://support.ntp.org 及其“支持”网站 - 这是一个维基,您可以在那里添加或更改内容。

服务无法启动

这可能是由于缺少一个或多个DLL

  • Microsoft Visual C ++ 2008(x86)运行时库是必需的。大多数情况下,这将安装在您的PC上,但如果没有,请下载并安装运行时库
     
  • 如果您已选择安装上述SSL组件(这不是我推荐的),则该服务将无法启动,因为这些组件是 必需的。只需再次运行安装,选择“更新文件”选项。
     

启动NTP时出现“系统错误5 - 访问被拒绝”

如果您使用Meinberg菜单在Windows Vista,Windows-7或更高版本上停止,启动或重新启动NTP,您可能会收到上面的错误消息。这是因为需要管理员权限来停止和启动服务。解决方案是右键单击菜单项,然后选择“以管理员身份运行”。

我在运行ntpq -p时收到“没有找到关联”的消息

检查您的配置文件(C:\ Tools \ NTP \ etc \ ntp.conf)是否包含服务器条目,例如在此示例简化配置文件中:

#使用漂移文件
driftfile“C:\ Tools \ NTP \ etc \ ntp.drift”

#使用ntp池项目中的NTP服务器(参见http://www.pool.ntp.org)
服务器0.uk.pool.ntp.org iburst
服务器1.uk.pool.ntp.org iburst
服务器0.nl.pool.ntp.org iburst
服务器1.nl.pool.ntp.org iburst

使用事件查看器

Windows在事件日志中记录包括NTP在内的程序中的事件。您可以使用Windows事件查看器查看NTP记录的事件,以帮助诊断更难的问题。有关Windows XP事件查看器以及Windows VistaWindows-7的更多信息因为Windows版本之间的格式不同。

单击“应用程序”查看应用程序日志:

技术分享

您将看到来自所有来源的事件列表,而不仅仅是NTP,最新事件位于顶部。现在使用View | 过滤器...事件查看器菜单,仅从NTP中选择那些事件。  

技术分享

在事件源中,从下拉列表中选择NTP,然后单击“确定”按钮。

技术分享

现在双击其中一个NTP事件,特别是那些具有错误状态和红叉的事件。

技术分享

并查看实际的NTP消息是什么,例如:

技术分享

您可以使用向上和向下箭头滚动NTP消息。

有关在Internet上使用事件查看器的更多信息,例如,此处当NTP启动时,您将收到一些事件信息消息,这些消息非常正常,并且在正常运行NTP期间您将偶尔收到消息。留意那些表明失败的人。
 

使用“管理工具”,“服务”程序

您可以检查NTP服务是否正在运行,或许更重要的是,使用服务小程序停止W32Time(较旧的Windows时间服务)。这可以在Windows XP的“控制面板”,“管理工具”选项下找到。

检查:

  • “网络时间协议”服务显示为“状态:已启动”和“启动:自动”。
  • 服务“Windows Time”显示为Status:(空白)和Startup:Disabled
     

PC时钟坏了

时钟接近43秒/天的限制

如果.. \ ntp \ etc \目录中的文件ntp.drift始终显示接近+/- 500的值,并且NTP停止工作,那么可能是您的PC时钟超出了NTP的正常限制(漂移允许每天最多+/- 43秒)。ntp-4.2.6p4及更高版本中的新功能允许您在NTP启动时为其提供基本偏移值,以便+/- 500 ppm(百万分之一)应用于该基值,而不是绝对限制。所以你的时钟必须表现良好,但不必非常接近正确。使用此新功能有两个步骤:

  • 将系统环境变量:NTPD_TICKADJ_PPM设置为您需要的值。在Windows XP上,这是通过控制面板。System ...,System,Advanced ...,环境变量按钮,系统变量。添加一个新的系统变量,名称为NTPD_TICKADJ_PPM,值为500(如果你的ntp.drift限制在负极值,则为-500)。
      
  • 安装ntp-4.2.6p4或更高版本。你可以在这里下载新版本:
      http
    //davehart.net/ntp/win/x86/ntp-4.2.6p4-win-x86-bin.zip如果你已经从2012年9月的Meinberg获得了ntp-4.2.6p5安装没有必要更新。
    右键单击,属性,取消阻止下载。然后,使用服务应用程序,停止NTP(网络时间协议),保存.. \ ntp \ bin \目录中的.EXE文件(如果您需要还原),并从Zip存档中复制.EXE文件下载。在服务中重新启动NTP,并检查操作是否正确。由于文件已更改,您可能需要告知防火墙允许新程序的传入和传出访问。

您可能需要多次重复设置环境变量/重新启动NTP循环以获得系统的最佳值。虽然我自己没有尝试过这种方法,但我猜你会在一两个小时的操作后尝试在ntp.drift文件中获取一个值,比如100以下。有耐心!

省电功能可能会导致问题

您的PC时钟也可能会破坏NTP,而实际问题是某些软件会篡改CPU速度。如果启用了某些节能功能,则可以尝试禁用这些功能,并查看NTP的性能是否有所提高。症状可能包括PC正确保持时间,直到开始一些CPU密集型活动。

域中的Windows系统

Hartmut Schulla报道

在Windows Server 2008,64位,版本2上,我需要以管理员身份运行ntpd.exe右键单击并转到ntpd.exe的属性选择兼容性选项卡并选中所有用户的“以管理员身份运行”。在服务设置中,选择“本地系统帐户”,而不是安装程序创建的特殊帐户。对我来说,只有“本地系统帐户”才有权访问“Windows时间”。
ntpq -p在Server2008R2 => timeout时无法正常工作。我不明白为什么.....但“NTP时间服务器监视器”作为来自Meinberg网站的ntpq的替代工作正常。“NTP时间服务器监视器”也需要“以管理员身份运行”。
此问题可能是由于计算机同时具有IPv4和IPv6地址。尝试使用ntpq -p 127.0.0.1来强制使用IPv4地址。如果要使用启动和停止服务命令,则只需要以管理员身份运行NTP时间服务器监视器,这是可以预期的。

Patrick O'Keeffe报道

我今天在一台域控制的Windows 7 Professional x64机器上安装了NTP 4.2.8,我收到了有关NTP设置故障排除部分的反馈。 

特别是,我能够避免(a)在ntpd.exe上使用“以管理员身份运行”兼容模式, 以及(b)通过更新两个本地安全策略在本地系统帐户下运行守护程序。

  • 启动secpol.msc
  • 浏览到本地策略=>用户权限分配 
  • ntp帐户添加到以下策略: 
    • 更改系统时间
    • 以服务身份登录

在我的机器上,在启用更改系统时间权限之前,我会在应用程序事件日志中看到这些错误消息:

  • SetSystemTime失败:客户端不保留所需的权限。 
  • 无法调整时间:客户端不保留所需的权限。

这台机器启用了IPv4和IPv6,所以我怀疑它几乎总是 没有修改更改系统时间安全策略。默认情况下,该权限仅适用于管理员和高级用户(参考:http: //msdn.microsoft.com/en-us/library/ms813808.aspx)。 
 

其他问题

  • 如果NTP似乎没有启动,请使用Meinberg在“开始”按钮,“所有程序”,“Meinberg”,“网络时间协议”,“服务控制”菜单集中为您提供的“启动NTP”条目。然后,您可能会看到诸如“无法登录”之类的消息,然后查看事件查看器以获取更多详细信息。
     
  • 为NTP帐户定义密码后,安装程序不允许您更改密码。继续使用原始密码。
     
  • 我发现在将Windows-10预览版更新到其他版本时,ntp 帐户未被删除,但后续安装的NTP不会使用旧帐户,也不会从头开始创建新帐户。该错误似乎是登录密码。由于该系统并没有在互联网上使用,并且不提供任何服务,以互联网,我用的系统 帐户,而不是。
     

将NTP更新为更新版本

Meinberg网站使用NTP 4.2.6p5,这是当前的,并且运行良好。命令:

ntpq -crv

技术分享

将包括参数列表,包括第二行的版本信息。

如果你想要试验:

  1. 将.. \ NTP \ bin \中的所有.exe文件复制(不要移动!)到一个新目录以便安全保存,以防您需要还原。
      
  2. 从此网页下载并保存新版本(我建议最新,因为我将测试该版本)
     
  3. 右键单击Zip文件,“属性”,单击“取消阻止”按钮(如果存在)。
      
  4. 使用“管理工具,服务”程序停止NTP。它可能显示为网络时间协议守护程序。
      
  5. 将Zip下载中的文件复制到.. \ NTP \ bin \中
     
  6. 重启NTP。

任何问题,您只需反转步骤并使用您在步骤(1)中保存的版本。NTP的更高版本提供了更多选项,并修复了一些错误。如果您想要最新版本,请参阅下文

使用“池”指令

使用NTP 4.2.6p5(由最近的Meinberg版本安装),您可以在ntp.conf文件中保存行,并通过替换行来访问NTP认为最合适的服务器数量:

#使用池NTP服务器
服务器0.uk.pool.ntp.org iburst
服务器1.uk.pool.ntp.org iburst
服务器2.uk.pool.ntp.org iburst
服务器0.nl.pool.ntp.org iburst
服务器1.nl.pool.ntp.org iburst

单行:

#使用池NTP服务器
pool uk.pool.ntp.org maxpoll 6 iburst

NTP将确定它应该自动连接多少个服务器,它可能超过默认安装中的少数服务器。也许更重要的是NTP监视“池”中每个服务器的连接,如果服务器出现故障,它将尝试连接另一个服务器,从而维护大量工作服务器。pool指令为ntpq -pn输出引入了一个新行 - 不要被显示stratum-16的行拖延,这是正常的,并且该行下面的池服务器将显示正常连接。前四个服务器是我的网络的本地服务器,以及.POOL以下的服务器。线路来自广域网上的互联网。这是来自Windows-7/32系统,其中抖动限制在最小值0.977毫秒。maxpoll 6如果  在配置中,可以解决某些版本的Windows的不同问题,其中系统调用限制了可以设置时钟速率的精度。

技术分享 
 

从源头构建NTP的配方

关于从源代码重建NTP的一些注意事项。可能是我的系统特有的,可能是不完整的。通常情况下,你会不会 需要重新编译源,所以请把这个节为指导,并指出 只有,和防弹一步一步的指示。祝好运!

要求:

我该怎么安装?

首先下载Visual C ++编译器。下载整个Visual Studio 2010 Express CD(作为ISO文件)可能更好,因为您可能希望稍后重新安装,当Microsoft撤销此版本时,或者您可能想要尝试其他一些组件。将编译器安装到默认位置,除非系统驱动器上的空间紧张。

接下来,下载并安装OpenSSL。您需要完整的16.9 MB安装,以便您可以获取用于编译程序的源文件以与OpenSSL一起运行。但是,您不需要安装完整的OpenSSL进行编译,只需要用于软件开发的文件,因此当被问及是否应将二进制文件复制到Windows系统目录时,请回答“否”。安装后,查看为OpenSSL设置了哪些环境变量。在另一台PC上的第二次安装中,我没有看到这些设置,并且必须手动设置它们。你需要至少两个,在我的第一个系统上,这些是:

OPENSSL_INC = d:\工具\ OpenSSL的\ OpenSSL.1.0.0c \ inc32
OPENSSL_LIB = d:\工具\ OpenSSL的\ OpenSSL.1.0.0c \ out32dll

在第二台PC上,我安装到C:\ Tools \ OpenSSL并需要以下内容:

OPENSSL_INC = C:\工具\ OpenSSL的\ lib中
OPENSSL_LIB = C:\工具\ OpenSSL的\ BIN

编译将通过引用这些环境变量来查找OpenSSL文件。%OPENSSL_INC%目录包含一个子目录“openssl”,其中包含以“aes.h”开头的文件。找到该目录并获取副本。%OPENSSL_LIB%目录包含带有“aep.dll”作为第一个或第二个文件的文件。我在我的第一台PC上做的是将已安装的OpenSSL目录中的文件复制到我之前安装的目录中。  

在第一台PC上,NTP编译还需要将OpenSSL安装中的几个库定义文件放在out32dll目录中。在OpenSSL安装树中找到文件:libeay32.lib和ssleay32.lib,并将它们复制到out32dll目录。然后也备份该目录。一旦有了自包含,填充的%OPENSSL_INC%和%OPENSSL_LIB%目录,就可以卸载OpenSSL。我怀疑我缺乏C / C ++经验可能导致我对安装目录或%OPENSSL_LIB%环境变量做出错误的选择。

最后,您可以下载源代码。它将采用6 MB UNIX压缩存档的形式,例如:ntp-dev-4.2.7p326.tar.gz。我发现解压缩这个最简单的方法是将它发送到7-zip文件管理器,它显示为一个未知属性的文件,双击该文件,它变成7-Zip文件管理器中的目录,然后只需将该目录拖到打开的Windows资源管理器窗口中的所需位置即可。在我的例子中,我想把源代码放到D:\ Tools \中,所以在拖放后我最终得到了一个目录:

d:\工具\ NTP-dev的\ NTP-DEV-4.2.7p326 \

编译

NTP源代码已准备好在Visual Studio 2005,2008和2013中编译,但不是2010年。但是,这不是问题,因为VS 2010会将.SLN(解决方案)文件转换为新格式。找到文件:

d:\工具\ NTP-dev的\ NTP-DEV-4.2.7p326 \端口\ WINNT \ VS2008 \ ntp.sln

然后双击它。如果您安装了多个VS2010产品,则可能需要右键单击ntp.sln文件并选择:使用Visual C ++打开。此时,Visual Studio将邀请您转换项目,因此允许它这样做。应该没有错误。在Visual Studio的顶部有三个下拉列表。在第一个下拉列表中,选择“Release”(在发布版本或调试版本之间进行选择)。第二个应该是“Win32”,第三个将取决于你的上次搜索。然后,从Debug菜单中选择Build Solution(或者按F7 - 作为Delphi的人我更习惯按F9!)。几分钟后(在Delphi中会是几秒钟),您应该收到一条消息“==构建:9成功,0失败,0最新,0跳过==”或类似。如果你收到错误,我是最后一个问的人!抱歉!

安装新编译的版本

新文件将在以下位置创建:

d:\工具\ NTP-dev的\ NTP-DEV-4.2.7p326 \端口\ WINNT \ VS2008 \ Win32的BIN \发布\

如果您无法自己编译NTP,可以在此处下载最近的现成.exe文件集下载后,请务必右键单击“属性”,“取消阻止.zip文件”,然后将文件复制到临时目录中。

按类型对该目录进行排序可能是最方便的(单击Type列标题),您将看到6个.EXE文件和一个.DLL。可能有更多或更少的.EXE文件。我自己的做法是:

  • 使用服务管理器停止NTP
  • 将新的ntp * .exe文件从Release复制到我的.. \ ntp \ bin \目录
  • 使用服务管理器启动NTP

事实上,我这么做是为了完成任务的批处理文件,需要在Windows Vista及更高版本中以管理员身份运行。该文件的核心是:

设置DEST =“C:\ Tools \ NTP \ bin \”
net stop ntp
复制ntpd.exe%DEST%
复制ntpdate.exe%DEST%
复制ntpdc.exe%DEST%
复制ntp-keygen.exe%DEST%
复制ntpq.exe%DEST%
net start ntp
超时20
ntpq -crv -pn

我用这种方式编码 - 使用%DEST% - 因为我在每个运行NTP的系统上都有类似的文件。我可以根据特定PC的需要设置DEST,保持文件的大部分不变。在实践中,如果您保持在相同的主要版本(即4.2.7)中,单独复制ntpd.exe可能就足够了。我的实际文件也有一些日志记录。超时命令产生的20秒延迟之后,文件末尾的ntpq调用检查更新是否产生了工作ntp 

如果在Windows XP上运行,则timeout命令不可用,可以替换为:

ping -n 20 127.0.0.1

OpenSSL版本问题

早期版本的Meinberg NTP与OpenSSL 0.9.8以及更高版本1.1.0c一起发布。但是,我们发现如果使用0.9.8k进行编译,生成的NTP可执行文件将无法在具有1.1.0c DLL的系统上运行,反之亦然。工作折衷似乎是获得版本1.0.0c OpenSSL,因为生成的.EXE文件将在具有OpenSSL DLL的系统上运行。感谢Dave Hart,我设法找到了这个版本的副本,我已放在这里

Windows 2000的一个问题

使用VS 2010编译的程序不能在Windows 2000上运行。

修复NTP 4.2.7p349-356所需的内容

在NTP 4.2.7p349到4.2.7p356之间,需要对两个错误自动生成的文件进行小编辑。这里描述修复程序
 
 

为何选择NTP?

人们有时会问为什么他们应该使用这个NTP软件,而不是Windows内置的W32Time服务,或其他所谓的“原子时间”程序。

  • NTP使用多个服务器,并根据连续监控自动选择最佳服务器。如果服务器出现故障,则选择另一个服务器而无需用户干预。相比之下,W32Time与许多时钟程序一样,只使用一台服务器。
  • NTP只在需要时频繁地与服务器联系,每分钟一次,每17分钟一次。默认情况下,W32Time每周仅与服务器联系一次,因此您的PC可能会在更正之间分钟数!
  • 来自Meinberg安装的NTP将尝试使用位于您附近的池服务器以获得更好的性能,而不是位于非洲大陆的服务器。
  • NTP一旦设置即作为服务运行 - 它甚至会在您从PC注销时保留时间。
  • NTP更加准确:
    • NTP改变时钟速率,以及最初设置时钟时间,以便时钟在校正之间保持尽可能接近UTC。
    • 一旦NTP运行,时间不是常规步骤,而是顺利调整。
    • 时间通常不会倒退。
    • 无需用户干预即可处理闰秒,无需踩踏PC的时钟。
    • 即使在Windows上,也可以通过适当的配置实现低至毫秒级的精度 - 某些软件需要。
  • 您可以将自己的时间源与NTP一起使用,例如无线电时钟或 GPS接收器,然后它将独立于互联网连接工作,例如当您在外地时。
  • 您可以在许多操作系统上运行NTP,包括Windows,Linux,FreeBSD和Mac OS,因此无需重新学习管理和监控NTP专业知识。
  • NTP提供全面的性能检查,其他程序通常不提供。如果需要,可以从中心点跨网络进行监控。以下是自动NTP监控的示例
  • NTP是开源软件,100%符合互联网协议的网络时间。

 

前进的下一步 - 您自己的精确时间服务器

已经意识到安装NTP的好处,您可能想知道在互联网发生故障时保持精确的时间,或者在没有互联网连接的PC上,或者您希望您的PC保持比NTP标准更接近的时间?答案是设置您自己的Stratum-1参考服务器,您可以使用Windows,Linux或FreeBSD来完成此操作不需要额外的软件,因为NTP安装既可以充当远程服务器的客户端,也可以充当本地PC客户端的服务器本身。NTP是一个非常小的负载,因此您可以在现有PC上作为额外的运行它,而不会影响可能在那里运行的工作。您所需要的只是一个输出PPS(每秒脉冲数)信号的GPS设备,即使是当今GPS定时设备的最低成本,这些信号通常精确到几微秒。对于低成本设备,我推荐Sure Electronics GPS评估板,我已经写了一个关于如何使用Sure板的页面这需要大约25英镑(35美元),包括磁性天线和USB引线,因此它不太可能破坏银行!我的Raspberry Pi NTP服务器上列出了替代品 页面,您将获得制作Raspberry Pi NTP服务器的乐趣!

一旦您的网络中有一台精确的PC,您就可以将其他PC与其他局域网或无线连接同步,并且与仅使用Internet的同步配置相比,所有PC都具有更高的准确性。请注意,您可能需要设置您的防火墙软件,这样比你的主服务器上的其他PC可以访问NTP -设置NTP允许所描述的入站访问这里要进行测试,请确保您可以运行:  ntpq -pn <my-time-server>  来自客户端PC。如果您收到超时响应,可能是防火墙问题。当PC只与LAN服务器通信时,您可以通过更频繁地轮询本地参考时钟来使它们更加精确,并通过不那么频繁地轮询它们来减轻Internet服务器上的负载,因此您可以使用配置文件,例如:

#使用本地层1服务器
服务器my-time-server iburst maxpoll 5更喜欢

#使用池NTP服务器
pool uk.pool.ntp.org minpoll 10 iburst

您当地的精确PC的名称或IP地址替换我的时间服务器这样的配置使得PC每32秒(2 ** 5)轮询本地层1服务器,但仅每1024秒(2 ** 10)轮询一次因特网服务器。但是,您应该将Internet服务器保留为备份,以防您的本地NTP服务器出现故障或丢失GPS锁等。为什么不将它作为下一个项目?
 

运行可公开访问的NTP服务器

如果您正在运行可从公共Internet访问的服务器 - 也许您正在为NTP池项目做出贡献- 您应该采取一些简单的预防措施来确保您的服务器不会被用作攻击其他PC的源。请注意,这不适用于位于本地PC上的大多数最终用户客户端,您需要在防火墙或路由器中专门打开一个端口,以允许公共传入的未经请求的UDP端口123数据包进入您的本地网络。如果您使用的是最新版本(4.2.8p1或更高版本),则表示您已受到保护。以下通知解释了更多:
 

强烈建议NTP用户立即采取措施,确保他们的NTP守护程序不易被用于反射拒绝服务(DRDoS)攻击。有关漏洞和缓解详细信息,请参阅NTP安全通知,有关详细信息,请参阅Network Time Foundation博客(2014年一月)

 

 

 

 

 

 

 

转自:https://www.cnblogs.com/jinjiangongzuoshi/p/3773879.html

 

找了很多的资料,都没有windows做时间服务,linux同步windows的时间的,最后自己找了一些软件,终于搞定了,写出来给大家共享,以免大家多走弯路

首先在http://www.meinberg.de/english/sw/index.htm
下载了一个windows的NTP服务程序:ntp4171.zip
windows 192.168.1.32
1.安装是提示设置服务器地址,我设置的本机widows机器的IP
2.ntpd的控制在:
控制面板->;管理工具->;组件服务-NetworkTimeProtocol
3.可以启动ntpd守护进程保持时间同步
4.在C:\WINNT目录下有个ntp的配置文件ntp.conf
设置为:
server 127.127.1.0 prefer
fudge 127.127.1.0 stratum 10
5.确定ntp是否工作: ntpq -p

linux和Windows同步,我用的是RedHat 9.0
执行命令:ntpdate 192.168.1.32
你就会发现你的时间变化了,和192.168.1.32的时间一样
如果执行命令出现一下错误
1.提示:7 Dec 19:24:55 ntpdate[2120]: the NTP socket is in use, exiting
这个是你linux机器上已经存在这个进程,输入:ps -ef | grep ntpd
Kill掉ntp的进程

2.提示:No Server suitable for synchronization found
这个是最容易出现的问题,比较常见的是配置好服务器并启动服务器进程后,马上
启动客户进程,那么客户进程就会报错。解决方法是,在大约3-5分钟以后启动进程就行
我想每隔10分钟就和Windows服务同步时间
1.创建自己的一个crontab文件,随便建立一个文件date.cron,首先可以使用任何文本
编辑器建立一个新文件,然后向其中写入需要运行的命令和要定期执行的时间。
vi date.cron加入下面要运行的命令和要定期执行的时间
*/10 * * * * /usr/sbin/ntpdate 192.168.1.32
然后存盘退出
2.使用crontab命令来安装这个文件,使之成为该用户的crontab文件。键入:
crontab date.cron
这个文件已经建立好了
3.使用命令:
crontab -l (查看安排的作业序列)可以看到刚才的作业
如:
[root@NXD-TEST root]# crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (date.cron installed on Tue Dec 7 18:22:42 2004)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
*/10 * * * * /usr/sbin/ntpdate 192.168.1.32
现在就OK了,每隔10分钟Linux就和服务端同步一次。

 

posted on 2019-07-16 10:25  明净  阅读(7876)  评论(0编辑  收藏  举报