天天看點

RHCE實驗室NTP時間伺服器配置最終版

以RHCE實驗室為準,一個簡單的NTP時間伺服器标準配置如下:

伺服器端: 

首先修正下系統時間,并将系統時間寫進硬體時間裡 

date MMDDhhmmYYYY.ss;hwclock -w

vim /etc/ntp.conf

restrict default nomodify notrap noquery

restrict 127.0.0.1

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

server 127.127.1.0

fudge 127.127.1.0 stratum 0

客戶機端:

server 192.168.1.2

vim /etc/ntp/step-ticker

192.168.1.2

用戶端重新開機ntpd服務即可看到效果 service ntpd restart

※在授課過程發現,虛拟的linux的時間比真實機越走越慢,具體原因分析如下:

Linux 2.6核心裡把系統計時器的頻率加高到1000 Hz ,VMware沒辦法真的每隔1ms就報一次訊号給guestOS,是以guestOS裡的Linux 2.6無法确實接到計時器的訊号。本來這也不應該造成問題,不過2.6核心處理這個"tick loss"的程式有問題,以緻于guestOS裡的Linux 2.6系統時間走一秒會慢一秒;外面過了兩秒裡面隻過了一秒。具體解決方案也有:可以修改核心及安裝vmware-tools軟體包,均麻煩。

下面是我家裡的vmware5.5虛拟機(如果不能上外網的話,可以選擇内部ntp時間伺服器)

①直接用腳本解決不能對時的問題,腳本如下: /root/ntptime.sh

#!/bin/bash

while :

do

/usr/sbin/ntpdate ntp.api.bz >/dev/null 2>&1

sleep 30

done

放入背景執行 nohup sh ntptime.sh &  

②當然還是crontab出馬了,在這裡注意下腳本與crontab的差別,腳本可以控制到秒,而crontab隻能到分 vim /etc/crontab

*/1 * * * * root /usr/sbin/ntpdate ntp.api.bz >/dev/null 2>&1

效果很明顯,每隔一分鐘,系統自動對時,呵呵。

[root@ltos mail]# tcpdump -v host 192.168.0.154 and 221.130.196.230

tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

13:16:02.359384 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto: UDP (17), length: 76) yuhongchun027.com.ntp > 221.130.196.230.ntp: NTPv4, length 48

Client, Leap indicator: clock unsynchronized (192), Stratum 0, poll 4s, precision -6

Root Delay: 1.000000, Root dispersion: 1.000000, Reference-ID: (unspec)

   Reference Timestamp: 0.000000000

   Originator Timestamp: 0.000000000

   Receive Timestamp:    0.000000000

   Transmit Timestamp:   3464918162.358386999 (2009/10/19 13:16:02)

     Originator - Receive Timestamp: 0.000000000

     Originator - Transmit Timestamp: 3464918162.358386999 (2009/10/19 13:16:02)

13:16:02.511502 IP (tos 0x0, ttl 49, id 5224, offset 0, flags [none], proto: UDP (17), length: 76) 221.130.196.230.ntp > yuhongchun027.com.ntp: NTPv4, length 48

Server, Leap indicator: (0), Stratum 2, poll 4s, precision -18

Root Delay: 0.158142, Root dispersion: 0.027862, Reference-ID: clock.fmt.he.net

   Reference Timestamp: 3464917189.288964740 (2009/10/19 12:59:49)

   Originator Timestamp: 3464918162.358386999 (2009/10/19 13:16:02)

   Receive Timestamp:    3464918182.209876791 (2009/10/19 13:16:22)

   Transmit Timestamp:   3464918182.209906405 (2009/10/19 13:16:22)

     Originator - Receive Timestamp: +19.851489782

     Originator - Transmit Timestamp: +19.851519405

13:16:02.512579 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto: UDP (17), length: 76) yuhongchun027.com.ntp > 221.130.196.230.ntp: NTPv4, length 48

   Transmit Timestamp:   3464918162.512529999 (2009/10/19 13:16:02)

     Originator - Transmit Timestamp: 3464918162.512529999 (2009/10/19 13:16:02)

13:16:02.688528 IP (tos 0x0, ttl 49, id 5242, offset 0, flags [none], proto: UDP (17), length: 76) 221.130.196.230.ntp > yuhongchun027.com.ntp: NTPv4, length 48

※另外值得注意的是,盡管時間是一件很麻煩的事(還有UTC與GMT、系統時間與硬體時間的差別),但其實在生産環境中,這件事很簡單--伺服器投入運作之前必須用crontab對時;如果時間不同步的話是件很麻煩的事,我維護的dovecot伺服器經常因為時間問題出問題,還有FreeBSD下的jail虛拟機。是以時間的同步是linux/unix一件非常重要的事情,希望大家注意。

本文轉自 撫琴煮酒 51CTO部落格,原文連結:http://blog.51cto.com/yuhongchun/502119,如需轉載請自行聯系原作者

繼續閱讀