服务器 频道

网管实战:Linux时间服务器配置(下)

    【IT168 专稿】上篇(点击阅读)我们理论上介绍了NTP 服务器的原理、协议和工作模式。下面笔者介绍如何在Linux 异构网络中配置时间服务器、以及在Linux 、Windows 客户端的应用。

一、 配置Linux异构网络下的ntp时间服务器

    1. 软件下载安装

    以源代码为例

    #/tmp/wget http://ntp.buptnet.edu.cn/ntp_chinese/down/server/ntp-4.2.0.tar.gz
    # tar -zxvf ntp-4.2.0.tar.gz –C /usr/local/src;cd /usr/local/src/ntp-4.2.0
 
    2. 开始设定参数、编译与安装:

    #./configure --prefix=/usr/local/ntp --enable-all-clocks --enable-parse-clocks
    make clean ; make
    make check
    make install

    安装完成。

二、理解NTP服务的配置文件

    1.NTP软件包的结构和相关命令

    NTP服务的配置文件包括四个文件如表2 。

表2 NTP服务的配置文件
 
    与 NTP 及系统时间有关的执行文件包括几个文件如表3 。
表3 与 NTP 及系统时间有关的执行文件
    说明:Linux 时钟类型在分类和设置上却和Windows大相径庭。和 Windows不同的是,Linux将时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟两种。系统时间是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的那个主板硬件时钟,这个时钟可以在BIOS的“Standard BIOS Feture”项中进行设置。当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。

    2.理解NTP服务端的设置文件/etc/ntp.conf

    关于权限设定部分

    权限的设定主要以 restrict 这个参数来设定,格式如下:
    restrict IP地址 mask 子网掩码 参数
    其中 IP 可以是IP地址,也可以是 default ,default 就是指所有的IP
参数有以下几个:
    ignore :关闭所有的 NTP 联机服务
    nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。
    notrust :客户端除非通过认证,否则该客户端来源将被视为不信任子网
    noquery :不提供客户端的时间查询
    注意:如果参数没有设定,那就表示该 IP (或子网)没有任何限制。

    用server这个参数设定上级时间服务器,格式如下:
    server IP地址或域名 [prefer]
    IP地址或域名就是我们指定的上级时间服务器,如果 Server 参数最后加上 prefer,表示我们的 NTP 服务器主要以该部主机时间进行校准。

    driftfile格式如下:
    driftfile 文件名
    在与上级时间服务器联系时所花费的时间,记录在driftfile参数后面的文件内。
    注意: driftfile 后面接的文件需要使用完整的路径文件名,不能是链接文件,并且文件的权限需要设定成 ntpd守护进程可以写入。

    3.ntp.conf配置文件实例:

 以互联网的时间服务器为时间服务器的时钟
    设置要求:以time.nist.gov 为时间服务器,在ntp.conf中增加以下内容:
    restrict default ignore # 关闭所有的 NTP 要求封包
    restrict 192.168.1.0 mask 255.255.255.0 notrap nomodify
    server time.nist.gov  #设置时间服务器
    server 127.127.1.1              #开启内部递归网络接口 lo
    fudge  127.127.1.1 stratum 10 refid NIST   # LCL 不同步
    driftfile /etc/ntp.drift       
    logfile   /var/log/ntp.log    
    Broadcastdelay  0.008 #广播延迟时间#

    以内部ntp服务器为数据服务器时钟
    设置要求:不对 Internet 提供服务,仅对内部子网 192.168.0.0/24 提供服务,内部子网的客户端不能修改NTP服务器的时间参数。

    在ntp.conf中增加以下内容:

    restrict default ignore # 关闭所有的 NTP 要求封包
    restrict 127.0.0.1   # 开启内部递归网络接口 lo
    restrict 192.168.0.0 mask 255.255.255.0 nomodify #在内部子网里面的客户端可以 进行网络校时,但不能修改NTP服务器的时间参数。
    server 198.123.30.132   #198.123.30.132作为上级时间服务器参考
    restrict 198.123.30.132 #开放server 访问我们ntp服务的权限
    driftfile /var/lib/ntp/drift
    broadcastdelay  0.008 #广播延迟时间#

    4.其他设置工作:

 保存退出后。启动NTP服务service ntpd start

 如果想每次系统启动,NTP服务自动启动,请输入下面命令:
chkconfig -level 35 ntpd on

 打开iptables防火墙123端口
    NTP服务的端口是123,使用的是udp协议,所以NTP服务器的防火墙必须对外开放udp 123这个端口。方法如下,使用以下规则:
    #/sbin/iptables -A INPUT -p UDP -i eth0 -s 192.168.0.0/24  \
    > --dport 123 -j ACCEPT
    注意:Ntpd启动的时候通常需要一段时间进行时间同步,所以在ntpd刚刚启动的时候还不能正常提供时钟服务,最长大概有5分钟吧,如果超过了这个时间请检查一下您的配置文件。

    5.查看ntp服务器工作情况

    通常我们使用命令查看123端口和ntp系统进程判断ntp服务器是否工作正常。
    命令如下:
    netstat -unl | grep 123 #查看123端口,操作结果如图1  
 

图1 使用命令查看123端口

    ps -ef|grep ntp #查看ntp进程是否启动,操作结果如图2  
 
图2 使用命令查看ntp系统进程

    6.监控ntp服务器

    ntpq用来监视ntpd操作,使用标准的NTP模式6控制消息模式,并与NTP服务器通信。
    ntpq -p查询网络中的NTP服务器,同时显示客户端和每个服务器的关系,
    例如: 执行命令: ntpq –p后,输出结果为:
    ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
    =================================
    *time-A.timefreq .ACTS.           1 u  152 1024  377   43.527  -11.093   3.982
    +clock.isc.org   204.123.2.5      2 u  230 1024  377   67.958   -7.729   0.071
     time-a.nist.gov .ACTS.           1 u  323 1024  377   58.705  994.866 999.084
    “* ”:响应的NTP服务器和最精确的服务器。 “+”:响应这个查询请求的NTP服务器。    “blank(空格)”:没有响应的NTP服务器。 “remote” :响应这个请求的NTP服务器的名称。  “refid ”:NTP服务器使用的更高一级服务器的名称。 “st”:正在响应请求的NTP服务器的级别。 “when”:上一次成功请求之后到现在的秒数。 “poll”:当前的请求的时钟间隔的秒数。 “offset”:主机通过NTP时钟同步与所同步时间源的时间偏移量,单位为毫秒(ms)。

三、Linux NTP客户端的使用

    1.Linux系统使用命令行配置:

    在Linux 上面进行网络校时非常简单,执行 ntpdate 即可:
    ntpdate 192.168.0.1 #192.168.0.1是NTP服务器的IP
    不要忘了使用hwclock命令,把时间写入bios
    hwclock -w
    如果想定时进行时间校准,可以使用crond服务来定时执行。
    编辑 /etc/crontab 文件
    加入下面一行:
    30 8 * * * root /usr/sbin/ntpdate 192.168.0.1; /sbin/hwclock -w #192.168.0.1是NTP服务器的IP地址
    然后重启crond服务
    service crond restart
    这样,每天 8:30 Linux 系统就会自动的进行网络时间校准。

    2. 桌面环境下配置方法

    可以使用图形化的时钟设置工具,如RHEL 4.0中的日期与时间设置工具,也可以在虚拟终端中键“redhat-config-time”命令,或者选择“K选单/系统设置/日期与时间”来启动日期时间设置工具。使用该工具不必考虑系统时间和硬件时间,只需从该对话框中设置日期时间,可同时设置、修改系统时钟和硬件时钟。如图3 。
 

图3 使用图形化的时钟设置工具

四.Windows XP、2003、2000系统使用NTP进行时间校准:

    利用操作系统提供的校时服务(Windows XP、Windows 2003适用):

    1、 双击任务栏右下角“时间”,打开 [ 时间和日期 属性 ] 设置对话框,如图4。
 
  

图4打开 [ 时间和日期 属性 ] 设置对话框

                                                      
    2、  选择 [ Internet时间 ] 标签, 选中 [ 自动与Internet时间服务器同步 ] 选项,在 [ 服务器 ] 中填入时间服务器的ip地址或者域名。点击 [ 应用 ] 并按 [ 立即更新 ] 可直接同步。如图5 。
图5 进行时间同步

    利用操作系统提供的校时服务(Windows 2000适用):
 
    1、  在 [ 控制面板 ] 中打开 [ 管理工具 ],再打开 [ 服务 ] ,在服务中找到 [ Windows Time ]
 
    2、  双击服务名称,在打开的“Windows Time的属性”中设置“启动类型”为“自动”,再按下启动按钮。如图6 。
 
图6 选择Windows Time的属性为自动启动

    3、 然后切换到命令行下在DOS命令行下让Windows使用时间服务器:

    net time /setsntp:xxx.xxx.xxx.xxx (时间服务器域名或者ip地址)
    要想立刻与时间服务器同步需要重启时间服务,相应的命令是:
    net stop w32time
    net start w32time
 

图7 通过命令行实现时间同步

    以后你的机器就会有一个准确的时间。说明:W32tm.exe 是用来同步本地计算机与远程计算机或域的时间的类似命令。由于其灵活性,W32tm.exe 是时间同步的首选方法。默认情况下Windows 2000的时间服务w32time是关闭的。Windows 包含 W32Time,它是 Kerberos 身份验证协议所需的时间服务工具。Windows 时间服务的目的是确保组织中运行 Microsoft Windows 2000 或更高版本的所有计算机都使用同一个时间。

五、windows 98/me/NT客户端使用工具软件Automachron实现时间同步

    Windows 98/nt可以使用Automachron软件:

    1. 下载achron5,链接:ftp://ftp.agri.sjtu.edu.cn/pub1/Internet/time/achron5.exe
    2.安装软件;
    3.运行:程序-->Automachron-->Automachron;
    4.右键单击任务栏右下脚选取Automachron图标-->Properties-->Host-->Network Host;
填入ntp.sjtu.edu.cn,Sync at startup前复选框打勾,Run at startup前复选框打勾
    系统每次启动后均会自动同步时间,如需手动同步,点击Sync按钮即可,如图8 。
 

图8 使用工具软件Automachron实现时间同步

六、总结:

    随着网络规模、网上应用不断扩大,网络设备与服务器数量不断增加。网络管理员在查看众多网络设备日志时,往往发现时间不一,即使手工设置时间,也会出现因时区或夏令时等因素造成时间误差;有些二层交换机重启后,时钟会还原到初始值,需要重新设置时间。对于核心网络设备和重要应用服务器而言,它们之间有时需要协同工作,因此时间的准确可靠性显得尤为重要。

    NTP服务的配置及使用都非常简单,并且占用的网络资料非常小。NTP时间服务器目前广泛应用于网络安全、在线教学、数据库备份等领域。企业采取措施同步网络和设备的时间非常重要,但确保安全设备所产生的日志能提供精确的时间更应当得到关注。本文介绍在Linux操作系统下如何建立NTP时间服务器、利用NTP时间服务器配置实例,供Linux 网管员参考建立。

0
相关文章