1. 程式人生 > >配置NTP伺服器

配置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相關包,使用rpmyum安裝。

# 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.orginternet上的公共時間伺服器池中的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 本機和上層NTPIP或主機名,“+”代表優先,“*”嗲表次優先

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虛擬機器同步(伺服器ipLinux虛擬機器的ip地址)

 圖片1.png

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

 

123keyid,設定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 server192.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.128keyid,keyserver),要和192.168.202.131client)的keyid,key 相同,否則會同步失敗。

 

ntpdntpdate的區別

ntpdate : 用來同步ntp server 伺服器上的時間。

ntp server : 提供ntp服務,同時也向上級ntp server 去同步自己的時間。

下面是網上關於ntpdntpdate區別的相關資料。如下所示所示:

使用之前得弄清楚一個問題,ntpdntpdate在更新時間時有什麼區別。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