linux NTP服务器搭建
1. NTP簡介
NTP(Network Time Protocol 網絡時間協議)是一個用于同步計算機時鐘的網絡協議。它可以使計算機與其他服務器或時鐘源進行時間同步,進行高精度的時間校正。
簡而言之,NTP就是使一臺或多臺服務器(客戶端)與時間服務器(服務端)之間進行時間同步(即客戶端與服務端的時間同步),以保證時間的統一性
2. NTP服務器架設
? ?? 上面提到客戶端與服務端的時間同步,現在就先來架設NTP服務端(即NTP時間服務器)
2.1 系統環境
OS: Debian 7.0 amd64
source: deb http://ftp.debian.org/debian wheezy main contrib non-free
2.2 架設NTP服務器
2.2.1 安裝NTP服務軟件
# aptitude install ntp
2.2.2. 編輯ntp配置文件
#?nano /etc/ntp.conf
最簡單的配置就是修改一條信息,具體如下:
restrict 192.168.0.0 mask 255.255.0.0 nomodify notrap
然后保存退出即可
2.2.3 重啟NTP服務
# invoke-rc.d ntp restart
這樣NTP時間服務器就架設好了
2.3 客戶端配置
NTP時間服務器有了,那么客戶端如何與這臺服務器進行時間同步呢?,我們繼續
2.3.1 安裝時間同步程序客戶端
# aptitude install ntpdate
2.3.1 讓客戶端與時間服務器(192.168.61.85)進行時間同步
# ntpdate 192.168.61.85
若執行完命令出現如下提示,則表示已同步成功
ntpdate[23636]: adjust time server 192.168.61.85 offset -0.052088 sec
2.3.2 上面的命令只是客戶端與時間服務器的一次同步,若想周期性的進行時間同步,那我們就要添加計劃任務了
# crontab -e
在最后一行添加如下內容:?
0 1 * * * /usr/sbin/ntpdate 192.168.61.85
每天凌晨1:00進行時間同步
至此,NTP時間服務器的架設和使用就算結束了。接下來是關于NTP配置文件ntp.conf的一些配置說明,僅供參考:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
在配置文件/etc/ntp.conf中主要包括以下幾個參數
1. restrict <IP 地址><子網掩碼>|<網段> <子網掩碼> [ ignore|nomodify|noquery|notrap|notrust|nokod ]: 指定可以進行NTP通信的IP地址或網段
1.1 ignore:關閉所有NTP服務
1.2 nomodify :表示客戶端不能更改NTP服務器的時間參數,但可以通過NTP服務器進行時間校對
1.3 noquery: 不提供NTP服務
1.4 notrap:不提供trap遠程事件登錄的功能
1.5 notrust: 聚聚沒有通過認證的客戶端
1.6 kod:kod技術可以組織“Kiss of Death”包(一種DOS攻擊)對服務器的破壞,使用此參數將開啟該功能?
1.7 nopeer:不與其他同一層的NTP服務器進行時間同步
若果沒有指定選項,那就表示指定的客戶端在訪問NTP服務器時沒有任何限制
2. server [IP|FQDN] [prefer]:指定該NTP服務器上層NTP服務器,如果有多個上層NTP服務器,則參考prefer的優先級進行時間同步,prefer越小優先級越高
3. broadcast 網段 子網掩碼:指定進行NTP時間廣播的網段,在不指定此參數時NTP服務器會對所有能訪問的網段廣播
 
查看時間同步信息的命令:
# ntpq -p
 
下面對部分參數進行說明:
remote: 本地主機所連接的上層NTP服務器
st:NTP服務器優先級
when:上次與NTP服務器同步的時間(單位:s)
poll:下次與NTP服務器同步的時間(單位:s)
delay:從本地發出時間同步命令給遠程時間服務器開始,到整個時間同步完成所需時間(單位:10^-6s)
offset:本地主機與時間服務器的時間差(同步后將自動糾正)
jitter:一個offset的分布統計值,該值越小,表示時間越精確
 
方法二:
一、搭建時間同步服務器1、編譯安裝ntp server
wgethttp://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2.4p4.tar.gz
tar zxvf ntp-4.2.4p4.tar.gz
cd ntp-4.2.4p4
./configure --prefix=/usr/local/ntp --enable-all-clocks --enable-parse-clocks
make && make install 注:如以上下載地址無法訪問,請從ntp官方下載網頁(http://www.ntp.org/downloads.html)尋找下載地址。 2、修改ntp.conf配置文件
vi /etc/ntp.conf ①、第一種配置:允許任何IP的客戶機都可以進行時間同步
將“restrict default nomodify notrap noquery”這行修改成:
restrict default nomodify 配置文件示例:/etc/ntp.conf ②、第二種配置:只允許192.168.18.***網段的客戶機進行時間同步
在restrict default nomodify notrap noquery(表示默認拒絕所有IP的時間同步)之后增加一行:
restrict 192.168.18.0 mask 255.255.255.0 nomodify 配置文件示例:/etc/ntp.conf 3、以守護進程啟動ntpd
/usr/local/ntp/bin/ntpd -c /etc/ntp.conf -p /tmp/ntpd.pid 4、ntpd啟動后,客戶機要等幾分鐘再與其進行時間同步,否則會提示“no server suitable for synchronization found”錯誤。 二、配置時間同步客戶機
vi /var/spool/cron/root 增加一行,在每天的5點13分、9點13分、14點13分、19點13分與時間同步服務器進行同步
13 5,9,14,19 * * * /usr/sbin/ntpdate 192.168.18.2 備注:如果客戶機沒有ntpdate,可以下載ntpdate.tar.gz到/usr/sbin/目錄,然后解壓:
wgethttp://blog.s135.com/attachment/200708/ntdate.tar.gz
cd /usr/sbin/
tar zxvf ntpdate.tar.gz
方法三:
配置ntpd 服務器配置: 1、確認已安裝ntp包 2、vi /etc/ntp.conf server??time.nist.gov???#配置公網ntp服務器,也可不配因為配置中增加三組標準時間服務器,每組服務器的域名(如0.pool.ntp.org)下有世界各地的十多臺標準時間服務器,非常強大,不會像中國國家授時中心的標準時間服務器(210.72.145.44)那樣經常因為負載過大無法訪問
默認允許所有主機連服務器同步時間,要做限制先屏蔽下面一行 #restrict default kod nomodify notrap nopeer noquery 再做限制如 restrict 192.168.1.0 mask 255.255.255.0 notrust nomodify notrap #從192.168.1.1-192.168.1.254的主機可以使用我們的NTP服務器來同步時間??
3、啟動NTP服務器
???service ntpd start
默認情況下,我們配置的NTP服務器不會去時間源那里同步時間,所以必須修改/etc/ntp/step-tickers文件,加入我們的時間源,這樣每次通過/etc/init.d/ntpd?來啟動服務的時候就會自動更新時間了
檢查服務器同步狀態:
ntpq -p
ntptrace time.nist.gov 如果輸出正確,則說明時間服務器成功。每次啟動服務器,會自動同步時間。
4.?ntpd啟動后,客戶機要等幾分鐘再與其進行時間同步,否則會提示“no server suitable for synchronization found”錯誤。
配置linux客戶端
在linux客戶端上執行ntpdate?ntp_server_ip?就可以根據時間服務器統一局域網的時間了,將上面的命令放到cron里做個任務以后自動更新 如:每天早上3點定期執行,crontab –e?然后輸入
0 3 * * *??/usr/sbin/ntpdate??ntp_server_ip
本文出自 “老林的技術筆記” 博客,請務必保留此出處http://lilinqing.blog.51cto.com/1122687/328769
?
?
----------------------由于有時還是會出現
 12 Oct 18:13:56 ntpdate[15349]: no server suitable for synchronization found
?
所以再轉其它資料供參考....
其中最重要的一點就是說到ntpd 剛啟動時.要等幾分鐘才能可以正常同步.
所以我想,,可能之前就重啟就可以了.只不過要多等 幾分鐘而己
?
from :
http://space.itpub.net/665930/viewspace-684110
Linux?下快速搭建ntp 時間同步服務器
一、搭建時間同步服務器
 1、編譯安裝ntp?server
 tar zxvf ntp-4.2.4p5.tar.gz
 cd ntp-4.2.4p5
 ./configure --prefix=/usr/local/ntp --enable-all-clocks --enable-parse-clocks
 make
 make install
 注: ntp 官方下載網http://www.ntp.org/downloads.html
 2、修改ntp.conf 配置文件
 vi /etc/ntp.conf
 ①、第一種配置:允許任何IP 的客戶機都可以進行時間同步
 將“restrict default nomodify notrap noquery”這行修改成:
 restrict default nomodify
 ②、第二種配置:只允許192.168.18.***網段的客戶機進行時間同步
 在restrict default nomodify notrap noquery(表示默認拒絕所有IP 的時間同步)之
 后增加一行:
 restrict 192.168.18.0 mask 255.255.255.0 nomodify
 server 127.127.1.0
 fudge 127.127.1.0 stratum 8
 3、以守護進程啟動ntpd
 /usr/local/ntp/bin/ntpd -c /etc/ntp.conf -p /tmp/ntpd.pid
 4、ntpd 啟動后,客戶機要等幾分鐘再與其進行時間同步,否則會提示“no server
 suitable for synchronization found”錯誤。
 二、配置時間同步客戶機
 vi /var/spool/cron/root
 增加一行,在每天的5 點13 分、9 點13 分、14 點13 分、19 點13 分與時間同
 步服務器進行同步
 13 5,9,14,19 * * * /usr/sbin/ntpdate 192.168.18.2? >> /root/ntpdate.log 2>&1
 備注:如果客戶機沒有ntpdate,可以下載ntpdate.tar.gz 到/usr/sbin/目錄,然后解
 壓:
 wgethttp://blog.s135.com/attachment/200708/ntdate.tar.gz
 cd /usr/sbin/
 tar zxvf ntpdate.tar.gz
 三、同步
 在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
 四、ntp.conf 文件
 restrict default kod nomodify notrap nopeer noquery
 restrict 10.10.0.0 mask 255.255.0.0 nomodify notrap
 server 10.10.7.141
 server 127.127.1.0 # local clock
 fudge 127.127.1.0 stratum 8
 driftfile /var/lib/ntp/drift
 broadcastdelay 0.008
 authenticate no
 keys /etc/ntp/keys
 五、參考網址:
 http://www.itlearner.com/article/2008/4234.shtml
 http://linux.chinaunix.net/bbs/viewthread.php?tid=708915&page=1
 http://www.blogjava.net/spray/archive/2008/07/10/213964.html
_______________________________________________________________________
解決ntp的錯誤 no server suitable for synchronization found
?
當用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端口。
可以用命令
#service iptables stop
?
來關掉iptables服務后再嘗試從ntp客戶端的同步,如果成功,證明是防火墻的問題,需要更改iptables的設置。
?________________________________________________________________________
1. 與一個已知的時間服務器同步
2. 配置網絡時間協議(ntp)
 1. 讓linux自動同步時間
 vi /etc/crontab
 加上一句:
 00 0 1 * * root rdate -s time.nist.gov
 time.nist.gov 是一個時間服務器.
2. 時間服務器配置(192.168.10.1)
1). # rpm -ivh ntp-4.1.2-4.EL3.1.i386.rpm
 2). # vi /etc/ntp.conf
 注釋一行
 restrict default ignore
 加入一行
 restrict 192.168.10.0 mask 255.255.255.0 notrust nomodify notrap
 3). # vi /etc/ntp/step-tickers
 加入一行
 pool.ntp.org
 這樣每次ntpd啟動時,會自動連接該國際標準時間服務器;
 4). # service ntpd start
 5). # netstat -an |grep 123
 確保該端口以udp方式開放
 時間客戶端配置(192.168.10.2)
 1). # ntpdate 192.168.10.2
 應該顯示同步成功
 2). # crond -e
 加入
 0-59/10 * * * * /usr/sbin/ntpdate 192.168.10.1 >> /root/ntpdate.log 2>&1
 表示每隔10分鐘同步一次時間
總結
以上是生活随笔為你收集整理的linux NTP服务器搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: MySQL之按日期查询表数据
- 下一篇: C++学习笔记,坚持自律!
