Centos7下NTP服務的詳細部署說明


一、NTP 是什么?

NTP ( Network Time Protocol,網絡時間協議)是用來使計算機時間同步化的一種協議。它可以使計算機對其服務器或時鍾源做同步化,它可以提供高精准度的時間校正(LAN上與標准間差小於1毫秒,WAN上幾十毫秒),且可介由加密確認的方式來防止惡意的協議攻擊。

模式采用c/s模式

 

 

ntp的安裝
檢查是否安裝了ntp相關包。如果沒有安裝ntp相關包,使用rpm或yum安裝,安裝也非常簡單方便
rpm -qa|grep ntp
ntp安裝
yum install -y ntp
端口號查看:
/etc/services
0
 
二、NTP 實現什么目的?
  目的很簡單,就是為了提供准確時間,保障業務系統間的時間的一致性。因為我們的手表、手機、電腦等電子設備,經常會跑着跑着時間就出現了誤差,或快或慢的少幾秒,時間長了甚至誤差過分鍾。這對系統數據的准確性、有效性非常重要,同時對於后期運維工作也起着舉足輕重的作用。

三、NTP服務的部署

NTP服務是采用 Server/Client 的模式進行時間的同步,也就是說需要區分為NTP服務端和NTP客戶端。另外,默認情況下所有需要進行時間同步的服務器,都要求安裝NTP服務。其中需要一台作為內部NTP服務端,其它的作為NTP客戶端。

如果客戶端不安裝NTP,就只能通過ntpdate來手工同步時間,而使用ntpdate,大部分時候搭配crond定時任務來進行校時。
使用ntpd服務,要好於ntpdate加cron的組合。因為,ntpdate同步時間,會造成時間的跳躍,對一些依賴時間的程序和服務會造成影響。比 如sleep,timer等。而且,ntpd服務可以在修正時間的同時,修正cpu tick。理想的做法為,在開機的時候,使用ntpdate強制同步時間,在其他時候使用ntpd服務來同步時間。
要注意的是,ntpd 有一個自我保護設置: 如果本機與上源時間相差太大, ntpd 不運行. 所以新設置的時間服務器一定要先 ntpdate 從上源取得時間初值, 然后啟動 ntpd服務。ntpd服務 運行后, 先是每64秒與上源服務器同步一次, 根據每次同步時測得的誤差值經復雜計算逐步調整自己的時間, 隨着誤差減小, 逐步增加同步的間隔. 每次跳動, 都會重復這個調整的過程.

在安裝NTP服務前,我們需要檢查當前系統是否有啟動NTP服務

    [root@localhost ~]# ps -ef | grep ntpd
    root     21284 17818  0 15:30 pts/0    00:00:00 grep --color=auto ntpd

    #查看是否安裝了ntp服務
    [root@localhost ~]# rpm -qa | grep ntp
    ntpdate-4.2.6p5-25.el7.centos.2.x86_64

    #如果安裝了ntp,則會顯示如下:
    [root@localhost etc]# rpm -qa | grep ntp
    ntp-4.2.6p5-28.el7.centos.x86_64
    ntpdate-4.2.6p5-28.el7.centos.x86_64

一般情況下,NTP服務包括三個rpm包:
1: autogen-libopts-5.18-5.el7.x86_64.rpm
2: ntpdate-4.2.6p5-28.el7.centos.x86_64.rpm
3: ntp-4.2.6p5-28.el7.centos.x86_64.rpm
注:版本號會根據源服務端包的實際版本變化,以服務端版本為准。

在開始安裝NTP服務前,建議最好先查看下本機系統的時區信息,並且保證所有關聯的設備時區信息保持一致。
在Centos7下使用timedatectl命令可以查詢和更改系統時鍾和設置,你可以使用此命令來設置或更改當前的日期,時間和時區,或實現與遠程NTP服務器的自動系統時鍾同步。具體的可查閱timedatectl文檔。

    #查看當前系統時區及其它關聯信息

    [root@localhost ~]# timedatectl status
          Local time: 二 2019-01-22 17:11:33 CST
      Universal time: 二 2019-01-22 09:11:33 UTC
            RTC time: 二 2019-01-22 09:11:33
           Time zone: Asia/Shanghai (CST, +0800)
         NTP enabled: yes/no
    NTP synchronized: yes/no
     RTC in local TZ: no
          DST active: n/a

其中Time zone即為時區數據。

NTP服務的安裝其實非常簡單,使用yum指令進行安裝即可。

    #通過yum安裝NTP服務
    [root@localhost ~]# yum install -y ntp

在配置及啟動服務前,建議先對本機進行校時。這里采用的是阿里的NTP服務器,畢竟阿里的還是比較穩定。

    [root@localhost ~]# ntpdate ntp1.aliyun.com
    22 Jan 16:38:28 ntpdate[2938]: adjust time server 120.25.115.20 offset 0.243404 sec

內部網絡在沒有時同設備的情況下,需要指定一台NTP服務器與外網授時中心連接,進行時間同步。其它NTP客戶端將服務端指向到這台內部NTP服務進行時間同步。


四、內部NTP服務端的配置
NTP安裝完成后,首先需要查看NTP安裝在哪里。根據查詢,大部分時候,NTP都默認安裝在/etc目錄下。

    [root@localhost ~]# whereis ntp
    ntp: /etc/ntp /etc/ntp.conf

NTP的配置文件默認是ntp.conf,文件存儲目錄在/etc目錄下,沒有在/etc/ntp目錄里。
該配置文件主要需要注意的是兩個參數:restrict 和server
restrict 主要用於配置訪問權限,即哪些IP可以訪問本機NTP服務,server主要用於配置本機訪問的上層NTP服務器IP。
1)訪問權限配置

權限的設定主要以 restrict 這個參數來設定,主要的語法為:

        # restrict IP mask netmask_IP parameter
        # 其中 IP 可以是軟件地址,也可以是 default ,default 就類似 0.0.0.0
        # 至於 paramter 則有:
        # ignore :關閉所有的 NTP 聯機服務
        # nomodify:表示 Client 端不能更改 Server 端的時間參數,不過,
        # Client 端仍然可以透過 Server 端來進行網絡校時。
        # notrust :該 Client 除非通過認證,否則該 Client 來源將被視為不信任網域
        # noquery :不提供 Client 端的時間查詢
        # notrap :不提供trap這個遠程事件登入
        # 如果 paramter 完全沒有設定,那就表示該 IP (或網域)“沒有任何限制”

        restrict default nomodify notrap noquery # 關閉所有的 NTP 要求封包
        restrict 127.0.0.1 #這是允許本級查詢
        restrict 192.168.0.1 mask 255.255.255.0 nomodify
        #在192.168.0.1/24網段內的服務器就可以通過這台NTP Server進行時間同步了

2)上層NTP服務配置

要設定上層NTP服務器主要以 server 這個參數來設定,語法為:

        # server [IP|HOST Name] [prefer]
        # server 參數后面的 perfer,表示主要以該IP來作為時間校正。
        # 為了解決更新時間封包的傳送延遲動作,可以使用 driftfile 來定義當前NTP服務主機在與外部NTP服務校時所花費的時間
        # 而與外部通信的信息記錄在 driftfile 后面接的文件內
        # 例如下面的范例中,內部NTP服務與外部NTP服務聯機時所花費的時間會記錄在 /etc/ntp/drift文件內
        server ntp1.aliyun.com
        server ntp2.aliyun.com
        server cn.pool.ntp.org prefer

    driftfile /etc/ntp/drift

   末尾參數說明:

       perfer:表示優先級最高,主要以該IP來作為時間校正。
       burst :當一個運程NTP服務器可用時,向它發送一系列的並發包進行檢測。
       iburst :當一個運程NTP服務器不可用時,向它發送一系列的並發包進行檢測。

其他設置值,以系統默認值即可。

五、NTP客戶端的配置

首先確定客戶端已經正確安裝NTP服務(如上第三節 NTP服務的部署)。

然后,我們開始對客戶端進行配置。客戶端的配置很簡單,也是對/etc/ntp.conf文件進行編輯,主要修改server參數,將server指定為內部NTP服務端的IP即可。

如果在同步時,提示異常,可先檢查服務端防火牆是否開放了相應端口。

    [root@localhost ~]# ntpdate 192.168.61.188
    23 Jan 15:16:31 ntpdate[16810]: no server suitable for synchronization found

六、NTP基本操作指令

    #啟動NTP服務
    systemctl start ntpd
    #開機自啟
    [root@localhost ~]# systemctl enable ntpd
    Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.

    #查看NTP服務是否已正常占用指定端口
    netstat -ln|grep 123

    #驗證NTP同步上層NTP服務狀態
    ntpq –p

特別提醒:在啟動NTP服務前,先對提供服務的這台主機手動的校正一次時間。如前所述,如果NTP發現時間差不多,不會更新本地時間,可能導致時間有誤差,對於時間一致要求非常高的應用場景非常不利。

如何確認我們的NTP服務器已經更新了自己的時間呢?

    #沒有啟動NTP或NTP配置異常時   
    [root@localhost ~]# ntpstat
    Unable to talk to NTP daemon. Is it running?

    #使用ntpstat來查看同步狀態
    [root@localhost etc]# ntpstat
    synchronised to NTP server (120.25.115.20) at stratum 3
       time correct to within 37 ms
       polling server every 256 s

    [root@localhost ~]# timedatectl status
          Local time: 二 2019-01-22 17:11:33 CST
      Universal time: 二 2019-01-22 09:11:33 UTC
            RTC time: 二 2019-01-22 09:11:33
           Time zone: Asia/Shanghai (CST, +0800)
         NTP enabled: yes/no
    NTP synchronized: yes/no
     RTC in local TZ: no
          DST active: n/a

查看系統時間狀態時,其中NTP enabled參數的控制指令為:

    timedatectl set-ntp yes/no

在沒開啟NTP enabled情況下,NTP synchronized參數一般為no,表示還沒有進行過時間同步,在時間同步后會由no變為yes。當然,如果使用過ntpdate手工同步過,該參數也會是yes狀態。

    #如果時區不對,還需要使用timedatectl設置時區
    timedatectl set-timezone Asia/Shanghai

 七、常用外部NTP服務地址
    cn.pool.ntp.org
    cn.ntp.org.cn   //IP:110.75.186.249
    pool.ntp.org    //IP:110.75.190.198
    ntp.sjtu.edu.cn //IP:202.120.2.101
    來自阿里雲的 NTP 服務器:
        ntp1.aliyun.com
        ntp2.aliyun.com
        ntp3.aliyun.com
        ntp4.aliyun.com
        ntp5.aliyun.com
        ntp6.aliyun.com
        ntp7.aliyun.com

 

 

 

 

 

 

 

 


參考:Linux配置ntp時間服務器(全)


免責聲明!

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



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