網絡時間協議(NTP)用來同步網絡上不同主機的系統時間。你管理的所有主機都可以和一個指定的被稱為 NTP 服務器的時間服務器同步它們的時間。而另一方面,一個 NTP 服務器會將它的時間和任意公共 NTP 服務器,或者你選定的服務器同步。由 NTP 管理的所有系統時鐘都會同步精確到毫秒級。
在公司環境中,如果他們不想為 NTP 傳輸打開防火墻,就有必要設置一個內部 NTP 服務器,然后讓員工使用內部服務器而不是公共 NTP 服務器。在這個指南中,我們會介紹如何將一個 CentOS 系統配置為 NTP 服務器。在介紹詳細內容之前,讓我們先來簡單了解一下 NTP 的概念。
為什么我們需要 NTP?
由于制造工藝多種多樣,所有的(非原子)時鐘并不按照完全一致的速度行走。有一些時鐘走的比較快而有一些走的比較慢。因此經過很長一段時間以后,一個時鐘的時間慢慢的和其它的發生偏移,這就是常說的 “時鐘漂移” 或 “時間漂移”。為了將時鐘漂移的影響最小化,使用 NTP 的主機應該周期性地和指定的 NTP 服務器交互以保持它們的時鐘同步。
在不同的主機之間進行時間同步對于計劃備份、入侵檢測記錄、分布式任務調度或者事務訂單管理來說是很重要的事情。它甚至應該作為日常任務的一部分。
NTP 的層次結構
NTP 時鐘以層次模型組織。層級中的每層被稱為一個 stratum(階層)。stratum 的概念說明了一臺機器到授權的時間源有多少 NTP 跳。
Stratum 0 由沒有時間漂移的時鐘組成,例如原子時鐘。這種時鐘不能在網絡上直接使用。Stratum N (N > 1) 層服務器從 Stratum N-1 層服務器同步時間。Stratum N 時鐘能通過網絡和彼此互聯。
NTP 支持多達 15 個 stratum 的層級。Stratum 16 被認為是未同步的,不能使用的。
準備 CentOS 服務器
現在讓我們來開始在 CentOS 上設置 NTP 服務器。
首先,我們需要保證正確設置了服務器的時區。在 CentOS 7 中,我們可以使用 timedatectl 命令查看和更改服務器的時區(比如,"Australia/Adelaide",LCTT 譯注:中國可設置為 Asia/Shanghai )
繼續并使用 yum 安裝需要的軟件
然后我們會添加全球 NTP 服務器用于同步時間。
默認情況下,NTP 服務器的日志保存在 /var/log/messages。如果你希望使用自定義的日志文件,那也可以指定。
如果你選擇自定義日志文件,確保更改了它的屬主和 SELinux 環境。
現在初始化 NTP 服務并確保把它添加到了開機啟動。
驗證 NTP Server 時鐘
我們可以使用 ntpq 命令來檢查本地服務器的時鐘如何通過 NTP 同步。
下面的表格解釋了輸出列。
remote 源在 ntp.conf 中定義。‘*’ 表示當前使用的,也是最好的源;‘+’ 表示這些源可作為 NTP 源;‘-’ 標記的源是不可用的。
refid 用于和本地時鐘同步的遠程服務器的 IP 地址。
st Stratum(階層)
t 類型。 'u' 表示單播(unicast)。其它值包括本地(local)、多播(multicast)、廣播(broadcast)。
when 自從上次和服務器交互后經過的時間(以秒數計)。
poll 和服務器的輪詢間隔,以秒數計。
reach 表示和服務器交互是否有任何錯誤的八進制數。值 337 表示 100% 成功(即十進制的255)。
delay 服務器和遠程服務器來回的時間。
offset 我們服務器和遠程服務器的時間差異,以毫秒數計。
jitter 兩次取樣之間平均時差,以毫秒數計。
控制到 NTP 服務器的訪問
默認情況下,NTP 服務器允許來自所有主機的查詢。如果你想過濾進來的 NTP 同步連接,你可以在你的防火墻中添加規則過濾流量。
# iptables -A INPUT -s 192.168.1.0/24 -p udp --dport 123 -j ACCEPT
# iptables -A INPUT -p udp --dport 123 -j DROP
該規則允許從 192.168.1.0/24 來的 NTP 流量(端口 UDP/123),任何其它網絡的流量會被丟棄。你可以根據需要更改規則。
配置 NTP 客戶端
1. Linux
NTP 客戶端主機需要 ntpupdate 軟件包來和服務器同步時間??梢暂p松地使用 yum 或 apt-get 安裝這個軟件包。安裝完軟件包之后,用服務器的 IP 地址運行下面的命令。
基于 RHEL 和 Debian 的系統命令都相同。
2. Windows
如果你正在使用 Windows,在日期和時間設置(Date and Time settings)下查找網絡時間(Internet Time)。
3. Cisco 設備
如果你想要同步 Cisco 設備的時間,你可以在全局配置模式下使用下面的命令。
來自其它廠家的支持 NTP 的設備有自己的用于網絡時間的參數。如果你想將設備和 NTP服務器同步時間,請查看設備的說明文檔。
結論
總而言之,NTP 是在你的所有主機上同步時鐘的一個協議。我們已經介紹了如何設置 NTP 服務器并使支持 NTP 的設備和服務器同步時間。
希望能對你有所幫助。
新聞熱點
疑難解答
圖片精選