2023年11月30日发(作者:)

简介:本文介绍了时间服务器常用的二种协议:SNTPTIME,并就局域网环境下各种

系统(LinuxWindows982000XP)时间服务器的设置分别进行了说明,最终实现整个局

域网环境下所有电脑时钟的同步与校准。

一、什么是网络时间服务

网络时间服务Net Time Service与网络文件下载服务FTP、网络浏览服务WWW等一样,

是一种网络服务,提供网络时间服务的电脑叫网络时间服务器。本文主要介绍一台电脑如何

通过网络获取上级时间服务器提供的标准时间,再服务于本局域网(当然也可以对外网,

需要映射内部服务器)使局域网内的所有电脑都能与服务器时间保持同步,时间误差一般

小于05秒。

TCP/IP协议中,用于同步时间的协议为NTP协议,NTP是一个跨越广域网或局域网的复

杂的同步时间协议,属于TCP/IP协议范畴。它是由美国德拉瓦大学的David LMills教授

1985年提出,除可以估算封包在网络上的往返延迟外,还可独立地估算计算机时钟偏差,

从而实现在网络上的高精准度计算机校时,用来在Internet上使不同的机器能维持相同时

间。时间服务器(Time Server)是利用NTP的一种服务器,通过它可以使网络中的电脑保

持时间同步,通常可获得毫秒级的精度。

SNTPSimple Network Time Protocol,简单网络时间协议)是NTP的一个子集,目的

是为了那些不需要NTP实现复杂性网络时间同步的主机。通常用于局域网上的若干台主机通

过互联网与其他的NTP主机同步时钟,接着再向局域网内其他客户端提供时间同步服务。

SNTP一般使用UDP123端号,Linux系统和Windows系统都支持它,是现在架设网络时间

服务器的主流协议。

Time Protocol RFC-868)协议是一种较简单的协议。此协议提供了一个独立于站点

的,机器可读的日期和时间信息。时间服务返回的是从190011日午夜到现在的秒数。

该协议通过TCPUDP37端口提供服务。Linux下的TIME服务提供该服务,Windows

统中较少使用。

现在网上的许多时间校准软件,有些支持SNTP协议、有些支持TIME协议,有些二者都

支持,我们在选择时要特别注意。另外在Windows系统的对等网中,还有使用net time

器名 /set /yes”命令使用NetBios协议进行时间校准,由于这种方法不支持混合网络和跨

网段网络,所以本文做介绍。

二、时间服务器的用途

也许有人认为电脑的时钟有点误差影响不大,其实这是非常错误的。电脑系统中的文件

保存、文件传输等等好多应用都是以电脑时钟为准。如果今后我们想进行文件查找、日志查

询,如果系统时钟不准,或同一网络中的电脑时间不同步,将给后续工作带有许多麻烦。

在许多备份软件、编译软件、FTP工具都是以文件保存时间为依据进行比较的,如果时间不

统一,将使这些软件难以正常工作。笔者就曾经碰到过类似这样的问题:例如由于系统时间

错误,某些论坛禁止登陆,MSN message登陆失败,许多应用软件不能使用等等一系列问题,

所以,电脑的时间还需引起大家的足够重视。

三、如何使局域网内的电脑时钟同步

首先要在互联网上寻找一台或几台专门提供时间服务的电脑(以下称为“主时间服务

器”),在百度和Google里搜索一下,时间服务器还是很多的,笔者推荐poolntporg

这个地址。其次设置局域网时钟服务器。选择单位中能上外网的一台电脑,让它与主时间服

务器同步,然后把它设为局域网内部的时间服务器(以下称为时间服务器)以后局域网内

所有电脑依它为准进行时间校对。

最后设置客户端。如果客户机为win2000XPLinux系统,不需要安装任何软件。

客户机为Win98系统时要根据时间服务器类型的不同而区别对待:如果时间服务器选用SNTP

协议进行时钟同步,则Win98机上需安装一个sntp客户端软件,如时间服务器由Windows

电脑通过netbios协议提供,则Win98上也不需要安装任何软件。

四、如何设置时间服务器

以下分LinuxWin98Win2000XP三种情况分别介绍,而且只介绍sntp服务的架设,

timeserver服务和netbios对时服务由于应用很少,在此不做介绍。

1Linux主机做时间服务器(以RedHat90为例)

第一步:检查是否已经安装有ntp软件包。输入“rpm -qa|grep ntp”,如果已经安装

应该显示“ntp-412-0rc1”。

第二步:安装ntp软件,可以从ftp//ftpredhatcom下载rpm包,输入rpm -ivh

ntp-xxxrpm”执行安装。

第三步:配置ntp服务。备份原/etc/ntpconf文件后,输入以下内容:

server poolntporg

server poolntporg

server poolntporg

driftfile /etc/ntp/drift

三行server都设poolntporg是为了提供连接冗余,当第一个地址连接失败时,

面的地址提供时间服务,poolntporg对应是一组IP地址,IPDNS随机分配,所以

域名重复输入无碍)

第四步:启动ntp服务。输入“service ntp restart”。

为了让Linux机启动后ntp服务能自动启动,还要输入“chkconfig ntpd on”。Linux

下的ntp软件不但能自动与互联网上的时钟保持同步,同时本身已经是一台SNTP服务器了,

可以供局域网内的电脑校对时间。建议启动NTP服务后,先用date命令手工校正一下时间,

以后系统会自动与互联网上的主时间服务器保持同步。ntp服务还有一个好处,如果当前系

统的时间与标准时间有所误差,它不是马上把时间校正,而是逐步缩小与标准时间的误差,

以免系统内部出现时间突变。

2Windows2000XP做时间服务器

第一步:指定主时间服务器。在DOS里输入“net time /setsntppoolntporg”,

这里我们指定poolntporg是主时间服务器。

第二步:与主时间服务器同步。先关闭windows time服务,再开启该服务。在DOS

输入“net stop w32time”、“net start w32time”。

第三步:设置电脑的Windows time服务的启动方式为自动,在“管理工具”的“服务”

界面下完成(xp系统默认是自动)。

注意:这台windows主机不能加入任何域,否则无法启动windows time服务。此时,

这台windows电脑已经是互联上主时间服务器的客户了,以后每次电脑启动时,都会自动与

主时间服务器校对时间。如果网络不通,电脑也会过45分钟后再次自动校对时间。需要提

醒的是电脑的时钟与标准时间误差不能超过12个小时,否则不能自动校对,只有手动校正

了。

第四步:使这台电脑成为局域网内的时间服务器。用“regedit”打开注册表,把

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W32Time/Parameters”中的

LocalNTP改为1即可。

3Windows98做时间服务器

一般不推荐Windows98系统做时间服务器,而且win98本身也不含时间服务器功能,

要安装第三方软件。本文后面介绍的nettime软件是一个非常优秀的时间客户端软件,它可

以工作在windows982000XP 系统中,当选中“Allow other computers to sync to this

computer”时,可以把这台电脑当做成时间服务器。

五、如何设置客户端

客户端的主要任务是连接到局域网内的时间服务器,以保持电脑的时钟与服务器同步。

同样分LinuxWindows982000XP几种情况介绍。

1LINUX主机

其实在上面介绍Linux系统中的ntp服务时,已经提到ntp时间服务时同时也是一个时

间服务的客户端,只要把/etc/ntpconf文件中的server poolntporg改为server

内部时间服务器IP地址”即可。如不想使用ntp服务,也可使用ntp软件包中带来的ntpdate

命令,只要手工执行“ntpdate 时间服务器IP地址”即可。如想每天自动对时,可以把这

条命令放在cron中,注意在同一台电脑上ntp服务与ntpdate命令不能同时使用。

2Windows2000主机

执行设置时间服务器时的前三步即可。

3WindowsXP主机

可以按Windows2000主机的方法设置,也可双击任务栏右下角的时钟图标,打开“日期

时间属性”对话框,Internet时间”卡片上选中“自动与Internet时间服务器同步”

并在服务器上填入内部时间服务器的IP地址即可。

4Windows98主机

需要安装第三方软件,nettime是个不错的软件,它支持SNTPUDP123TIMETCP37

TIME- UDPUDP37三种方法进行时间同步。软件操作简单,只要在上图的Hostname or IP

Address”中输入局域网内时间服务器的IP地址,“Protocol”中选SNTP即可。

当然在windows98电脑上执行“net time 机器名或IP地址 /set /yes”也可能与其它

windows电脑同步时钟,前提是这些电脑在同一网段,并且安装有netbios协议。把该命令

放在autoexecbat 中,就可以做到开机自动对时了。