用NTP來同步伺服器時間
本文介紹了在Linux下使用NTP協定通過網絡來同步系統時鐘。
二、NTP簡介
Network Time Protocol(NTP)是一種網絡協定,用來使你的計算機系統時間與準确的時間源同步。Internet上有一組“1級”(使用原子鐘時間)和“2級”(可接受的可靠性和準确性)伺服器可以允許其它計算機與它們同步時間。這些伺服器的清單可以在以下位址找到:
http://www.eecis.udel.edu/~mills/ntp/servers.html
一般區域網路中使用一台伺服器同“1級”或“2級”伺服器同步時間,區域網路中的其它裝置再同這台伺服器同步時間。對于一些需要協同操作的應用,使用NTP是很好的選擇。
三、安裝NTP軟體
1、擷取NTP軟體
ntp-4.1.1.tar.gz
http://www.ntp.org/downloads.html
2、編譯安裝
解壓縮軟體包
tar xzvf ntp-4.1.1.tar.gz
配置編譯選項
cd ntp-4.1.1/
./configure
編譯安裝
make
make check
make install
預設執行程式被安裝在/usr/local/bin目錄下。
四、配置NTP服務
1、編輯配置檔案
預設使用/etc/ntp.conf檔案作為配置檔案,這裡給出一個例子:
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
server otherntp.server.org # A stratum1 server at server.org
server ntp.research.gov # A stratum2 server at research.gov
driftfile /etc/ntp/drift
broadcastdelay 0.008
authenticate no
keys /etc/ntp/keys
restrict 192.168.1.0 mask 255.255.255.0notrust nomodify notrap
restrict 127.0.0.1
#restrict default ignore
在這個配置檔案中,我們指定了兩個同步時間源:otherntp.server.org和ntp.research.gov。并指定了192.168.1.0/24這個區域網路中的用戶端都可以與我們的伺服器同步時間,當然本地127.0.0.1也可以。
注意,“#restrictdefault ignore”這一句是被注釋的,否則它會覆寫其它restrict語句,我們的伺服器就不能與其它計算機通信了。
實際使用時最好指定3到4個同步時間源,這樣就可以避免因某個時間源無法通路而不能同步時間。
更多的配置選項請參考http://www.ntp.org/documentation.html中的文檔。
2、啟動NTP服務
執行下面的指令啟動NTP服務:
/usr/local/bin/ntpd -c /etc/ntp.conf -l/var/log/ntpd.log -p /var/run/ntpd.pid
ntpd啟動後,日志檔案在/var/log/ntpd.log,程序号檔案在/var/run/ntpd.pid。如果有什麼問題可以檢視日志檔案的内容。
3、确認伺服器時間正确同步
ntpd啟動後過一段時間後就可以檢視你的伺服器是否正确與時間源同步,使用/usr/local/bin/ntpq -p
顯示例子如下:
remote refid st t when poll reach delay offset jitter
==============================================================================
*LOCAL(0) LOCAL(0) 10 l 56 64 377 0.000 0.000 0.008
dan.drydog.com tick.ucla.edu 2 u 128 64 4 640.988 -85.179 0.008
下面的例子說明不能正确同步:
remote refid st t when poll reach delay offset jitter
LOCAL(0) LOCAL(0) 10 l - 64 7 0.000 0.000 0.008
ntp-cup.externa 0.0.0.0 16 u - 64 0 0.000 0.000 4000.00
snvl-smtp1.trim 0.0.0.0 16 u - 64 0 0.000 0.000 4000.00
nist1.aol-ca.tr 0.0.0.0 16 u - 64 0 0.000 0.000 4000.00
這是就要考慮是配置的問題還是網絡的問題了。
五、其他問題
1、網絡中其他計算機
在區域網路中的其它裝置隻要支援NTP都可以與剛配好的伺服器同步時間。例如有一台Cisco的路由器,配置如下:
ciscorouter(config)# ntp server192.168.1.100
ciscorouter(config)# clock timezone CN 8
這裡假定我們的伺服器位址是192.168.1.100,我們中國的時區是+8。在Cisco路由器中就可以用show clock指令來檢視時間是否同步。
2、防火牆問題
NTP協定使用UDP協定的123端口來通信,注意源端口和目的端口都是123。是以如果你使用防火牆,需要允許UDP的123端口。
3、不能同步
如果你的計算機的系統時間與時間源的時間相差太大,就不能正确同步。這時可以先手動調整你的計算機的時間以接近時間源的準确時間,再使用NTP來同步時間。
手動調整時間可以使用date指令,如:
date -s "05/20/2003 14:11:20"
時間格式為:月/日/年時:分:秒
本文轉自 326647452 51CTO部落格,原文連結:http://blog.51cto.com/svsky/1693677,如需轉載請自行聯系原作者