找了很多的资料,都没有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 | grepntpd
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文件。键入:
crontabdate.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 vixieExp $)
*/10 * * * * /usr/sbin/ntpdate 192.168.1.32
现在就OK了,每隔10分钟Linux就和服务端同步一次。
====================================================================
1、Linux主机做时间服务器(以RedHat9.0为例)
第一步:检查是否已经安装有ntp软件包。输入“rpm -qa|grep ntp”,如果已经安装应该显示“ntp-4.1.2-0.rc1”。
第二步:安装ntp软件,从ftp://ftp.redhat.com下载rpm包,输入“rpm -ivh ntp-xxx.rpm”执行安装。
第三步:配置ntp服务。备份原/etc/ntp.conf文件后,输入以下内容
server pool.ntp.org
server pool.ntp.org
server pool.ntp.org
driftfile /etc/ntp/drift
三行server都设pool.ntp.org是为了提供连接冗余,当第一个地址连接失败时,后面的地址提供时间服务,注意这里的pool.ntp.org对应一组IP地址,由DNS随机分配。
第四步:启动ntp服务。输入“service ntp restart”。
为了保证以后Linux机启动后ntp服务能自动启动,还要输入“chkconfig ntpd on”。Linux下的ntp软件不但能自动与互联网上的时钟保持同步,同时本身已经是一台SNTP服务器了,可以供局域网内的电脑校对时间。建议启动 NTP服务后,先用date命令手工校正一下时间,以后系统会自动与互联网上的主时间服务器保持同步。ntp服务还有一个好处,如果当前系统的时间与标准时间有所误差,它不是马上把时间校正,而是逐步缩小与标准时间的误差,以免系统内部出现时间突变。
2、Windows2000、XP做时间服务器
第一步:指定主时间服务器。在DOS方式输入“net time /setsntp:pool.ntp.org”,这里我们指定pool.ntp.org是主时间服务器,也可以是其它地址。
第二步:开始与主时间服务器同步。先关闭windows time服务,再开启该服务。可以在“管理工具”的“服务”界面下完成,也可以以DOS方式输入“net stop w32time”、“net start w32time”。
第三步:设置电脑的Windows time服务的启动方式为自动。在“管理工具”的“服务”界面下完成。
注意这台windows主机不能加入任何域,否则无法启动windows time服务。此时,这台windows电脑已经是互联上主时间服务器的客户了,以后每次电脑启动时,都会自动与主时间服务器校对时间。如果网络不通,电脑也会过45分钟后再次自动校对时间。需要注意的是电脑的时钟与标准时间误差不能超过12小时,否则不能自动校对,而要手动校正了。
第四步:使这台电脑成为时间服务器,供局域网内部的电脑校对时间。用“regedit”打开注册表,把 “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParameters”中的 LocalNTP改为1即可。
3、Windows98做时间服务器
一般不推荐Windows98系统做时间服务器,而且win98本身也不含时间服务器功能,需要安装第三方软件。本文后面介绍的nettime软件(http://nettime.sourceforge.net/)是一个非常优秀的时间客户端软件,它可以工作在windows98、2000、XP 系统中,当选中“Allow other computers to sync to this computer”时,可以把这台电脑当做成时间服务器。
五、设置时间服务器的客户端
客户端的主要任务是连接到局域网内的时间服务器,以保持电脑的时钟与服务器同步。同样分Linux、Windows98、2000、XP几种情况介绍
1、LINUX主机
其实在上面介绍Linux系统中的ntp服务时,已经提到ntp时间服务时同时也是一个时间服务的客户端,只要把/etc/ntp.conf文件中的 “server pool.ntp.org”改为“server 内部时间服务器IP地址”即可。如不想使用ntp服务,也可使用ntp软件包中带来的ntpdate命令,只要手工执行“ntpdate 时间服务器IP地址”即可。如想每天自动对时,可以把这条命令放在cron中,注意在同一台电脑上ntp服务与ntpdate命令不能同时使用。
2、Windows2000主机
执行设置时间服务器时的前三步即可
3、WindowsXP主机
可以按Windows2000主机的方法设置,也可双击任务栏右下角的时钟图标,打开“日期时间属性”对话框,在“Internet时间”卡片上选中“自动与Internet时间服务器同步”,并在服务器上填入内部时间服务器的IP地址即可。
4、Windows98主机
需要安装第三方软件,自由(free)软件nettime是个不错的软件,它支持SNTP(UDP123)、TIME(TCP37)、TIME- UDP(UDP37)三种方法进行时间同步。软件操作简单,只要在上图的“Hostname or IP Address”中输入局域网内时间服务器的IP地址,“Protocol”中选SNTP即可。
当然在windows98电脑上执行“net time 机器名或IP地址 /set /yes”也可能与其它windows电脑同步时钟,前提是这些电脑在同一网段,并且安装有netbios协议。把该命令放在autoexec.bat 中,就可以做到开机自动对时了。
技术改变世界! --狂诗绝剑