ntp時間同步服務


前言

NTP 網絡時間協議用來同步網絡上不同主機的系統時間。你管理的所有主機都可以和一個指定的被稱為 NTP 服務器的時間服務器同步它們的時間。而另一方面,一個 NTP 服務器會將它的時間和任意公共 NTP 服務器,或者你選定的服務器同步。由 NTP 管理的所有系統時鍾都會同步精確到毫秒級。
在公司環境中,如果他們不想為 NTP 傳輸打開防火牆,就有必要設置一個內部 NTP 服務器,然后讓員工使用內部服務器而不是公共 NTP 服務器
服務端 : 192.168.16.30 master01
客戶端:  192.168.16.31 master02

1、 服務端配置:

centos7下首先確認服務器的防火牆、selinux關閉狀態

[root@master01 ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core) 

  

1.1為服務器和客戶機安裝ntp

yum install ntp -y

1.2 查找時間同步服務器

http://www.pool.ntp.org/zone/asia

 

1.3  編輯 /etc/ntp.conf

cat >/etc/ntp.conf<<EOF
server 210.72.145.44   #China Time Centerserver
server cn.pool.ntp.org   #Pulbic Time Server
server 127.127.1.0 iburst local   #當外部時間不可用時,使用本地時間
clockrestrict 192.168.16.0 mask 255.255.255.0 nomodify  #允許更新的IP地址段
EOF

  

  配置說明:
  ignore :關閉所有的 NTP 聯機服務
  nomodify:客戶端不能更改服務端的時間參數,但是客戶端可以通過服務端進行網絡校時。
  notrust :客戶端除非通過認證,否則該客戶端來源將被視為不信任子網
  noquery :不提供客戶端的時間查詢
  注意:如果參數沒有設定,那就表示該 IP (或子網)沒有任何限制!

1.4  啟動ntp服務

systemctl start ntpd
systemctl enable ntpd.service 

  

1.5驗證服務

[root@master01 ~]# ntpq -p 
remote refid st t when poll reach delay offset jitter
============================================================================= 
210.72.145.44 .INIT. 16 u - 1024 0 0.000 0.000 0.000
*85.199.214.100 .GPS. 1 u 18 64 377 250.594 -0.486 0.412 
LOCAL(0) .LOCL. 5 l 6h 64 0 0.000 0.000 0.000

[root@master01 ~]# date -R
Thu, 31 May 2018 16:38:20 +0800

[root@master01 ~]# ntpdc -np 
remote local st poll reach delay offset disp
=======================================================================
*85.199.214.100 192.168.16.30 1 64 377 0.25058 -0.000486 0.04756
=127.0.0.1 5 64 0 0.00000 0.000000 3.99217
=192.168.16.30 16 1024 0 0.00000 0.000000 3.99217Fri, 15 Jul 2016 15:28:34 +0800

 

參數說明: 
remote - 本機和上層ntp的ip或主機名,“+”表示優先,“*”表示次優先
refid - 參考上一層ntp主機地址
st - stratum階層
when - 多少秒前曾經同步過時間
poll - 下次更新在多少秒后
reach - 已經向上層ntp服務器要求更新的次數
delay - 網絡延遲
offset - 時間補償
jitter - 系統時間與bios時間差

  

2、客戶端

2.1客戶端配置ntp:(注釋並在后面添加同步服務器)

[root@master02 ~]# vim /etc/ntp.conf

.....
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server master01
......

  


2.2  遠程客戶端時間同步測試

[root@master02 ~]# ntpdate master01

2 Jun 11:30:01 ntpdate[1235]: step time server 192.168.16.30 offset 2.766992 sec

[root@master02 ~]# systemctl start ntpd

[root@master02 ~]# systemctl enable ntpd.service

[root@master02 ~]# ntpdc -np

remote local st poll reach delay offset disp
=======================================================================
*192.168.16.30 192.168.16.31 2 128 377 0.00018 -0.003627 0.09908

ntpd、ntpdate的區別

tpd與ntpdate在更新時間時有什么區別。

  ntpd不僅僅是時間同步服務器,它還可以做客戶端與標准時間服務器進行同步時間,而且是平滑同步,並非ntpdate立即同步,在生產環境中慎用ntpdate,也正如此兩者不可同時運行。
時鍾的躍變,對於某些程序會導致很嚴重的問題。許多應用程序依賴連續的時鍾——畢竟,這是一項常見的假定,即,取得的時間是線性的,一些操作,例如數據庫事務,通常會地依賴這樣的事實:時間不會往回跳躍。不幸的是,ntpdate調整時間的方式就是我們所說的”躍變“:在獲得一個時間之后,ntpdate使用settimeofday(2)設置系統時間,這有幾個非常明顯的問題:
  第一,這樣做不安全。ntpdate的設置依賴於ntp服務器的安全性,攻擊者可以利用一些軟件設計上的缺陷,拿下ntp服務器並令與其同步的服務器執行某些消耗性的任務。由於ntpdate采用的方式是跳變,跟隨它的服務器無法知道是否發生了異常(時間不一樣的時候,唯一的辦法是以服務器為准)。
  第二,這樣做不精確。一旦ntp服務器宕機,跟隨它的服務器也就會無法同步時間。與此不同,ntpd不僅能夠校准計算機的時間,而且能夠校准計算機的時鍾。
  第三,這樣做不夠優雅。由於是跳變,而不是使時間變快或變慢,依賴時序的程序會出錯(例如,如果ntpdate發現你的時間快了,則可能會經歷兩個相同的時刻,對某些應用而言,這是致命的)。因而,唯一一個可以令時間發生跳變的點,是計算機剛剛啟動,但還沒有啟動很多服務的那個時候。其余的時候,理想的做法是使用ntpd來校准時鍾,而不是調整計算機時鍾上的時間。
NTPD 在和時間服務器的同步過程中,會把 BIOS 計時器的振盪頻率偏差——或者說 Local Clock 的自然漂移(drift)——記錄下來。這樣即使網絡有問題,本機仍然能維持一個相當精確的走時。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM