天天看點

NTP for LINUX

用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,如需轉載請自行聯系原作者

繼續閱讀