Linux - NTP 時間伺服器
Contents
在許多系統確保精確的時間是非常重要的事,例如 Cluster 、 DB 等重要的系統,機器可以透過 網路時間協定 NTP(Network Time Protocol)來同步時間,在 Linux 除了 ntpd 之外更好選擇可以使用 chronyd 來進行同步時間。
1. chrony 套件介紹
Chrony 是在 Linux 實踐網路時間協定的方式,其中包含 chronyd 及 chronyc 一個背景執行程序及監控程式。
1.1 chronyd vs ntpd
摘要出下列 chronyd 點:
- chronyd 能更準確同步時間。
- chronyd 在網路較為擁塞環境也能較好的運行。
- chronyd 記憶體耗用較小。
chronyd 與 ntpd 比較,參考 chrony 官方網站說明。
2. 設定同步指定伺服器時間
2.1 指定台灣時間伺服器
選擇下列伺服器設定: - watch.stdtime.gov.tw - time.stdtime.gov.tw
- 刪除原預設的 pool 伺服器池(或註解也行),並添加指定的伺服器
|
|
時間伺服器設定檔
設定檔均為 /etc/chrony.conf 。
- 重啟 chronyd
|
|
- 驗證是否有同步
|
|
符號意思
只要出現 ^*
表示目前所同步的伺服器來源也說明同步狀態良好。
其他出現 ?
,X
,~
表示其未能同步時間,另可以使用 -v
參數來查看詳細內容。
3. Linux 伺服器當作內部時間伺服器使用
部分主機可能因法規或是特定因素等限制其訪問外部網路能力,顧其局內可以透過同步 DMZ 中的 Linux( 或是該主機特別開放對外同步校時 ) 的時間伺服器。
3.1. 開啟時間伺服器功能
- 開啟 allow 功能,並重啟時間伺服器
|
|
設定允許網段
可以指定允許單個IP或是整個網段能訪問其時間伺服器。
- 開放防火牆規則,並設定持久化
|
|
4. Linux 時間同步來源為 Windows 的 W32tm
Windows 中的 AD 時常當作企業內的 DNS 、 Kerberos、LDAP 及 NTP 時間伺服器所使用,對於 Linux 同步校時來源將是一個災難。
4.1. 同步 Windows 時間伺服器為例 :
|
|
同步時間失敗
上述很明顯看出該 123/udp 是暢通,為 chronyd 無法有效辨識其來源,以致校時失敗。
4.2. 解決方案
在 /etc/chronyd.conf 中添加下列參數
|
|
參考下列文件 :
歸因及文件參考
- Windows NTP server source is ignored by NTP client system, causing clock to be unsynchronized - Red Hat Customer Portal
- Red Hat Enterprise Linux server using NTP will not keep time in sync with Windows-synced NTP server / windows NTP server - Red Hat Customer Portal
- Synchronize chrony with a Windows NTP Server | Support | SUSE
5. 小結
同步時間雖然看齊來微不足道,但是在 Cluoud 雲的世界級 Cluster 環境可是第一關必修的一門課程。
如果你還沒有註冊 Like Coin,你可以在文章最下方看到 Like 的按鈕,點下去後即可申請帳號,透過申請帳號後可以幫我的文章按下 Like,而 Like 最多可以點五次,而你不用付出任何一塊錢,就能給我寫這篇文章的最大的回饋!