歡迎光臨
每天分享高質量文章

如何在 Linux 上安裝、配置 NTP 服務器和客戶端? | Linux 中國

你也許聽說過這個詞很多次或者你可能已經在使用它了。在這篇文章中我將會清晰的告訴你 NTP 服務器和客戶端的安裝。

— Magesh Maruthamuthu

 

你也許聽說過這個詞很多次或者你可能已經在使用它了。在這篇文章中我將會清晰的告訴你 NTP 服務器和客戶端的安裝。

之後我們將會瞭解 Chrony NTP 客戶端的安裝

什麼是 NTP 服務?

NTP 意即網絡時間協議Network Time Protocol。它是通過網絡在計算機系統之間進行時鐘同步的網絡協議。換言之,它可以讓那些通過 NTP 或者 Chrony 客戶端連接到 NTP 服務器的系統保持時間上的一致(它能保持一個精確的時間)。

NTP 在公共互聯網上通常能夠保持時間延遲在幾十毫秒以內的精度,併在理想條件下,它能在局域網下達到低於一毫秒的延遲精度。

它使用用戶資料報協議(UDP)在端口 123 上發送和接受時間戳。它是個 C/S 架構的應用程式。

NTP 客戶端

NTP 客戶端將其時鐘與網絡時間服務器同步。

Chrony 客戶端

Chrony 是 NTP 客戶端的替代品。它能以更精確的時間更快的同步系統時鐘,並且它對於那些不總是在線的系統很有用。

為什麼我們需要 NTP 服務?

為了使你組織中的所有服務器與基於時間的作業保持精確的時間同步。

為了說明這點,我將告訴你一個場景。比如說,我們有兩個服務器(服務器 1 和服務器 2)。服務器 1 通常在 10:55 完成離線作業,然後服務器 2 在 11:00 需要基於服務器 1 完成的作業報告去運行其他作業。

如果兩個服務器正在使用不同的時間(如果服務器 2 時間比服務器 1 提前,服務器 1 的時間就落後於服務器 2),然後我們就不能去執行這個作業。為了達到時間一致,我們應該安裝 NTP。

希望上述能清除你對於 NTP 的疑惑。

在這篇文章中,我們將使用下列設置去測試。

◈ NTP 服務器: 主機名:CentOS7.2daygeek.com,IP:192.168.1.8,OS:CentOS 7
◈ NTP 客戶端: 主機名:Ubuntu18.2daygeek.com,IP:192.168.1.5,OS:Ubuntu 18.04

NTP 服務器端:如何在 Linux 上安裝 NTP?

因為它是 C/S 架構,所以 NTP 服務器端和客戶端的安裝包沒有什麼不同。在發行版的官方倉庫中都有 NTP 安裝包,因此可以使用發行版的包管理器安裝它。

對於 Fedora 系統,使用 DNF 命令 去安裝 ntp。

  1. $ sudo dnf install ntp

對於 Debian/Ubuntu 系統,使用 APT-GET 命令 或者 APT 命令 去安裝 ntp。

  1. $ sudo apt install ntp

對基於 Arch Linux 的系統,使用 Pacman 命令 去安裝 ntp。

  1. $ sudo pacman -S ntp

對 RHEL/CentOS 系統,使用 YUM 命令 去安裝 ntp。

  1. $ sudo yum install ntp

對於 openSUSE Leap 系統,使用 Zypper 命令 去安裝 ntp。

  1. $ sudo zypper install ntp

如何在 Linux 上配置 NTP 服務器?

安裝 NTP 軟體包後,請確保在服務器端的 /etc/ntp.conf 檔案中取消以下配置的註釋。

預設情況下,NTP 服務器配置依賴於 X.distribution_name.pool.ntp.org。 如果有必要,可以使用預設配置,也可以訪問https://www.ntppool.org/zone/@站點,根據你所在的位置(特定國家/地區)進行更改。

比如說如果你在印度,然後你的 NTP 服務器將是 0.in.pool.ntp.org,並且這個地址適用於大多數國家。

  1. # vi /etc/ntp.conf
  2. restrict default kod nomodify notrap nopeer noquery
  3. restrict -6 default kod nomodify notrap nopeer noquery
  4. restrict 127.0.0.1
  5. restrict -6 ::1
  6. server 0.asia.pool.ntp.org
  7. server 1.asia.pool.ntp.org
  8. server 2.asia.pool.ntp.org
  9. server 3.asia.pool.ntp.org
  10. restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
  11. driftfile /var/lib/ntp/drift
  12. keys /etc/ntp/keys

我們僅允許 192.168.1.0/24 子網的客戶端訪問這個 NTP 服務器。

由於預設情況下基於 RHEL7 的發行版的防火牆是打開的,因此要允許 ntp 服務通過。

  1. # firewall-cmd --add-service=ntp --permanent
  2. # firewall-cmd --reload

更新配置後要重啟服務:

對於 sysvinit 系統。基於 Debian 的系統需要去運行 ntp 而不是 ntpd

  1. # service ntpd restart
  2. # chkconfig ntpd on

對於 systemctl 系統。基於 Debian 的需要去運行 ntp 和 ntpd

  1. # systemctl restart ntpd
  2. # systemctl enable ntpd

NTP 客戶端:如何在 Linux 上安裝 NTP 客戶端?

正如我在這篇文章中前面所說的。NTP 服務器端和客戶端的安裝包沒有什麼不同。因此在客戶端上也安裝同樣的軟體包。

對於 Fedora 系統,使用 DNF 命令 去安裝 ntp。

  1. $ sudo dnf install ntp

對於 Debian/Ubuntu 系統,使用 APT-GET 命令 或者 APT 命令 去安裝 ntp。

  1. $ sudo apt install ntp

對基於 Arch Linux 的系統,使用 Pacman 命令 去安裝 ntp。

  1. $ sudo pacman -S ntp

對 RHEL/CentOS 系統,使用 YUM 命令 去安裝 ntp。

  1. $ sudo yum install ntp

對於 openSUSE Leap 系統,使用 Zypper 命令 去安裝 ntp。

  1. $ sudo zypper install ntp

我已經在 CentOS7.2daygeek.com` 這台主機上安裝和配置了 NTP 服務器,因此將其附加到所有的客戶端機器上。

  1. # vi /etc/ntp.conf
  1. restrict default kod nomodify notrap nopeer noquery
  2. restrict -6 default kod nomodify notrap nopeer noquery
  3. restrict 127.0.0.1
  4. restrict -6 ::1
  5. server CentOS7.2daygeek.com prefer iburst
  6. driftfile /var/lib/ntp/drift
  7. keys /etc/ntp/keys

更新配置後重啟服務:

對於 sysvinit 系統。基於 Debian 的系統需要去運行 ntp 而不是 ntpd

  1. # service ntpd restart
  2. # chkconfig ntpd on

對於 systemctl 系統。基於 Debian 的需要去運行 ntp 和 ntpd

  1. # systemctl restart ntpd
  2. # systemctl enable ntpd

重新啟動 NTP 服務後等待幾分鐘以便從 NTP 服務器獲取同步的時間。

在 Linux 上運行下列命令去驗證 NTP 服務的同步狀態。

  1. # ntpq p
  2. # ntpq -pn
  3. remote refid st t when poll reach delay offset jitter
  4. ==============================================================================
  5. *CentOS7.2daygee 133.243.238.163 2 u 14 64 37 0.686 0.151 16.432

運行下列命令去得到 ntpd 的當前狀態。

  1. # ntpstat
  2. synchronised to NTP server (192.168.1.8) at stratum 3
  3. time correct to within 508 ms
  4. polling server every 64 s

最後運行 date 命令。

  1. # date
  2. Tue Mar 26 23:17:05 CDT 2019

如果你觀察到 NTP 中輸出的時間偏移很大。運行下列命令從 NTP 服務器手動同步時鐘。當你執行下列命令的時候,確保你的 NTP 客戶端應該為未活動狀態。(LCTT 譯註:當時間偏差很大時,客戶端的自動校正需要花費很長時間才能逐步追上,因此應該手動運行以更新)

  1. # ntpdate uv CentOS7.2daygeek.com

 

已同步到看一看
赞(0)

分享創造快樂