背  景 

    當服務器多了,時間準確與否,一致與否是個大問題,雖然這個問題總是被忽略,但是統一一致的時間是很有必要的。下面說一下在局域網內配置Linux時間服務器的方法。


Linux下配置NTP服务器

一、前言:

    默认NTP服务端口:

    UDP/123

    本文配置的NTP工作模式:

使用client/server方式,该方式适用于一台时间服务器接收上层时间服务器的时间信息,并提供时间信息给下层用户。

 

二、安裝配置

   NTP时间服务器配置:

    yum install ntp ntpdate -y 即可!

    修改ntp.conf配置文件

    cp  /etp/ntp.conf /etc/ntp.conf.bak 


2.1 配置信息

    配置ntp,将Internet上的时间服务器作为内部标准时间来源,过程如下

    vi /etc/ntp.conf 只修改如下两行,把#号去掉即可

    restrict default kod nomodify notrap nopeer noquery


    restrict 127.0.0.1

    restrict -6 ::1


    restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap

    restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap


    #指定Internet上的时间服务器

    restrict 207.46.232.182 mask 255.255.255.255 nomodify notrap noquery

    server 207.46.232.182    (可以不寫)


    server 127.127.1.0    # local clock

    fudge 127.127.1.0 stratum 10

    keys /etc/ntp/keys


    #指定NTP服务器日志文件

    logfile /var/log/ntp

  

  2.2 啟動ntpd服務器

  /etc/init.d/ntpd restart 即可

(注意*: ntpd启动后,客户机要等几分钟再与其进行时间同步,否则会提示“no server suitable for synchronization found”错误。)


2.2 ntp服务的启动、暂停

    NTP属于system V服务,其启动、暂停相关命令如下:

   

    #启动 service ntpd start

    #停止 service ntpd stop

    #重新加载 service ntpd reload

    #查看当前启动状态 service ntpd status

    


2.3 ntp服务自动加载

    设置ntp服务下一次开机运行状态可通过命令配置

   

    #在运行级别2、3、4、5上设置为自动运行

    chkconfig ntpd on

    

    #在运行级别2、3、4、5上设置为不自动运行

    chkconfig ntpd off

    

    #在运行级别3、5上设置为自动运行

    chkconfig ntpd --level 35 on

    

    #在运行级别3、5上设置为不自动运行

    chkconfig ntpd --level 35 off


三、修改/etc/ntp/stpe-tickers文件,内容如下(当ntpd服务启动时,会自动与该文件中记录的上层NTP服务进行时间校对)

    207.46.232.182

    127.127.1.0

    

    修改/etc/sysconfig/ntpd文件,内容如下:

    #允许BIOS与系统时间同步,也可以通过hwclock -w 命令

    SYNC_HWCLOCK=yes


四、管理命令

   ntpq –p     #查看本机和上层服务器的时间同步结果

   ntptrace     #可以用來追踪某台时间服务器的时间对应关系

   ntpdate IP   #客户端要和NTP server进行时钟同步。

   /var/log/ntp/ntp.log   #查看ntp日志


[root@localhost ~]# ntpq -p     (NTP服務器端操作)

     remote           refid      st t when poll reach   delay   offset  jitter

==============================================================================

 dns1.synet.edu. 202.118.1.46     2 u   27   64    3   43.978  1510.45  32.059

 gus.buptnet.edu 29.252.179.249   3 u   29   64    3   26.162  1510.95  30.389

 LOCAL(0)        .LOCL.           8 l   28   64    3    0.000    0.000   0.000



remote: 它指的就是本地机器所连接的远程NTP服务器


refid: 它指的是给远程服务器(e.g. 193.60.199.75)提供时间同步的服务器


st: 远程服务器的层级别(stratum),由于NTP是层型结构,有顶端的服务器,多层的Relay Server再到客户端,所以服务器从高到低级别可以设定为1-16,为了减缓负荷和网络堵塞,原则上应该避免直接连接到级别为1的服务器的。


when: 我个人理解为一个计时器用来告诉我们还有多久本地机器就需要和远程服务器进行一次时间同步


poll: 本地机和远程服务器多少时间进行一次同步(单位为秒),在一开始运行NTP的时候这个poll值会比较小,那样和服务器同步的频率也就增加了,可以尽快调整到正确的时间范围.之后poll值会逐渐增大,同步的频率也就会相应减小。


reach: 这是一个八进制值,用来测试能否和服务器连接.每成功连接一次它的值就会增加


delay: 从本地机发送同步要求到服务器的round trip time


offset: 这是个最关键的值, 它告诉了我们本地机和服务器之间的时间差别,offset越接近于0,我们就和服务器的时间越接近


jitter: 这是一个用来做统计的值. 它统计了在特定个连续的连接数里offset的分布情况. 简单地说这个数值的绝对值越小我们和服务器的时间就越精确


備註:(當你再次執行 ntpq -p時將會看到下面的符號)


* 它告诉我们远端的服务器已经被确认为我们的主NTP Server,我们系统的时间将由这台机器所提供


+ 它将作为辅助的NTP Server和带有*号的服务器一起为我们提供同步服务. 当*号服务器不可用时它就可以接管


- 远程服务器被clustering algorithm认为是不合格的NTP Server


x 远程服务器不可用



五、NTP客户端的设置


1)LINUX做为客户端自动同步时间

  ntpdate IP #客户端要和NTP server进行时钟同步。(IP是NTP服務端)


  如果想定时进行时间校准,可以使用crond服务来定时执行。

  编辑crontab -e

  加入下面一行:

  */3 * * * * root /usr/sbin/ntpdate 192.168.1.66 &&/sbin/hwclock -w


2) 然后重启crond服务

service crond restart 

这样,每3分鐘 Linux 系统就会自动的进行网络时间校准。


crontab文件配置简要说明

1) 命令格式的前一部分是对时间的设定,后面一部分是要执行的命令。时间的设定我们有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下:

分钟 (0-59)

小時 (0-23)

日期 (1-31)

月份 (1-12)

星期 (0-6)//0代表星期天


2) 除了数字还有几个个特殊的符号就是“*”、“/”和“-”、“,”,“*”代表所有的取值范围内的数字,“/”代表每的意思,“*/5”表示每5个单位,“-”代表从某个数字到某个数字,“,”分开几个离散的数字。以下举几个例子说明问题:


每天早上6点:

0 6 * * *  command


每两个小时:

0 */2 * * *  command


晚上11点到早上8点之间每两个小时,早上八点:

0 23-7/2,8 * * * command


每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点:

0 11 4 * 1-3 command 


1月1日早上4点:

0 4 1 1 * command


3) 设置开机自动启动服务

运行setup或其它服务设置工具,将crond服务勾选上 

chkconfig --level 2345 crond on  定义在这几个系统运行级别上启用crond (系统安装完默认就是这个设置)。



解決NTP遇到問題的URL:http://rocolex.blog.163.com/blog/static/6844641020109654245378/