頻道欄目
首頁 > 資訊 > Linux > 正文

NTP for Linux

13-11-01        來源:[db:作者]  
收藏   我要投稿
NTP for Linux
 
一、服務概述
NTP(network time  protocol 網絡時間協議)服務器是用來使計算機時間同步化的一種協議,它可以使計算機對其服務器或時鐘源做同步化,提供高精度的時間校正,在LAN上與標準時間差小于1毫秒,WAN相差幾十毫秒,并且通過加密確認的方式來防止攻擊。
二、NTP的基本工作原理
如圖所示。Device A和Device B通過網絡相連,它們都有自己獨立的系統時鐘,需要通過NTP實現各自系統時鐘的自動同步。為便于理解,作如下假設:
在Device A和Device B的系統時鐘同步之前,Device A的時鐘設定為10:00:00am,Device B的時鐘設定11:00:00am。
Device B作為NTP時間服務器,即Device A將使自己的時鐘與Device B的時鐘同步。
NTP報文在Device A和Device B之間單向傳輸所需要的時間為1秒。
系統時鐘同步的工作過程如下:
Device A發送一個NTP報文給Device B,該報文帶有它離開Device A時的時間戳,該時間戳為10:00:00am(T1)。
當此NTP報文到達Device B時,Device B加上自己的時間戳,該時間戳為11:00:01am(T2)。
當此NTP報文離開Device B時,Device B再加上自己的時間戳,該時間戳為11:00:02am(T3)。
當Device A接收到該響應報文時,Device A的本地時間為10:00:03am(T4)。
至此,Device A已經擁有足夠的信息來計算兩個重要的參數:
NTP報文的往返時延Delay=(T4-T1)-(T3-T2)=2秒。
Device A相對Device B的時間差offset=((T2-T1)+(T3-T4))/2=1小時。
這樣,Device A就能夠根據這些信息來設定自己的時鐘,使之與Device B的時鐘同步
三、NTP服務的安裝配置
[root@localhost softs]# wget http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.6p5.tar.gz
[root@localhost softs]# tar xf ntp-4.2.6p5.tar.gz -C /usr/src/
[root@localhost softs]# cd /usr/src/ntp-4.2.6p5/
[root@localhost ntp-4.2.6p5]# ./configure --prefix=/usr/local/ntp --enable-all-clocks --enable-parse-clocks
[root@localhost ntp-4.2.6p5]# make
[root@localhost ntp-4.2.6p5]# make install
解釋一下相關的配置文件
1、/etc/ntp.conf  這是ntp默認的主配置文件,不同的linux版本,可能改文件米目錄不一樣
2、/usr/share/zoneinfo  規定了各個時區的配置文件,例如,上海
[root@localhost Asia]# ls /usr/share/zoneinfo/Asia/Shanghai 
Shanghai
3、/etc/sysconfig/clock linux 主要時區的設定文件。每次啟動后linux操作系統會自動讀取這個文件來設定系統顯示的時間。
[root@localhost Asia]# cat /etc/sysconfig/clock 
ZONE="Asia/Shanghai"     這里會使用上海這個文件的時間
 4、/etc/localtime  顯示時間本地系統時間的設定文件,如果clock文件中規定了使用的時間設定文件為/usr/share/zoneinfo/Asia/Shanghai,linux系統會復制一份為/etc/localtim額,所以系統的時間顯示就會以Shanghai這個時間為準。
 
ntp服務默認的主配置文件
/etc/ntp.conf
[root@localhost bin]# cat /etc/ntp.conf  | grep -v ^# | grep -v ^$
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1     -----------因為沒有parameter部分,所以,該地址不受任何限制
restrict -6 ::1
server 0.rhel.pool.ntp.org--------上級時間服務器
server 1.rhel.pool.ntp.org
server 2.rhel.pool.ntp.org
server  127.127.1.0     ----------- local clock
fudge   127.127.1.0 stratum 10    -----fudge用戶為這個時鐘設置級別,對待內部系統時鐘比較理想的情況是將時間源作為級別10來對待
driftfile /var/lib/ntp/drift      -----------與上級時間服務器聯系所花費的時間,記錄在drift這個文件中
keys /etc/ntp/keys
權限的設定主要以 restrict 這個參數來設定,主要的語法為:restrict IP mask netmask_IP parameter
其中 IP 可以是軟件地址,也可以是 default ,default 就類似 0.0.0.0
 
ignore: 關閉所有的 NTP 聯機服務 
nomodify: 表示 Client 端不能更改 Server 端的時間參數,不過, Client  端仍然可以透過 Server 端來進行網絡校時。 
notrust: Client 除非通過認證,否則該 Client 來源將被視為不信任網域 
noquery: 不提供 Client 端的時間查詢 ; 如果 paramter 完全沒有設定,那就表示該 IP 沒有任何限制!
restrict default ignore  # 關閉所有的 NTP 要求封包
restrict 127.0.0.1   # 開啟內部遞歸網絡接口 lo

搭建一個內網的ntp服務器
[root@localhost bin]# cp /etc/ntp.conf /usr/local/ntp/    因為我是源碼安裝的,并且制定目錄在此,所以我手動創建一個配置文件
[root@localhost bin]# vi /usr/local/ntp/ntp.conf 

[root@localhost bin]# cd /usr/local/ntp/bin
[root@localhost bin]# ./ntpd -c /usr/local/ntp/ntp.conf     -----------c制定配置文件啟動
[root@localhost bin]# lsof -i:123    --------查看ntpd的監聽端口
COMMAND  PID USER   FD   TYPE DEVICE SIZE NODE NAME
ntpd    5424 root   16u  IPv4  18575       UDP *:ntp 
ntpd    5424 root   17u  IPv4  18577       UDP localhost.localdomain:ntp 
ntpd    5424 root   18u  IPv4  18578       UDP 192.168.254.153:ntp 
然后我到192.168.254.46上測試
[root@localhost ~]# ntpdate 192.168.254.153   ----------以153作為ntp服務器進行時間的同步
23 Oct 15:05:12 ntpdate[23303]: step time server 192.168.254.153 offset 48.683654 sec  成功

這張圖可以看得出效果
相關的執行文件
/bin/date       查詢、修改日期時間的命令
/sbin/hwclock   主機的BIOS時間與系統時間是分開的,所以使用date命令只是改的系統時間,要想將修改的時間寫進bios必須還要root用戶執行這個命令才可以。
/usr/sbin/ntpd  ntp服務的守護進程
/usr/sbin/ntpdate  ntp客戶端用來連接ntp服務器的命令文件
/usr/sbin/ntpq  標準網絡計時協議查詢程序
/usr/sbin/ntptrace 跟蹤網絡計時協議主機鏈到它們的控制時間源
/sbin/clock 調整電腦硬件時間RTC,執行這個命令可以顯示現在時刻。將硬件時間與系統時間調成一致。
接下來再用一下hwclock命令

下一個命令ntpq
[root@localhost bin]# ntpq -p  列出當前NTP服務器上的ntp狀態
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*LOCAL(0)        .LOCL.          10 l   62   64  377    0.000    0.000   0.001
 
remote  響應這個請求的ntp服務器的名稱;  refid NTP服務器使用的上一級NTP服務器;   stremote服務器的級別;when 上次請求成功到現在的秒數;poll本地機和遠程機多久同步一次;reach測試能否跟服務器連接;delay從本地雞發送同步請求道ntp服務器的round trip time;offset主機與時間源同步的時候的時間偏移量(ms);jitter統計值
ntptrace  ----查看ntp與上層服務器的關系,下面表示與第十層已經連上了
[root@localhost bin]# ntptrace -n 127.0.0.1
127.0.0.1: stratum 11, offset 0.000000, synch distance 0.000000
順便介紹一下windows客戶端的時間同步
win +R 打開運行,輸入cmd
在命令行輸入“net stop w32time”,在輸入"net start w32time",最后輸入net time /setsntp:"192.168.254.153"
 
提示:其實NTP服務的配置非常簡單,好像貌似也沒什么用,但是如果你是在玩集群的話,那你可要重視了,呵呵 !
相關TAG標簽
上一篇:臺積電:絕大多數7nm客戶都會轉向6nm_IT新聞_博客園
下一篇:最后一頁
相關文章
圖文推薦

關于我們 | 聯系我們 | 廣告服務 | 投資合作 | 版權申明 | 在線幫助 | 網站地圖 | 作品發布 | Vip技術培訓 | 舉報中心

版權所有: 紅黑聯盟--致力于做實用的IT技術學習網站

美女MM131爽爽爽毛片