如何在 CentOS 中設定 NTP 伺服器

2021-09-07 17:20:13 字數 3646 閱讀 4689

網路時間協議(ntp)用來同步網路上不同主機的系統時間。你管理的所有主機都可以和乙個指定的被稱為 ntp 伺服器的時間伺服器同步它們的時間。而另一方面,乙個 ntp 伺服器會將它的時間和任意公共 ntp 伺服器,或者你選定的伺服器同步。由 ntp 管理的所有系統時鐘都會同步精確到毫秒級。

在公司環境中,如果他們不想為 ntp 傳輸開啟防火牆,就有必要設定乙個內部 ntp 伺服器,然後讓員工使用內部伺服器而不是公共 ntp 伺服器。在這個指南中,我們會介紹如何將乙個 centos 系統配置為 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 上設定 ntp 伺服器。

首先,我們需要保證正確設定了伺服器的時區。在 centos 7 中,我們可以使用 timedatectl 命令檢視和更改伺服器的時區(比如,"australia/adelaide",lctt 譯註:中國可設定為 asia/shanghai )

#timedatectllist-timezones |grepaustralia

#timedatectlset-timezone australia/adelaide

#timedatectl

繼續並使用 yum 安裝需要的軟體

#yuminstall -y ntp

然後我們會新增全球 ntp 伺服器用於同步時間。

#vim/etc/ntp.conf

server 0.oceania.pool.ntp.org

server 1.oceania.pool.ntp.org

server 2.oceania.pool.ntp.org

server 3.oceania.pool.ntp.org

預設情況下,ntp 伺服器的日誌儲存在 /var/log/messages。如果你希望使用自定義的日誌檔案,那也可以指定。

logfile /var/log/ntpd.log

如果你選擇自定義日誌檔案,確保更改了它的屬主和 selinux 環境。

#chownntp:ntp /var/log/ntpd.log

#chcon -t ntpd_log_t/var/log/ntpd.log

現在初始化 ntp 服務並確保把它新增到了開機啟動。

#systemctlrestart ntpd

#systemctlenable ntpd

我們可以使用 ntpq 命令來檢查本地伺服器的時鐘如何通過 ntp 同步。

下面的**解釋了輸出列。

< 如顯示不全,請左右滑動 >

remote

源在 ntp.conf 中定義。『*』 表示當前使用的,也是最好的源;『+』 表示這些源可作為 ntp 源;『-』 標記的源是不可用的。

refid

用於和本地時鐘同步的遠端伺服器的 ip 位址。

ststratum(階層)

t型別。 'u' 表示單播(unicast)。其它值包括本地(local)、多播(multicast)、廣播(broadcast)。

when

自從上次和伺服器互動後經過的時間(以秒數計)。

poll

和伺服器的輪詢間隔,以秒數計。

reach

表示和伺服器互動是否有任何錯誤的八進位制數。值 337 表示 100% 成功(即十進位制的255)。

delay

伺服器和遠端伺服器來回的時間。

offset

我們伺服器和遠端伺服器的時間差異,以毫秒數計。

jitter

兩次取樣之間平均時差,以毫秒數計。

預設情況下,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),任何其它網路的流量會被丟棄。你可以根據需要更改規則。

1. linux

ntp 客戶端主機需要 ntpupdate 軟體包來和伺服器同步時間。可以輕鬆地使用 yum 或 apt-get 安裝這個軟體包。安裝完軟體包之後,用伺服器的 ip 位址執行下面的命令。

#ntpdate

基於 rhel 和 debian 的系統命令都相同。

2. windows

如果你正在使用 windows,在日期和時間設定(date and time settings)下查詢網路時間(internet time)。

3. cisco 裝置

如果你想要同步 cisco 裝置的時間,你可以在全域性配置模式下使用下面的命令。

#ntp server

來自其它廠家的支援 ntp 的裝置有自己的用於網路時間的引數。如果你想將裝置和 ntp伺服器同步時間,請檢視裝置的說明文件。

總而言之,ntp 是在你的所有主機上同步時鐘的乙個協議。我們已經介紹了如何設定 ntp 伺服器並使支援 ntp 的裝置和伺服器同步時間。

希望能對你有所幫助。

via: 

本文由 lctt 原創翻譯,linux中國 榮譽推出

出現的錯誤:

no server suitable for synchronization found

解決方法:

在ntp server上重新啟動ntp服務後,ntp server自身或者與其server的同步的需要乙個時間段,這個過程可能是5分鐘,在這個時間之內在客戶端執行ntpdate命令時會產生no server suitable for synchronization found的錯誤。

那麼如何知道何時ntp server完成了和自身同步的過程呢?

在ntp server上使用命令:

# watch ntpq -p

如何在CentOS中搭建NTP伺服器?

網路時間協議 ntp 用來同步網路上不同主機的系統時鐘。所有受管理的主機可以與一台名為ntp伺服器的指定時間伺服器同步時間。另一方面,ntp伺服器則與任何公共ntp伺服器或者你所選擇的任何伺服器同步自己的時間。所有ntp管理的裝置其系統時間同步時可以精確到毫秒級。在企業環境下,如果企業不想為ntp流...

如何在CentOS中新增Swap

1 檢查 swap 空間 在設定 swap 檔案之前,有必要先檢查一下系統裡有沒有既存的 swap 檔案。執行以下命令 1 swapon s 如果返回的資訊概要是空的,則表示 swap 檔案不存在。2 檢查檔案系統 在設定 swap 檔案之前,同樣有必要檢查一下檔案系統,看看是否有足夠的硬碟空間來設...

如何在CentOS中新增Swap

1 檢查 swap 空間 在設定 swap 檔案之前,有必要先檢查一下系統裡有沒有既存的 swap 檔案。執行以下命令 1swapon s 如果返回的資訊概要是空的,則表示 swap 檔案不存在。2 檢查檔案系統 在設定 swap 檔案之前,同樣有必要檢查一下檔案系統,看看是否有足夠的硬碟空間來設定...