linux系統安裝ntp網絡時間服務

隨着時間的推移, 計算機的時鐘會傾向於漂移。 網絡時間協議 (NTP) 是一種確保您的時鐘保持準確的方法。

公司局域網有數臺計算機,如果實現時間的同步將有助於日常維護和出錯分析。爲此使用debian架設一臺基於linux的ntp服務器。


如 果可以你的局域網可以訪問互聯網,那麼不必安裝一臺專門的ntp服務器,只需安裝ntp的客戶端軟件到互聯網上的公共ntp服務器自動修正時間即可。如果 不能訪問互聯網,而要將各個計算機時間的統一,就需要自己架設一臺ntp服務器。無論怎樣,請首先保證你的時區設置是正確的!(debian下使用 tzconfig設置時區)
一、安裝客戶端:
1、linux下的客戶端安裝
對於debian,請使用root權限運行如下命令:
apt-get install ntpdate
其他發行版請安裝相應的包格式,實在沒有就到www.ntp.org下載編譯源碼。
apt-get方式安裝完成後,將創建“/etc/init.d/ntpdate”腳本,並自動將其加入開機運行的服務中。其配置文件爲
“/etc/default/ntpdate”,你可以修改如下內容,使系統在啓動時自動將系統時間同步cn.pool.ntp.org或pool.ntp.orgntp服務器
NTPSERVERS="cn.pool.ntp.org pool.ntp.org"
如果你不想等到下次開機再修正你的系統時間,可以立即使用root權限執行如下命令使你的系統時間變更爲準確的北京時間(如果你的時區設置爲chongqing)
matrix:~# ntpdate cn.pool.ntp.org
19 Feb 22:06:57 ntpdate[20834]: adjust time server 218.4.91.228 offset 0.129096 sec
cn.pool.ntp.org是位於中國的公共ntp服務器,你可以到“www.pool.ntp.org”尋找一個離你最近的ntp公共服務器(當然也可以是你自己架設的ntp服務器!)。你也可以將上訴語句加入root用戶的crontab中使其定期修正系統時間。
2、windows下的客戶端
windows下有數種方式實現系統時間同步。
①使用windows2000、XP professional自帶的Windows Time服務:
在命令行輸入如下命令:
NET TIME /SETSNTP:cn.pool.ntp.org
NET TIME /QUERYSNTP
NET START w32time
第一行是配置同步的服務器,第二行是察看設置結果,第三行是啓動“Windows Time”服務(如果需要的話,你可以在控制面板中將該服務設置爲自動啓動)
對於XP Home版,可以在“日期/時間 屬性”對話框中手動指定需要同步的服務器。
②使用命令通過網絡共享服務,立即獲取局域網上的ntp服務器時間服務來更新系統時間。前提是,你要有訪問該服務器共享資源的權限,(如果這個服務器是linux,必須安裝並運行samba服務)
NET USE X: \192.168.0.1share PassWord /user:UserName
NET TIME \192.168.0.1 /SET /YES
NET USE x: /DELETE /YES
第一行是登錄一下該服務器的共享服務(映射一個X:盤),第二行是立即同步私通時間爲該服務器(192.168.0.1)的時間,第三行是刪除該映射盤。
③使用第三方軟件 http://nettime.sourceforge.net/
 
基於AS4配置時間服務器


在linux下,我們可以通過自帶的NTP(Network Time Protocol)協議通過網絡使自己的系統保持精確的時間。可用的公共時間服務器列表可以從下面的地址獲取:
 
http://ntp.isc.org/bin/view/Servers/NTPPoolServers
 
什麼是NTP

NTP是用來使系統和一個精確的時間源保持時間同步的協議。建議大家在自己管理的網絡中建立至少一臺時間服務器來同步本地時間,這樣可以使得在不同的系統上處理和收集日誌和管理更加容易。
 
同樣,也有很多免費的NTP客戶端可供Windows使用,你可以用它們來同步你windows的系統時間。
 
下載和安裝

本文介紹如何在AS4上安裝時間服務器(本文也同樣適用於redhat和fedora core的其他版本),如果想獲得NTP的最新版本,你可以下載tar包自己編譯,這裏只介紹RPM方式安裝的NTP服務軟件。
 
AS4帶的NTP版本是4.2.0,你可以用下面的命令查看是否已經安裝了這個軟件包:
 
# rpm -qa|grep ntp
 
ntp-4.2.0.a.20040617-4.2
 
如果發現沒有安裝,請從光盤上安裝這個軟件。執行下面命令安裝NTP的RPM包:
 
# rpm -ivh ntp-4.2.0.a.20040617-4.2.i386.rpm
 
/etc/ntp.conf這是NTP的主要配置文件,裏面設置了你用來同步時間的時間服務器的域名或者IP地址,下面是到互聯網同步時間的最基本的配置:
 
首先定義我們喜歡的時間服務器:
 
server pool.ntp.org
 
接下來,我們設置上面兩臺服務器的訪問權限,在這個例子中我們不允許它們修改或者查詢我們配置在Linux上的NTP服務器
 
restrict default nomodify notrap noquery (這個默認在配置文件中就存在)
 
接下來設置允許訪問我們時間服務器的客戶機地址,通常這些服務器都應該位於我們自己局域網內。請注意,配置中noquery已經去掉了:
 
restrict 192.168.0.0 mask 255.255.255.0 notrust nomodify notrap
 
在上例中,掩碼地址擴展爲255,因此從192.168.0.1-192.168.0.254的服務器都可以使用我們的NTP服務器來同步時間。
 
最後,也是最重要的是默認的限制配置要從你配置文件中刪除,否則它將覆蓋你所有的配置選項,你將發現如果不刪除該配置,你的時間服務器將只能和自己通訊。如果ntp.conf中有以下一行,請將它註釋(AS4附帶的ntp默認沒有):
 
# restrict default ignore
 
保存你的配置文件,然後對每個你在ntp.conf裏配置的時間服務器執行2編查詢命令:
 
# ntpdate pool.ntp.org
 
27 Jun 10:12:01 ntpdate[25475]: adjust time server pool.ntp.org offset -0.127154 sec
 
# ntpdate ntp.research.gov
 
27 Jun 10:12:06 ntpdate[25478]: adjust time server pool.ntp.org offset 0.010008 sec
 
使NTP進程自啓動

爲了使NTP服務可以在系統引導的時候自動啓動,執行:
 
# chkconfig ntpd on
 
啓動/關閉/重啓NTP的命令是:
 
# /etc/init.d/ntpd start
 
# /etc/init.d/ntpd stop
 
# /etc/init.d/ntpd restart
 
默認情況下,我們配置的NTP服務器不會去時間源那裏同步時間,所以必須修改/etc/ntp/step-tickers文件,加入我們的時間源,這樣每次通過/etc/init.d/ntpd 來啓動服務的時候就會自動更新時間了
 
切記每次修改了配置文件後都需要重新啓動服務來使配置生效。可以使用下面的命令來檢查NTP 服務是否啓動,你應該可以得到一個進程ID號:
 
# pgrep ntpd
 
檢查時間服務器是否正確同步
 
使用下面的命令檢查時間服務器同步的狀態:
 
# ntpq -p
 
輸出:
 
remote refid st t when poll reach delay offset jitter
 
==============================================================================
 
-jj.cs.umb.edu gandalf.sigmaso 3 u 95 1024 377 31.681 -18.549 1.572
 
milo.mcs.anl.go ntp0.mcs.anl.go 2 u 818 1024 125 41.993 -15.264 1.392
 
-mailer1.psc.edu ntp1.usno.navy. 2 u 972 1024 377 38.206 19.589 28.028
 
-dr-zaius.cs.wis ben.cs.wisc.edu 2 u 502 1024 357 55.098 3.979 0.333
 
+taylor.cs.wisc. ben.cs.wisc.edu 2 u 454 1024 347 54.127 3.379 0.047
 
-ntp0.cis.strath harris.cc.strat 3 u 507 1024 377 115.274 -5.025 1.642
 
*clock.via.net .GPS. 1 u 426 1024 377 107.424 -3.018 2.534
 
ntp1.conectiv.c 0.0.0.0 16 u - 1024 0 0.000 0.000 4000.00
 
一個可以證明同步問題的證據是所有遠程服務器的jitter值是4000並且delay和reach的值是0。
 
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
 
可能的原因有:
 
配置文件中的restrict default ignore沒有被註釋
 
有防火牆阻斷了與server之間的通訊
 
此外每次重啓NTP服務器之後大約要3-5分鐘客戶端才能與server建立正常的通訊連接,否則你執行ntpdate ip的時候將返回:
 
27 Jun 10:20:17 ntpdate[21920]: no server suitable for synchronization found
 
配置Linux客戶端

在linux客戶端上執行ntpdate ntp_server_ip 就可以根據時間服務器統一局域網的時間了,將上面的命令放到cron裏每天早上3點定期執行,crontab –e 然後輸入
 
0 3 * * * /usr/sbin/ntpdate ntp_server_ip





隨着時間的推移,計算機的時鐘會傾向於漂移。網絡時間協議 (NTP) 是一種確保您的時鐘保持準確的方法。一般系統默認都安裝了NTP服務
如可以用以下命令查看
[root@wap etc]# rpm -qa |grep ntp
ntp-4.2.0.a.20040617-4.EL4.1
NTP服務,主要包括四個文件
/etc/ntp.conf ; NTP服務的主配置文件。
/usr/share/zoneinfo ;規定了各主要時區的時間設定文件,如上海/usr/share/zoneinfo/Asia/Shanghai
/etc/sysconfig/clock ; Linux的主要時區設定文件,每次啓動後Linux操作系統就讀取這個文件來設定系統預設要顯示時間,如:“Zone=Asia/Shanghai
/etc/localtim ;本地系統的時間設定文件。
/bin/date Linux系統上面的日期與時間修改及輸出命令
/sbin/hwclock 主機的BIOS時間與Linux系統時間分開date 這個指令調整後,只是影響系統時間。如果更改BIOS時間,需要用hwlock命令
/usr/sbin/ntpd ; NTP服務的守護進程
/usr/sbin/ntpdata ;NTP客戶端用來連接NTP服務器命令文件
/usr/sbin/ntpq 標準網絡計時協議(NTP)查詢程序
配置
[root@wap etc]# vi /etc/ntp.conf
restrict default ignore
//忽略所有ntp要求封包
restrict 127.0.0.1
restrict 218.0.0.0 mask 255.255.255.248 nomodify
restrict 202. 0.0.0 mask 255.255.255.0 nomodify
restrict 61. 0.0.0 mask 255.255.255.0 nomodify
//restrict可以針對子網、ip來進行限制,nomodify參數表示客戶端可以通過服務器端效驗,但不能更改服務器端參數
server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org
//注:server選項指定了使用哪一個服務器,每一個服務器都獨立一行,如果某一臺服務器上指定了 prefer (偏好) 參數
restrict 0.pool.ntp.org
restrict 1.pool.ntp.org
restrict 2.pool.ntp.org
//如果restric 後面不帶參數,表示可以允許全部權限
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
//driftfile 選項,則指定了用來保存系統時鐘頻率偏差的文件, ntpd程序使用它來自動地補償時鐘的自然漂移, 從而使時鐘即使在切斷了外來時源的情況下,仍能保持相當的準確度
broadcastdelay 0.008
logfile /var/log/ntp.log
keys /etc/ntp/keys
客戶端設置:
通過crontab計時器進行設置,每5分鐘運行一次
*/5 * * * * /usr/local/wapsh/ntprsync.sh
[root@AppServer wapsh]# cat ntprsync.sh
#!/bin/sh
/usr/sbin/ntpdate 218.0.0.1
/sbin/hwclock –w
這裏218.0.0.1爲服務器端ip,這樣客戶端每隔5分鐘就與服務器進行時間同步。

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