Ubuntu部署NTP伺服器和客戶端
Ubuntu部署NTP伺服器和客戶端
NTP或網路時間協議是一種協議,用於將網路中的所有系統時鐘同步以使用同一時間。當我們使用術語NTP時,我們指的是協議本身,也指網路計算機上執行的客戶端和伺服器程式。 NTP屬於傳統的TCP /IP協議套件,可以很容易地歸類為它最古老的部分之一。
最初設定時鐘時,需要在設定時鐘之前的5到10分鐘內進行六次交換。網路中的時鐘同步後,客戶端每10分鐘更新一次與伺服器的時鐘。通常,這是通過單個訊息交換(事務)完成的。這些事務使用系統的埠號123。
在本文中,我們將描述如何執行以下操作的step-by-step過程:
- 在Ubuntu計算機上安裝和配置NTP伺服器。
- 將NTP客戶端配置為與伺服器時間同步。
我們已經在Ubuntu 18.04 LTS系統上運行了本文中提到的命令和過程。
第一部分:在主機上安裝和配置NTP伺服器
請按照以下步驟操作,以便在主機Ubuntu計算機上安裝NTP伺服器:
注意:為了安裝和配置NTP,我們使用Ubuntu命令列終端。您可以通過應用程式啟動器搜尋或Ctrl + Alt + T快捷方式開啟“終端”應用程式。
步驟1:更新儲存庫索引
為了從Internet資訊庫安裝最新的可用軟體版本,您的本地資訊庫索引需要與它們保持一致。以sudo身份執行以下命令,以更新您的本地儲存庫索引:
$ sudo apt-get update
步驟2:使用apt-get安裝NTP伺服器
請以sudo身份執行以下命令,以便從APT儲存庫安裝NTP伺服器守護程式:
$ sudo apt-get install ntp
請注意,只有授權使用者才能在Ubuntu上新增,刪除和配置軟體。
系統可能會詢問您sudo的密碼,並且還會為您提供一個Y /n選項以繼續安裝。輸入Y,然後按Enter; NTP伺服器將安裝在您的系統上。但是,該過程可能需要一些時間,具體取決於您的Internet速度。
步驟3:驗證安裝(可選)
您可以通過在終端中執行以下命令來驗證NTP的安裝並檢查版本號:
$ sntp --version
步驟4:切換到距離您最近的NTP伺服器池
安裝NTP伺服器時,大多數情況下將其配置為獲取適當的時間。但是,您可以將伺服器池切換到離您的位置最近的伺服器池。這包括在/等等/ntp.conf檔案。
通過執行以下命令,以sudo的身份在nano編輯器中開啟檔案:
$ sudo nano /etc/ntp.conf
在此檔案中,您將能夠看到一個池列表。我們已在上圖中突出顯示了此列表。此處的任務是用最接近您所在位置的時間伺服器池替換此池列表。 pol.ntp.org專案從大型時間伺服器群集中提供可靠的NTP服務。要根據您的位置選擇一個池列表,請訪問以下頁面:
我們已經搜尋了美國的游泳池清單:
該頁面告訴我們將以下行新增到ntp.conf檔案中:
server 0.us.pool.ntp.org
server 1.us.pool.ntp.org
server 2.us.pool.ntp.org
server 3.us.pool.ntp.org
這是我的檔案在新增以上行之後的外觀:
通過按Ctrl + X退出檔案,然後輸入y來儲存更改。
步驟5:重新啟動NTP伺服器
為了使以上更改生效,您需要重新啟動NTP伺服器。為此,以sudo身份執行以下命令:
$ sudo service ntp restart
步驟6:驗證NTP伺服器正在執行
現在,通過以下命令檢查NTP服務的狀態:
$ sudo service ntp status
活動狀態驗證您的NTP伺服器已啟動並正在執行。
步驟7:配置防火牆,以便客戶端可以訪問NTP伺服器
最後,是時候配置系統的UFW防火牆,以使傳入的連線可以通過UDP埠號123訪問NTP伺服器。
以sudo身份執行以下命令以開啟埠123以接收傳入流量:
$ sudo ufw allow from any to any port 123 proto udp
您的Ubuntu主機現已配置為用作NTP伺服器。
第二部分:將NTP客戶端配置為與NTP伺服器進行時間同步
現在讓我們將Ubuntu客戶端計算機配置為與NTP伺服器時間同步。
步驟1:安裝ntpdate
ntpdate命令將使您可以手動檢查與NTP-server的連線配置。在客戶端計算機上開啟終端應用程式,然後輸入以下命令作為sudo:
$ sudo apt-get install ntpdate
步驟2:在hosts檔案中指定NTP伺服器的IP和主機名
為了使NTP伺服器在客戶端計算機中由主機名解析,您需要配置/etc /hosts檔案。
輸入以下命令,在nano編輯器中以sudo形式開啟hosts檔案:
$ sudo nano /etc/hosts
現在新增您的NTP伺服器的IP並在此檔案中指定一個主機名,如下所示:
通過按Ctrl + X退出檔案,然後通過輸入y儲存檔案。
第3步:檢查客戶端計算機的時間是否與NTP伺服器同步
以下ntpdate命令將使您可以手動檢查客戶端和伺服器系統之間的時間是否同步:
$ sudo ntpdate NTP-server-host
理想情況下,輸出應顯示兩個系統之間的時間偏移。
步驟4:在客戶端上禁用systemd timesyncd服務
因為我們希望客戶端與NTP伺服器同步時間,所以讓我們在客戶端計算機上禁用時間同步服務。
輸入以下命令來這樣做:
步驟5:在客戶端上安裝NTP
以sudo身份執行以下命令,以便在客戶端計算機上安裝NTP:
$ sudo apt-get install ntp
步驟6:配置/etc/ntp.conf檔案,將NTP伺服器新增為新的時間伺服器
現在,我們希望客戶端計算機將自己的NTP主機伺服器用作預設時間伺服器。為此,我們需要在客戶端計算機上編輯/etc/ntp.conf檔案。
以sudo身份執行以下命令,以便在Nano編輯器中開啟檔案:
$ sudo nano /etc/ntp.conf
然後,在檔案中新增以下行,其中NTP-server-host是您為NTP伺服器指定的主機名:
server NTP-server-host prefer iburst
指定時間伺服器後,檔案的外觀如下所示:
按Ctrl + x退出檔案,然後輸入y儲存更改。
步驟7:重新啟動NTP伺服器
為了使以上更改生效,您需要重新啟動NTP服務。為此,以sudo身份執行以下命令:
$ sudo service ntp restart
步驟8:檢視時間同步佇列
現在,您的客戶端和伺服器計算機已配置為time-synced。您可以通過執行以下命令來檢視時間同步佇列:
$ ntpq -p
您應該能夠看到NTP-server-host作為佇列中的時間同步主機/源。
這就是安裝和配置NTP以在聯網的Ubuntu計算機上同步時間所需的全部知識。該過程可能看起來有些麻煩,但是如果您認真執行上述所有步驟one-by-one,您的計算機將立即同步。