在局域网中设置Linux时间服务器
一概述:
本文主要目的是简单介绍如何在局域网上设置一台
Linux时间服务器与互联网上的时间服务器同步并且如何使局域网上其它Linux及Windows客户向该Linux时间服务器同步。
二服务器设置
首先说明我们如何设置LAN上的时间服务器同互联网上的第一或者第二级时间服务器同步来保证精确的时间。
1.如何让LAN的时间服务器(第三级)与互联网上的时间服务器(第一或者第二级)同步
a.XNTP包,包含在大多数LinuxCD里面。
主页在http://www.eecis.udel.edu/~ntp/
你只需要在/etc/ntp.conf中设置server和driftfile两项参数即可,server项你可以从上面的主页中找公共的时间服务器域名。例如
serverrackety.udel.edu
serverumd1.umd.edu
serverlilben.tn.cornell.edu
driftfile/etc/ntp/drift
然后启动XNTPD后台程序
#/etc/rc.d/init.d/xntpdstart
b."getdate",随Slackware而来的小程序,推荐使用,大多数时候,我们对时间的精确性要求不是非常的苛刻,所以这个程序完全够用而且很方便。
下载ftp://metalab.unc.edu/pub/Linux/system/network/misc/getdate_rfc868-1.2.tar.gz
然后设置下面的scripts取名为/usr/local/sbin/get-date.sh
#!/bin/sh
timehosts="otc2.psu.eduwwvb.erg.sri.comntp.nasa.gov"
if/usr/local/bin/getdate-adjust10200$timehosts>/dev/null;then
/sbin/clock--systohc
fi
现在可以设置cronjob每小时进行同步
00-23***/usr/local/sbin/get-date.sh
2.如何使得LAN上其它linux/windows客户与该台服务器同步
a.如果该台时间服务器也是局域网上的Samba服务器,则对Windows来说,不需要安装任何时间同步软件,因为windows客户可以用
nettime\timeserver/set/yes来与之同步。可以放该命令在startup
中自次启动windows时自动同步
nettime命令利用NetbiosoverTCP/IP协议来同步时间
但仅对Windows客户有效,Linux客户无法使用。
b.如果服务器运行NTP后台服务程序,例如前面讲的XNTPD,则对
Windows:
可以安装下面的两个免费软件与服务器同步
http://home.att.net/~Tom.Horsley/ntptime.html(ntptime)
单一的后台程序,自动寻找LAN上的NTP服务器,可在控制面板中设置同步条件
http://nettime.sourceforge.net/(Nettime)
支持NTP(udp/123),time(udp/37),time(tcp/37)
Linux:
则可以用ntpdate(随XNTPD而来)运行作为cronjob与该局域网上的时间服务器同步。
c.如果该台服务器使用getdate与互联网上时间服务器同步,则
你可以设置/etc/inetd.conf,打开timeudp和timetcp服务,让linux/windows客户与之同步。对windows,你可以使用象上面介绍的Nettime软件。
对Linux客户,你可以用rdate-s运行作为cronjob与之同步
timestreamtcpnowaitrootinternal
timedgramudpwait.200rootinternal
Linux下的rdate-s命令使用time(37/tcp),Nettime你可以指定37/tcp或者37/udp
三FAQ
1.怎样确定nettime用的是NetbiosoverTCP/IP?
在Samba服务器上运行tcpdump
#/usr/sbin/tcpdumphost192.168.1.3
(192.168.1.3是windows客户端的IP地址)
2.怎样确定windowsNTP客户ntptime正在后台与LinuxNTP时间服务器同步?
在NTP服务器上运行
#tcpdumpudpport123
查看输出
默认是每五分钟ntptime向NTP服务器查询一次,你可以从主页上下载控制面板中的控制条件设置程序