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

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

以後咱們將會了解 Chrony NTP 客戶端的安裝git

什麼是 NTP 服務?

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

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

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

NTP 客戶端

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

Chrony 客戶端

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

爲何咱們須要 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。

$ sudo dnf install ntp
複製代碼

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

$ sudo apt install ntp
複製代碼

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

$ sudo pacman -S ntp
複製代碼

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

$ sudo yum install ntp
複製代碼

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

$ sudo zypper install ntp
複製代碼

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

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

默認狀況下,NTP 服務器配置依賴於 X.distribution_name.pool.ntp.org。 若是有必要,可使用默認配置,也能夠訪問www.ntppool.org/zone/@站點,根據你所在的位置(特定國家/地區)進行更改。

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

# vi /etc/ntp.conf

restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
server 0.asia.pool.ntp.org
server 1.asia.pool.ntp.org
server 2.asia.pool.ntp.org
server 3.asia.pool.ntp.org
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
driftfile /var/lib/ntp/drift
keys /etc/ntp/keys
複製代碼

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

因爲默認狀況下基於 RHEL7 的發行版的防火牆是打開的,所以要容許 ntp 服務經過。

# firewall-cmd --add-service=ntp --permanent
# firewall-cmd --reload
複製代碼

更新配置後要重啓服務:

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

# service ntpd restart
# chkconfig ntpd on
複製代碼

對於 systemctl 系統。基於 Debian 的須要去運行 ntpntpd

# systemctl restart ntpd
# systemctl enable ntpd
複製代碼

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

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

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

$ sudo dnf install ntp
複製代碼

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

$ sudo apt install ntp
複製代碼

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

$ sudo pacman -S ntp
複製代碼

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

$ sudo yum install ntp
複製代碼

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

$ sudo zypper install ntp
複製代碼

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

# vi /etc/ntp.conf
複製代碼
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
server CentOS7.2daygeek.com prefer iburst
driftfile /var/lib/ntp/drift
keys /etc/ntp/keys
複製代碼

更新配置後重啓服務:

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

# service ntpd restart
# chkconfig ntpd on
複製代碼

對於 systemctl 系統。基於 Debian 的須要去運行 ntpntpd

# systemctl restart ntpd
# systemctl enable ntpd
複製代碼

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

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

# ntpq –p# ntpq -pn

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*CentOS7.2daygee 133.243.238.163  2 u   14   64   37    0.686    0.151  16.432
複製代碼

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

# ntpstat
synchronised to NTP server (192.168.1.8) at stratum 3
   time correct to within 508 ms
   polling server every 64 s
複製代碼

最後運行 date 命令。

# date
Tue Mar 26 23:17:05 CDT 2019
複製代碼

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

# ntpdate –uv CentOS7.2daygeek.com
複製代碼

via: www.2daygeek.com/install-con…

做者:Magesh Maruthamuthu 選題:lujun9972 譯者:arrowfeng 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關文章
相關標籤/搜索