配置NTP伺服器
利用internetNTP伺服器同步Linux虛擬機器-NTP伺服器,然後再使用Linux虛擬機器-NTP伺服器同步物理主機-NTP客戶端。Linux虛擬機器既充當internet-NTP的客戶端,又充當物理主機-NTP的服務端。
環境概述:Vmworkstation12
Linux虛擬機器
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.2 (Maipo)
# uname -a
Linux localhost.localdomain 3.10.0-327.el7.x86_64 #1 SMP Thu Oct 29 17:29:29 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux
操作步驟:
(1)確保Linux虛擬機器可以連線上internet。
# ping www.baidu.com
PING www.baidu.com (61.135.169.121) 56(84) bytes of data.
64 bytes from 61.135.169.121: icmp_seq=1 ttl=54 time=33.2 ms
64 bytes from 61.135.169.121: icmp_seq=2 ttl=54 time=15.2 ms
(2)安裝NTP包,並且編輯/etc/ntp.conf檔案。
# rpm -qa | grep ntp //檢查是否安裝了ntp相關包。
# yum install -y ntp //如果沒有安裝ntp相關包,使用rpm或yum安裝。
# vim /etc/ntp.conf
restrict 192.168.202.0 mask 255.255.255.0 nomodify notrap
新增控管許可權:
設定允許訪問該ntp伺服器的IP地址(這裡指的是物理主機的IP段)。在上例中,掩碼地址擴充套件為255,表示192.168.202.1-192.168.202.254都可以使用Linux虛擬機器上的NTP伺服器來同步時間。
Nomodify notrap表示不允許客戶端配置為時間伺服器或者作為時間的節點,這樣可以有效控制伺服器的效能。
server cn.pool.ntp.org prefer
指定上層NTP伺服器(上層NTP伺服器地址,因為是通過interne-NTP同步Linux虛擬機器,所以需要填寫internet上的NTP伺服器),在上例中,cn.pool.ntp.org是internet上的公共時間伺服器池中的NTP伺服器,China----cn.pool.ntp.org
prefer代表優先主機。
(2)新增防火牆規則
由於NTP服務需要使用到UDP埠號123,所以在系統的防火牆啟動的情況下,必須開放UDP埠號123。
# firewall-cmd --add--service=ntp --permanent
# firewall-cmd --reload
(4)啟動NTP服務,並且配置NTP開機自啟
#systemctl start ntpd 啟動NTP服務
#systemctl enable ntpd 配置NTP開機自啟
#systemctl status ntpd 檢視NTP服務的狀態
● ntpd.service - Network Time Service
Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2019-01-07 09:28:41 CST; 4s ago
Process: 3250 ExecStart=/usr/sbin/ntpd -u ntp:ntp $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 3252 (ntpd)
CGroup: /system.slice/ntpd.service
└─3252 /usr/sbin/ntpd -u ntp:ntp -g
Jan 07 09:28:42 localhost.localdomain ntpd[3252]: Listen normally on 5 eth3 192.168.100.113 UDP 123
Jan 07 09:28:42 localhost.localdomain ntpd[3252]: Listen normally on 6 virbr0 192.168.122.1 UDP 123
Jan 07 09:28:42 localhost.localdomain ntpd[3252]: Listen normally on 7 eth2 fe80::20c:29ff:fe1d:8d5f UDP 123
Jan 07 09:28:42 localhost.localdomain ntpd[3252]: Listen normally on 8 eth1 fe80::20c:29ff:fe1d:8d55 UDP 123
Jan 07 09:28:42 localhost.localdomain ntpd[3252]: Listen normally on 9 lo ::1 UDP 123
Jan 07 09:28:42 localhost.localdomain ntpd[3252]: Listen normally on 10 eth3 fe80::20c:29ff:fe1d:8d69 UDP 123
Jan 07 09:28:42 localhost.localdomain ntpd[3252]: Listening on routing socket on fd #27 for interface updates
Jan 07 09:28:44 localhost.localdomain ntpd[3252]: 0.0.0.0 c016 06 restart
Jan 07 09:28:44 localhost.localdomain ntpd[3252]: 0.0.0.0 c012 02 freq_set kernel 14.230 PPM
Jan 07 09:28:44 localhost.localdomain ntpd[3252]: 0.0.0.0 c615 05 clock_sync
注意:必須開啟ntp功能
#timedatectl set-ntp yes
(5)檢查是否同步
在Linux虛擬機器上檢查,時鐘是否和internet-NTP同步。
# ntpstat -p 檢視NTP伺服器有無和上層NTP連通
synchronised to NTP server (193.228.143.12) at stratum 3
time correct to within 246 ms
polling server every 256 s
# ntpq -p 檢視NTP伺服器與上層NTP的狀態
remote refid st t when poll reach delay offset jitter
==============================================================================
+cn.ntp.faelix.n 185.134.196.169 2 u 73 64 2 267.589 -0.818 8.186
+ntp.wdc1.us.lea 130.133.1.10 2 u 15 64 3 236.361 4.704 18.434
+ntp2.flashdance 192.36.143.150 2 u 72 64 2 199.253 -1.115 2.915
+li461-162.membe 103.1.106.69 2 u 13 64 3 83.849 6.663 4.146
*ntp8.flashdance 194.58.202.148 2 u 81 64 2 220.509 -2.216 0.000
remote 本機和上層NTP的IP或主機名,“+”代表優先,“*”嗲表次優先
refid 參考上一層的NTP主機地址
st stratum階層
when 多少秒前曾經同步過時間
pool 下次更新在多少秒之後
reach已經向上層NTP伺服器要求更新的次數
delay 網路延遲
jitter 源時鐘和本地時鐘的時間差
# timedatectl 檢視時鐘是否和上層NTP伺服器同步
Local time: Sun 2019-01-06 13:05:52 CST
Universal time: Sun 2019-01-06 05:05:52 UTC
RTC time: Sun 2019-01-06 05:05:52
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
在物理機上檢查,時鐘是否和Linux虛擬機器同步(伺服器ip為Linux虛擬機器的ip地址)
使用MD5來驗證ntp時間同步
ntp server 192.168.202.128 Linux虛擬機器RHEL7.2
ntp client 192.168.202.131 Linux虛擬機器RHEL7.2
server
(1)在ntpserver端修改/etc/ntp.conf
#允許192.168.202.1-192.168.202.254同步並需要驗證MD5
restrict 192.168.202.0 mask 255.255.255.0 notrust vim /etc/ntp.conf
123是 keyid,設定123是信任的
keys /etc/ntp/keys
trustedkey 123
enable auth
(2)編輯/etc/ntp/keys檔案
123 是keyid, M 是MD5, china 就是金鑰key
# vim /etc/ntp/keys
123 M china
(3)啟動ntp服務
# systemctl start ntpd
注意:防火牆的設定以及開啟NTP功能
做為ntp server的192.168.202.128 將無法使用ntpdate命令來校對時間,因為ntpdate 和 ntp server 都繫結udp port 123
client
(1)在ntp client端修改/etc/ntp.conf
#vim /etc/ntp.conf
server 192.168.202.128 iburst 指定ntp server
(2)編輯/etc/ntp/keys
client端的/etcntp/keys檔案格式和ntp serve上/etc/ntp/keys檔案是一樣的。
123 是keyid, M 是MD5, china 就是金鑰key
# cat /etc/ntp/keys
123 M china
(3)啟動ntp服務
# systemctl start ntpd
驗證
-a 123表示傳送驗證,金鑰序號為123。
-k /etc/ntp/keys表示序號123的金鑰在/etc/ntp/keys檔案裡。
# ntpdate -a 123 -k /etc/ntp/keys 192.168.202.128 測試環境使用,生產環境慎用
7 Jan 10:48:26 ntpdate[6679]: adjust time server 192.168.202.128 offset 0.004077 sec
注意:192.168.202.128的keyid,key(server),要和192.168.202.131(client)的keyid,key 相同,否則會同步失敗。
ntpd、ntpdate的區別
ntpdate : 用來同步ntp server 伺服器上的時間。
ntp server : 提供ntp服務,同時也向上級ntp server 去同步自己的時間。
下面是網上關於ntpd與ntpdate區別的相關資料。如下所示所示:
使用之前得弄清楚一個問題,ntpd與ntpdate在更新時間時有什麼區別。ntpd不僅僅是時間同步伺服器,它還可以做客戶端與標準時間伺服器進行同步時間,而且是平滑同步,並非ntpdate立即同步, 在生產環境中慎用ntpdate,也正如此兩者不可同時執行。
時鐘的躍變,對於某些程式會導致很嚴重的問題。許多應用程式依賴連續的時鐘——畢竟,這是一項常見的假定,即,取得的時間是線性的,一些操作,例如資料庫事務,通常會地依賴這樣的事實:時間不會往回跳躍。不幸的是,ntpdate調整時間的方式就是我們所說的”躍變“:在獲得一個時間之後,ntpdate使用settimeofday(2)設定系統時間,這有幾個非常明顯的問題:
第一,這樣做不安全。ntpdate的設定依賴於ntp伺服器的安全性,***者可以利用一些軟體設計上的缺陷,拿下ntp伺服器並令與其同步的伺服器執行某些消耗性的任務。由於ntpdate採用的方式是跳變,跟隨它的伺服器無法知道是否發生了異常(時間不一樣的時候,唯一的辦法是以伺服器為準)。
第二,這樣做不精確。一旦ntp伺服器宕機,跟隨它的伺服器也就會無法同步時間。與此不同,ntpd不僅能夠校準計算機的時間,而且能夠校準計算機的時鐘。
第三,這樣做不夠優雅。由於是跳變,而不是使時間變快或變慢,依賴時序的程式會出錯(例如,如果ntpdate發現你的時間快了,則可能會經歷兩個相同的時刻,對某些應用而言,這是致命的)。因而,唯一一個可以令時間發生跳變的點,是計算機剛剛啟動,但還沒有啟動很多服務的那個時候。其餘的時候,理想的做法是使用ntpd來校準時鐘,而不是調整計算機時鐘上的時間。
NTPD 在和時間伺服器的同步過程中,會把 BIOS 計時器的振盪頻率偏差——或者說 Local Clock 的自然漂移(drift)——記錄下來。這樣即使網路有問題,本機仍然能維持一個相當精確的走時。
參考資料:
https://www.cnblogs.com/kerrycode/archive/2015/08/20/4744804.html
http://www.cnblogs.com/alfred0311/p/7873980.html
https://blog.csdn.net/u010603298/article/details/75042989?utm_source=blogxgwz6
https://blog.csdn.net/boy198332/article/details/28637227
https://blog.csdn.net/finnson/article/details/83111063