如何在 Ubuntu 20.04 LTS 上安裝 NTP 服務器和客戶端

NTP 或網絡時間協議是一種用於同步網絡中所有系統時鐘以使用相同時間的協議。 當我們使用術語 NTP 時,我們指的是協議本身以及運行在聯網計算機上的客戶端和服務器程序。 NTP 屬於傳統的 TCP/IP 協議套件,很容易被歸類為它最古老的部分之一。

當您最初設置時鐘時,在設置時鐘之前需要在 5 到 10 分鐘內進行 6 次交換。 一旦網絡中的時鐘同步,客戶端每 10 分鐘更新一次與服務器的時鐘。 這通常通過單個消息交換(事務)來完成。 這些事務使用您系統的端口號 123。

在本文中,我們將介紹如何執行以下操作的分步過程:

  • 在 Ubuntu 機器上安裝和配置 NTP 服務器。
  • 將 NTP 客戶端配置為與服務器時間同步。

我們已經在 Ubuntu 20.04 LTS 系統上運行了本文中提到的命令和過程。

在主機上安裝和配置 NTP 服務器

按照以下步驟在主機 Ubuntu 機器上安裝 NTP 服務器:

注意:我們使用 Ubuntu 命令行終端來安裝和配置 NTP。 您可以通過應用程序啟動器搜索或 Ctrl+Alt+T 快捷方式打開終端應用程序。

第 1 步:更新存儲庫索引

為了從 Internet 存儲庫安裝軟件的最新可用版本,您的本地存儲庫索引需要與它們一致。 運行以下命令 sudo 為了更新您的本地存儲庫索引:

$ sudo apt-get 更新

第 2 步:使用 apt-get 安裝 NTP 服務器

請運行以下命令作為 sudo 為了從 APT 存儲庫安裝 NTP 服務器守護程序:

$ sudo apt-get 安裝 ntp

請注意,只有授權用戶才能在 Ubuntu 上添加、刪除和配置軟件。

系統可能會詢問您的密碼 sudo 並為您提供 Y/n 選項以繼續安裝。 Enter Y 然後按回車鍵; 然後將在您的系統上安裝 NTP 服務器。 但是,此過程可能需要一些時間,具體取決於您的 Internet 速度。

第 3 步:驗證安裝(可選)

您可以通過在終端中運行以下命令來驗證您的 NTP 安裝並檢查版本號:

$ sntp –version

驗證 NTP 服務器版本

第 4 步:切換到離您所在位置最近的 NTP 服務器池

當您安裝 NTP 服務器時,它主要配置為獲取正確的時間。 但是,您可以將服務器池切換到離您所在位置最近的服務器池。 這包括在 /etc/ntp.conf 文件中進行一些更改。

在 nano 編輯器中打開文件為 sudo 通過運行以下命令:

$ sudo 納米 /etc/ntp.conf

在編輯器中打開 ntp.conf 文件

在此文件中,您將能夠看到池列表。 我們在上圖中突出顯示了此列表。 此處的任務是用最靠近您位置的時間服務器池替換此池列表。 pol.ntp.org 項目從大型時間服務器集群提供可靠的 NTP 服務。 要根據您的位置選擇泳池列表,請訪問以下頁面:

https://support.ntp.org/bin/view/Servers/NTPPoolServers

我們搜索了美國的泳池列表:

選擇NTP池服務器

該頁面告訴我們將以下幾行添加到 ntp.conf 文件中:

服務器 0.us.pool.ntp.org 服務器 1.us.pool.ntp.org 服務器 2.us.pool.ntp.org 服務器 3.us.pool.ntp.org

這是我的文件在添加上述行後的外觀:

在 ntp.conf 文件中添加池服務器

按 Ctrl+X 退出文件,然後輸入 y 以保存更改。

第五步:重啟NTP服務器

為了使上述更改生效,您需要重新啟動 NTP 服務器。 運行以下命令 sudo 為此:

$ sudo 服務ntp重啟

步驟 6:驗證 NTP 服務器是否正在運行

現在,通過以下命令檢查 NTP 服務的狀態:

$ sudo 服務ntp狀態

檢查NTP服務器狀態

活動狀態驗證您的 NTP 服務器是否已啟動並正在運行。

步驟 7:配置防火牆以便客戶端可以訪問 NTP 服務器

最後,是時候配置系統的 UFW 防火牆,以便傳入連接可以訪問 UDP 端口號 123 的 NTP 服務器。

運行以下命令 sudo 為傳入流量打開端口 123:

$ sudo ufw 允許從任何端口到任何端口 123 proto udp

配置防火牆以允許訪問 NTP 服務器

您的 Ubuntu 主機現已配置為用作 NTP 服務器。

將 NTP 客戶端配置為與 NTP 服務器時間同步

現在讓我們將 Ubuntu 客戶端機器配置為與 NTP 服務器時間同步。

第一步:安裝ntpdate

ntpdate 命令將讓您手動檢查與 NTP 服務器的連接配置。 打開客戶端機器上的終端應用程序並輸入以下命令作為 sudo:

$ sudo apt-get install ntpdate

安裝ntpdate程序

第二步:在hosts文件中指定NTP服務器的IP和主機名

要通過客戶端計算機中的主機名解析 NTP 服務器,您需要配置 /etc/hosts 文件。

打開主機文件為 sudo 在 nano 編輯器中輸入以下命令:

$ sudo 納米 /etc/hosts

現在添加您的 NTP 服務器的 IP 並在此文件中指定如下主機名:

按 Ctrl+X 退出文件,然後輸入 y 保存。

第三步:檢查客戶端機器時間是否與NTP服務器同步

以下 ntpdate 命令將讓您手動檢查客戶端和服務器系統之間的時間是否同步:

$ sudo ntpdate NTP-服務器-主機

理想情況下,輸出應顯示兩個系統之間的時間偏移。

第四步:在客戶端禁用systemd timesyncd服務

因為我們希望我們的客戶端與 NTP 服務器同步時間,所以讓我們禁用客戶端機器上的 timesyncd 服務。

Enter 執行以下命令:

禁用時間同步

第 5 步:在您的客戶端上安裝 NTP

運行以下命令 sudo 為了在您的客戶端機器上安裝 NTP:

$ sudo apt-get 安裝 ntp

第 6 步:配置 /etc/ntp.conf 文件以將您的 NTP 服務器添加為新的時間服務器

現在我們希望我們的客戶端機器使用我們自己的 NTP 主機服務器作為默認時間服務器。 為此,我們需要編輯客戶端計算機上的 /etc/ntp.conf 文件。

運行以下命令 sudo 為了在 Nano 編輯器中打開文件:

$ sudo 納米 /etc/ntp.conf

然後,在文件中添加以下行,其中 NTP-server-host 是您為 NTP 服務器指定的主機名:

服務器 NTP-server-host 更喜歡 iburst

這是我指定時間服務器後我的文件的樣子:

將 NTP 服務器添加到 ntp.conf 文件

按 Ctrl+x 以退出文件,然後輸入 y 以保存更改。

第七步:重啟NTP服務器

為了使上述更改生效,您需要重新啟動 NTP 服務。 運行以下命令 sudo 為此:

$ sudo 服務ntp重啟

步驟 8:查看時間同步隊列

現在您的客戶端和服務器機器被配置為時間同步。 您可以通過運行以下命令查看時間同步隊列:

$ ntpq -ps

您應該能夠看到 NTP-server-host 作為隊列中的時間同步主機/源。

因此,這就是安裝和配置 NTP 以在聯網的 Ubuntu 機器上同步時間所需的全部知識。 這個過程可能看起來有點麻煩,但如果您仔細地按照上述所有步驟一個一個地進行,您的機器將立即同步。