如何在Linux中使用NTP同步時間?


時間同步是計算機系統的一個關鍵方面,因為它確保時鐘精確並與網路上的其他系統相容。不正確的時間會導致許多問題,例如資料不一致、檔案時間戳不正確以及不值得承擔的安全風險。幸運的是,Linux 提供了多種使用網路時間伺服器同步時間的方法,其中一種方法是透過網路時間協議 (NTP)。NTP 是一種開源協議,可在計算機系統之間提供精確的時間同步。

本文將引導您完成在 Linux 機器上使用 NTP 同步時間的過程。這將涵蓋從安裝 NTP 軟體包到配置時間源和檢查同步狀態的所有內容。無論您是 Linux 專家還是系統管理員,本文都將為您提供關於如何在 Linux 系統上使用 NTP 同步時間的簡明指南。

步驟 1:安裝 NTP

要在 Linux 上使用網路時間協議 (NTP) 同步時間,第一步是在您的 Linux 系統中安裝 NTP 軟體包。NTP 是一種免費的開源協議,可在網路中的計算機系統之間提供時間同步。NTP 的功能基於伺服器和客戶端之間交換帶時間戳的資料包。

您可以使用系統的包管理器來安裝 NTP。例如,apt-get 包管理器廣泛用於 Ubuntu 和 Debian 系統。我們在這個例子中將使用它。

第一個命令:

sudo apt-get update 

此命令將更新系統上的包列表,以確保您可以使用最新版本的 NTP 軟體包。第二個命令:

sudo apt-get install ntp 

此命令將在您的系統上安裝 NTP 軟體包。

安裝 NTP 後,它將自動與 /etc/ntp.conf 檔案中提到的主 NTP 伺服器同步時間。此檔案包含 NTP 的關鍵設定,例如使用哪些 NTP 伺服器進行時間同步。大多數 Linux 系統將 pool.ntp.org 設定為預設的 NTP 伺服器,這是一個在業界廣泛使用的可信伺服器。

要安裝 NTP 的替代方案 Chrony,我們可以執行以下命令:

sudo apt-get install chrony

安裝過程完成後,Chrony 將自動開始與 /etc/chrony/chrony.conf 檔案中配置的預設時間伺服器同步時間。

Chrony 相對於 NTP 的一個顯著優勢在於,它可以更有效地處理網路抖動和延遲。Chrony 使用高解析度時間戳維護本地時鐘,並用它來估計本地時鐘和時間源之間的偏移量。然後,它調整本地時鐘以最小化偏移量。

要檢查 Chrony 的同步狀態,我們可以使用帶有跟蹤選項的 chronyc 命令:

sudo chronyc tracking

此命令的輸出將顯示您的系統時鐘與 /etc/chrony/chrony.conf 檔案中配置的時間源之間的當前時間差。如果時間差很大,Chrony 將逐步調整系統時鐘以與時間源同步。

步驟 2:配置 NTP

在 Linux 系統上安裝 NTP 後,您需要將其配置為使用正確的時間伺服器。預設情況下,NTP 使用 /etc/ntp.conf 配置檔案中指定的時間伺服器。

要將 NTP 配置為使用特定的時間伺服器,您需要使用您選擇的文字編輯器編輯 /etc/ntp.conf 檔案。例如,您可以使用 nano 或 vim。

sudo nano /etc/ntp.conf

在配置檔案中,您將看到伺服器列表及其關聯的設定。您可以新增或刪除伺服器以滿足您的需求。

要使用 NTP Pool Project 的時間伺服器,您可以將以下幾行新增到 /etc/ntp.conf 檔案中:

server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org
server 3.pool.ntp.org

這些是主要的 NTP Pool Project 伺服器,它們非常可靠,並且可以在世界任何地方訪問。

新增要用於 NTP 時間同步的伺服器後,儲存對 /etc/ntp.conf 檔案的更改並退出文字編輯器。

需要注意的是,NTP 使用分層方法進行時間同步,其中層次結構中較高的伺服器被認為比層次結構中較低的伺服器更可靠。層次結構通常組織成四個層級,其中 1 層伺服器最可靠和權威,4 層伺服器最不可靠。

編輯配置檔案後,您需要重新啟動 NTP 服務以應用更改:

sudo service ntp restart

這將使用新的配置重新啟動 NTP 服務,並開始使用新的時間伺服器同步您的系統時間。

步驟 3:啟動 NTP

啟動 NTP 服務時,它將自動連線到我們在配置檔案中指定的時間伺服器,並開始同步系統時間。NTP 服務將定期查詢時間伺服器並調整系統時間以使其與時間伺服器保持同步。

要啟動 NTP 服務,我們可以使用以下命令:

sudo service ntp start

此命令將在我們的 Linux 機器上啟動 NTP 服務。如果服務已經在執行,則該命令只會輸出一條訊息,說明該服務已經在執行。

步驟 4:檢查 NTP 狀態

我們可以使用帶有 -p 選項的 ntpq 命令來執行此操作。ntpq 命令用於查詢 NTP 伺服器,-p 選項代表“對等狀態”。此選項顯示對等方的表格,以及它們相關的統計資料和可達性資訊。

命令如下:

ntpq -p

命令的輸出如下所示:

	     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+0.pool.ntp.org  .POOL.          16 p    -   64    0    0.000   -0.020   0.015
*1.pool.ntp.org  .POOL.          16 p    -   64    0    0.000   -0.021   0.015
+2.pool.ntp.org  .POOL.          16 p    -   64    0    0.000   -0.020   0.015
+3.pool.ntp.org  .POOL.          16 p    -   64    0    0.000   -0.022   0.015

輸出示例顯示 NTP 服務已成功與 /etc/ntp.conf 配置檔案中指定的 NTP Pool Project 的四個時間伺服器同步。某些伺服器名稱旁邊出現加號 (+) 表示它們當前用於時間同步。

每個時間伺服器在“refid”列中都用唯一的四字元引用 ID 表示,該 ID 標識時間源。“st”列顯示每個伺服器的分層級別,表示與本地機器的直接連線值為 16。

此外,“延遲”、“偏移”和“抖動”列提供了對各種時間同步統計資料的深入瞭解。“延遲”列顯示每個伺服器的往返延遲時間,“偏移”列顯示本地系統時鐘與每個時間伺服器之間的時間差。最後,“抖動”列顯示一段時間內時間偏移的變化。

結論

總而言之,NTP 是一項重要的服務,有助於維護 Linux 機器上的精確時間。透過與外部時間伺服器同步,NTP 確保系統時鐘保持準確,這對各種應用程式至關重要,從網路通訊到系統安全。

在上述文章中,我們討論了在 Linux 機器上使用 NTP 同步時間的步驟。我們安裝了 NTP 服務,更新了配置檔案,並使用 ntpq -p 命令檢查了同步狀態。透過遵循這些步驟並定期監控同步狀態,我們可以確保系統時鐘保持準確和可靠。

現代計算需要精確的計時,而 NTP 在 Linux 機器上實現這種精度方面發揮著重要作用。

更新於:2023年7月27日

2K+ 瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.