在CentOS伺服器上配置NTP伺服器的教程

來源:互聯網
上載者:User

   網路時間協議(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 )

  代碼如下:

  # timedatectl list-timezones | grep Australia

  # timedatectl set-timezone Australia/Adelaide

  # timedatectl

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

  代碼如下:

  # yum install 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 環境。

  複製代碼

  代碼如下:

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

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

  現在初始化 NTP 服務並確保把它添加到了開機啟動。

  代碼如下:

  # systemctl restart ntp

  # systemctl enable 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 軟體包來和伺服器同步時間。可以輕鬆地使用 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 的裝置和伺服器同步時間。

  希望能對你有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.