在Ubuntu上的NTP設定與最佳化指南|實現精準時間同步與安全性強化

1. Ubuntu 中 NTP 的重要性

什麼是 NTP?

NTP(Network Time Protocol)是一種透過網路同步電腦系統時間的協定。維持系統的準確時間對於日誌一致性、交易處理以及網路通訊的準確性至關重要。如果時間不同步,可能會導致網路錯誤或數據不一致,對伺服器的運行尤為重要。

在 Ubuntu 中,推薦使用 chrony,即使在網路不穩定的環境中也能實現準確的時間同步。此外,Chrony 因其低延遲和快速同步特性,非常適合伺服器和客戶端環境。

年収訴求

2. NTP 的設定方法

安裝與設定 Chrony

Chrony 是 Ubuntu 18.04 及之後版本的標準 NTP 客戶端。以下步驟將說明如何安裝 Chrony 並使用 NTP 伺服器進行時間同步設定。

安裝步驟

sudo apt update
sudo apt install chrony

接下來,啟動 Chrony 服務並設定為開機自動啟動。

sudo systemctl start chrony
sudo systemctl enable chrony

設定檔位於 /etc/chrony/chrony.conf。若使用鄰近台灣的 NTP 伺服器,可設定如下:

server time.stdtime.gov.tw iburst
server 0.asia.pool.ntp.org iburst
server 1.asia.pool.ntp.org iburst
server 2.asia.pool.ntp.org iburst

iburst 選項會在首次連線時快速進行同步。

3. NTP 伺服器的最佳化與選擇

使用 NTP Pool Project

NTP Pool Project 提供全球各地的 NTP 伺服器,並根據地區提供最佳伺服器。設定多個 NTP 伺服器可以提高可靠性,即使其中一個伺服器停止運行,其他伺服器仍可作為備援。

以下的設定範例使用鄰近台灣的伺服器:

server time.stdtime.gov.tw iburst
server 0.asia.pool.ntp.org iburst
server 1.asia.pool.ntp.org iburst
server 2.asia.pool.ntp.org iburst

4. 時區設定

使用 timedatectl 指令

Ubuntu 的預設時區為 UTC,可以透過以下指令將時區更改為台北標準時間(CST):

sudo timedatectl set-timezone Asia/Taipei

更改後,可使用以下指令確認目前的時區設定:

timedatectl

5. 疑難排解

NTP 無法同步時的對應方法

檢查防火牆設定

NTP 使用 UDP 通訊埠 123,但該埠可能會被防火牆封鎖。可以使用以下指令開放 123 埠:

sudo ufw allow 123/udp

檢查 False-ticker

使用 ntpq -p 指令檢查 NTP 伺服器是否正常運作。若某些伺服器被標記為 x,表示其提供的時間可能不準確,應選擇其他伺服器或修正設定。

Stratum 16 錯誤

當 NTP 伺服器無法與上層伺服器同步時,會發生 Stratum 16 錯誤。此錯誤表示伺服器連線或網路設定有問題,應檢查設定並改用其他可靠的伺服器。

手動同步時間

若需要手動同步時間,可以使用以下指令:

sudo ntpdate time.stdtime.gov.tw

此外,也可以透過檢查 Chrony 的日誌來找出同步問題:

sudo journalctl -u chrony

6. 高負載環境下的 NTP 最佳化

調整 minpollmaxpoll

在需要高精度時間同步的環境中,可以調整 NTP 的輪詢間隔,以增加同步頻率並將時間誤差降至最低。以下設定是提升同步頻率的範例:

server time.stdtime.gov.tw iburst minpoll 4 maxpoll 10

使用 Juju 管理 NTP

在大型雲端環境中,可以透過 Juju 自動管理 NTP 服務。Juju 會自動監控各主機的負載,並選擇最佳主機作為 NTP 伺服器。以下指令可用於部署 Juju 管理的 NTP:

juju deploy cs:ntp ntp
juju config ntp auto_peers=true

此方法可自動化 NTP 管理並分散負載,確保高效的時間同步。

7. 強化安全性

NTP 伺服器的存取控制

為了提高安全性,可以限制 NTP 伺服器的存取權限,僅允許特定 IP 地址或網段連線。在 /etc/chrony/chrony.conf 中新增以下設定:

allow 192.168.1.0/24

此設定可防止外部未授權的 NTP 請求,提高內部網路的安全性。