利用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