Ntp服務

對於企業來說,當你有成百上千的計算機,都不能直接連接互聯網,時間不統一影響業務,如果一臺一臺的修改,那不得累死人啊。這時搭建一個自己的NTP服務器就顯出它的優勢了。

下面我們就來學習一下如何搭建自己的NTP時間服務器。

安裝方法有:

1、RPM安裝

2、YUM安裝

3、源碼編譯安裝

相關命令:

date    修改和顯示日期和時間的命令。

hwclock    將當前系統時間寫入CMOS的命令,只有root用戶纔可以使用。

ntpd     NTP服務的守護進程文件,需要先啓動它才能提供NTP服務。

ntpdate     客戶端時間同步

配置NTP

# vi /etc/ntp.conf

#========權限控制============
restrict default kod nomodify notrap nopeer noquery     拒絕IPV4用戶
restrict -6 default kod nomodify notrap nopeer noquery   拒絕IPV6用戶
restrict 210.72.145.44 授權國家授時中心服務器訪問本地NTP       
restrict 133.100.11.8  授權133.100.11.8訪問本地NTP
restrict 127.0.0.1
restrict -6 ::1
restrict 192.168.100.0 mask 255.255.255.0 nomodify     本地網段授權訪問
#=========源服務器===========
server 210.72.145.44 prefer   指定上級更新時間服務器,優先使用這個地址
server 133.100.11.8
#=========差異分析===========
driftfile /var/lib/ntp/drift
keys    /etc/ntp/keys

# service ntpd start    RPM和YUM安裝的啓動方式

#/usr/local/ntp/bin/ntpd -c /etc/ntp.conf -p /tmp/ntpd.pid   源碼編譯安裝的啓動方式

ntpd啓動後,客戶機要等幾分鐘再與其進行時間同步,否則會提示“no server suitable for synchronization found”錯誤。

# netstat -tlunp | grep ntp       如果看到123端口,說明ntp服務成功啓動。

# ntpstat    查看ntp服務器與上級服務器是否通訊

# ntpq –p   查看本地NTP與上級服務器的通訊情況

客戶端每次手動更新太麻煩寫進計劃任務 一切ok

0 1 * * * /usr/sbin/ntpdate 192.168.100.2 ,/sbin/hwclock -w

報錯說明

當用ntpdate -d 來查詢時會發現導致 no server suitable for synchronization found 的錯誤的信息有以下2個: 

錯誤1.Server dropped: Strata too high

在ntp客戶端運行ntpdate serverIP,出現no server suitable for synchronization found的錯誤。

在ntp客戶端用ntpdate –d serverIP查看,發現有“Server dropped: strata too high”的錯誤,並且顯示“stratum 16”。而正常情況下stratum這個值得範圍是“0~15”。

這是因爲NTP server還沒有和其自身或者它的server同步上。

以下的定義是讓NTP Server和其自身保持同步,如果在/ntp.conf中定義的server都不可用時,將使用local時間作爲ntp服務提供給ntp客戶端。

server 127.127.1.0 fudge

127.127.1.0 stratum 8

在ntp server上重新啓動ntp服務後,ntp server自身或者與其server的同步的需要一個時間段,這個過程可能是5分鐘,在這個時間之內在客戶端運行ntpdate命令時會產生no server suitable for synchronization found的錯誤。

那麼如何知道何時ntp server完成了和自身同步的過程呢?

在ntp server上使用命令:

# watch ntpq -p


出現畫面:

Every 2.0s: ntpq -p Thu Jul 10 02:28:32 2008

remote refid st t when poll reach delay offset jitter

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

192.168.30.22 LOCAL(0) 8 u 22 64 1 2.113 179133. 0.001

LOCAL(0) LOCAL(0) 10 l 21 64 1 0.000 0.000 0.001

注意LOCAL的這個就是與自身同步的ntp server。

注意reach這個值,在啓動ntp server服務後,這個值就從0開始不斷增加,當增加到17的時候,從0到17是5次的變更,每一次是poll的值的秒數,是64秒*5=320秒的時間。

如果之後從ntp客戶端同步ntp server還失敗的話,用ntpdate –d來查詢詳細錯誤信息,再做判斷。


錯誤2.Server dropped: no data
從客戶端執行netdate –d時有錯誤信息如下:

transmit(192.168.30.22)

transmit(192.168.30.22)

transmit(192.168.30.22)

transmit(192.168.30.22)

transmit(192.168.30.22)

192.168.30.22: Server dropped: no data

server 192.168.30.22, port 123

.....
28 Jul 17:42:24 ntpdate[14148]: no server suitable for synchronization found

出現這個問題的原因可能有2:

1.檢查ntp的版本,如果你使用的是ntp4.2(包括4.2)之後的版本,在restrict的定義中使用了notrust的話,會導致以上錯誤。

使用以下命令檢查ntp的版本:

# ntpq -c version


下面是來自ntp官方網站的說明:
The behavior of notrust changed between versions 4.1 and 4.2.

In 4.1 (and earlier) notrust meant "Don't trust this host/subnet for time".

In 4.2 (and later) notrust means "Ignore all NTP packets that are not cryptographically authenticated." This forces remote time servers to authenticate themselves to your (client) ntpd

解決:

把notrust去掉。


2.檢查ntp server的防火牆。可能是server的防火牆屏蔽了upd 123端口。

可以用命令

#iptables  INPUT -p udp -m udp --dport 123 -j ACCEPT

如果覺得麻煩就直接把防火牆停掉

#service iptables stop

來關掉iptables服務後再嘗試從ntp客戶端的同步,如果成功,證明是防火牆的問題,需要更改iptables的設置。

 

 

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章