CentOS7使用NTP搭建時間同步伺服器

王子發表於2021-03-30

前言

為什麼要搭建時間同步伺服器呢?場景是這樣的。

我們有兩臺CentOS伺服器,其中一臺是可以連線外網的,下文中我們稱它為A伺服器,另一臺不能連線外網,但是與A伺服器在同一區域網中,下文中我們稱它為伺服器B。

現在我們需要將A伺服器的時間進行網路校準,這部分操作還是比較容易的,按照下面的步驟操作即可。

1、yum進行ntp的安裝:

yum -y install ntp

2、執行同步命令:

ntpdate time1.aliyun.com

3、檢視當前系統時間: 

date

這樣我們A伺服器的時間就通過阿里提供的時間伺服器進行了時間的校準工作。

那麼問題來了,我們的B伺服器也是需要校準時間的,但又沒有外網,所以無法使用相同的步驟來進行時間同步,所以王子就想到了在A伺服器上搭建時間同步伺服器,B伺服器通過A伺服器進行時間校準工作。

接下來就是去網上查閱資料實現了,但是網路上大部分人的文章寫的都很不完善,導致實踐出現了各種問題。

本文就是為了記錄下正確的搭建流程而編寫的,相信會對小夥伴們有所幫助。

時間伺服器搭建流程

首先我們要清楚,NTP伺服器預設是會使用udp的123埠的,所以我們的第一步就是開放123埠,命令如下:

firewall-cmd --permanent --zone=public --add-port=123/udp

增加埠後當然要重新載入防火牆,讓配置生效了

firewall-cmd --state

當然,如果小夥伴們用不到防火牆,直接關閉防火牆即可。

Centos7預設通過chronyd服務實現時鐘同步,我們需要關閉chronyd服務並使其開機不自啟,同時啟動ntpd並將其加入開機自啟:

systemctl stop chronyd
systemctl disable chronyd 
systemctl enable ntpd
systemctl start ntpd

接下來就是去修改ntp的配置檔案了:

vi /etc/ntp.conf

這個配置檔案中的內容我們主要修改如下內容:

#1 把下邊這行註釋掉
# restrict default nomodify notrap nopeer noquery
#2 刪除掉原有的4行server,增加下邊的兩行,127.127.1.0代表把本機作為時間伺服器
server 127.127.1.0
fudge   127.127.1.0 stratum 10

你去看其他的文章,會讓你修改很多東西,其實完全沒有必要,只要修改上邊這兩部分就可以了。

修改後重新啟動NTP服務即可。

systemctl restart ntpd

到這裡其實我們的時間伺服器就搭建完成了,現在我們只要在B伺服器上執行下邊的命令就可以進行時間同步了。

ntpdate A伺服器的IP地址

寫在後邊

實際的情況,我們不應該去手動執行時間同步命令,應該設定一個定時任務,每隔多長時間就自動去進行一次時間校對工作。

我們可以直接執行如下命令:

crontab -e

進入定時任務的vim介面,在其中設定定時任務執行同步時間的命令就可以了,比如下邊的內容,就是每隔1個小時執行一次同步命令:

0 */1 * * * ntpdate 192.160.99.201

 儲存後,可以通過下邊的命令檢視已經存在的任務:

crontab -l

 

往期文章推薦:

JVM專欄

訊息中介軟體專欄

併發程式設計專欄

相關文章