http://yuebaibai222.blog.51cto.com/2535988/1317928
先簡單介紹幾個名詞
Atomic Clock: 現在計算時間最準确的是使用 原子震蕩周期 所計算的實體時鐘(Atomic Clock),是以也被定義為标準時間(International Atomic Time)
UTC(coordinated Universal Time): 協和标準時間 就是利用 Atomic Clock 為基準定義出來的正确時間
硬體時鐘: 硬體時鐘是指嵌在主機闆上的特殊的電路, 它的存在就是平時我們關機之後還可以計算時間的原因
系統時鐘: 就是作業系統的kernel所用來計算時間的時鐘. 它從1970年1月1日00:00:00 UTC時間到目前為止秒數總和的值
搭建 NTP 服務之前的準備
1.檢查系統時區是否正确
在中國,正确的時區應為 CST(Chinese Standard Time),也就是我們通常所說的中原標準時間.
那麼中國當地的時間晚上8點的話,我們可以有下面兩種表示方式
20:00 CST
12:00 UTC
因為中國處在UTC+8時區,依次類推,在UTC标準時間,就是12:00了.
不管通過任何管道我們想要同步系統的時間,通常提供方隻會給出UTC+0的時間值而不會提供時區(因為它不知道你在哪裡).是以當我們設定系統時間的時候,設定好時區是首先要做的工作
1 2 | |
如果發現時區不正确,修改方法見本文 附1
2.檢查 NTP 是否安裝
3 | |
如上所示就是正确安裝了
3.檢查上層 NTP 伺服器是否正常連通
直接使用國家對時伺服器
1.cn.pool.ntp.org
2.cn.pool.ntp.org
為了防止出現上層對時伺服器故障,無法正确提供時間同步,一般建議配置兩個或以上時間同步伺服器.下面分别測試兩個時鐘服務是否正常可用
4 5 6 7 8 9 10 11 12 | |
如上所示,就是正常的,如果上層伺服器不可用,一般如下顯示
|
4.手工校正目前時間
當系統時間與标準時間相差太大時,NTP 通常無法正常同步時間,是以我們一般要手工先對目前時間進行調整
兩個對時伺服器都可以用,随便挑一個就行
|
調整好後,用 date 指令檢查一下,時間是否正确了
|
如果時間還是不對,建議用 date 指令手工調整一下,我在實驗過程中沒有遇到過,但有的網友說會說現這種情況
設定 NTP 的配置檔案
NTP 伺服器說白了,就是起一個承上啟下的作用,尋找上層伺服器擷取正确的時間,同時為下層伺服器提供網絡對時服務,是以對它的設定,也主要由兩方面組成
1.指定上層對時伺服器
加#号注釋掉centos預設的對時伺服器,如果主機可以通路外網,這一步最好做一下.
添加我們剛才測試的國家對時伺服器.
prefer 表示優先使用
|
2.設定對内網主機提供NTP服務
在我的實驗環境中,内網使用 192.168.80.0/24 網段
|
幾點說明:
restrict default kod nomodify notrap nopeer noquery
kod kod技術可以阻止 "Kiss of Death"包(一種DOS攻擊)對伺服器的破壞
nomodify 使用者端不能更改NTP服務端的時間參數,但可以通過NTP服務端進行時間校對
notrap 不提供trap 遠端事件登入功能
nopeer 不與其它同一層的NTP伺服器進行時間同步
noquery 不提供NTP服務
restrict 還可以使用的其它參數
ignore 關閉所有NTP服務
notrust 拒絕沒有通過認證的用戶端
restrict 127.0.0.1預設對本機無限制
restrict 192.168.80.0 mask 255.255.255.0 nomodify notrap這是我添加的,允許192.168.80.0/24 網段的主機來進行時間校對,但不允許用戶端來修改,登入我的NTP伺服器
3.設定同步更新本地hwclock
在Linux下系統時間在開機的時候會和硬體時間同步(synchronization),之後也就各自獨立運作了那麼既然兩個時鐘獨自運作,那麼時間久了必然就會産生誤差了,而NTP預設又隻更新系統時間,是以我們需要設定硬體時鐘進行同步調整
|
添加
SYNC_HWCLOCK=
"yes"
啟動NTP服務
|
啟動後的觀察
1.确認端口監聽啟動
ntpd啟動 123 端口 通過UDP協定對外提供服務
|
2.檢視系統日志,确定啟動過程無報錯
|
3.确認已進行時間同步
該指令執行,通常要等10到15分鐘,才會顯示同步成功
|
4.檢視與上層伺服器連接配接情況
|
remote 本地主機所連接配接的上層NTP伺服器
*目前正在使用的上層NTP
+已連線,可提供時間更新的候補伺服器
refid 給上層NTP伺服器提供時間校對的伺服器
st 就是stratum 上層NTP的級别
when 幾秒鐘前曾做過時間同步更新
poll 下一次更新在幾秒後
reach 已經向上層伺服器要求更新的次數
delay 網絡傳輸過程中的延遲時間
offset 本地主機與上層NTP伺服器的時間差,該值的絕對值越接近0,與上層伺服器的時間就越接近
jitter 一個統計值,這個值的絕對值越小,本地主機的時間就越精确
5.确認無問題後,将服務設為開機啟動
|
用戶端設定
用戶端到時鐘伺服器同步時間,有兩種常見的用法:
1.如果主機比較少,可以通過 cron 來同步時間
|
為了盡快看到執行效果,是以設定為每三分鐘同步一次,實際生産中不用這麼頻繁,每天同步一次就差不多了
|
2.啟動NTP服務自動同步
如果内網伺服器比較多
可以通過架設NTP來實作時間同步
因為該NTP隻需向上層來同步時間,而不需對下層提供對時服務,就比較簡單了
隻要重複上面NTP架設步驟,去除restrict 步驟即可
附1:
1.檢視目前時區
|
2.修改 /etc/sysconfig/clock
将原來的時區改為
|
3.覆寫 /etc/localtime
|
|