如何在 Linux 上安裝、配置 NTP 伺服器和客戶端?
你也許聽說過這個詞很多次或者你可能已經在使用它了。在這篇文章中我將會清晰的告訴你 NTP 伺服器和客戶端的安裝。
之後我們將會了解 Chrony NTP 客戶端的安裝。
什麼是 NTP 服務?
NTP 意即網路時間協議。它是透過網路在計算機系統之間進行時鐘同步的網路協議。換言之,它可以讓那些透過 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。
$ 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
。 如果有必要,可以使用預設配置,也可以訪問https://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 的需要去執行 ntp
和 ntpd
。
# 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 的需要去執行 ntp
和 ntpd
。
# 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: https://www.2daygeek.com/install-configure-ntp-server-ntp-client-in-linux/
作者:Magesh Maruthamuthu 選題:lujun9972 譯者:arrowfeng 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出
相關文章
- 如何安裝和配置 Chrony 作為 NTP 客戶端?客戶端
- linux安裝mysql客戶端LinuxMySql客戶端
- linux zabbix-6.0.1-Agent客戶端的安裝配置Linux客戶端
- NBU 8.0客戶端安裝和備份配置客戶端
- linux簡易 Oracle客戶端安裝LinuxOracle客戶端
- Kubernetes安裝之五:配置kubectl客戶端客戶端
- 客戶端自動配置安裝(expect工具)客戶端
- 自動批量對linux伺服器安裝配置NTP服務Linux伺服器
- Linux伺服器配置---ntpLinux伺服器
- Oracle 客戶端安裝Oracle客戶端
- MySQL 客戶端安裝MySql客戶端
- 如何在 Linux 上安裝 Elasticsearch 和 KibanaLinuxElasticsearch
- 如何在 CentOS 8 上安裝和配置 Postfix 郵件伺服器CentOS伺服器
- 如何在 Centos 8 / RHEL 8 上安裝和配置 VNC 伺服器CentOSVNC伺服器
- aix安裝oracle客戶端AIOracle客戶端
- CentOS安裝git客戶端CentOSGit客戶端
- 在Linux中,如何在Linux中安裝和配置KVM?Linux
- Linux環境安裝Splunk Enterprise服務端和Windows客戶端Splunk Universal ForwarderLinux服務端Windows客戶端Forward
- 如何在 Ubuntu 和其他 Linux 上安裝 NetbeansUbuntuLinuxBean
- 如何在 Linux 中安裝、配置和使用 Fish Shell?Linux
- Linux下簡單的ACE socket客戶端和伺服器端Linux客戶端伺服器
- linux 配置ntp時間伺服器Linux伺服器
- db2 客戶端安裝DB2客戶端
- Windows下安裝redis客戶端WindowsRedis客戶端
- 如何在 Linux 上安裝 JavaLinuxJava
- UE 客戶端和伺服器上的時間同步客戶端伺服器
- Linux上的redis的安裝和配置LinuxRedis
- Windows客戶端的JProfiler遠端監控Linux上的Tomcat伺服器Windows客戶端LinuxTomcat伺服器
- Linux系統中KafKa安裝和使用方法 java客戶端連線kafkaLinuxKafkaJava客戶端
- Skywalking PHP客戶端編譯安裝PHP客戶端編譯
- 在Ubuntu 18.04上編譯安裝pppoe客戶端軟體Ubuntu編譯客戶端
- ubuntu17.4安裝git伺服器,window使用sourcetree客戶端UbuntuGit伺服器客戶端
- Telegram原始碼之安卓客戶端配置原始碼安卓客戶端
- 如何在 VirtualBox 上安裝 Kali LinuxLinux
- 如何在Linux上安裝一個開源VPN伺服器Linux伺服器
- iscsi linux客戶端Linux客戶端
- 11. Oracle for Linux安裝和配置——11.2. Linux安裝和配置——11.2.5. Linux配置OracleLinux
- 11. Oracle for Linux安裝和配置——11.2. Linux安裝和配置——11.2.2.Linux安裝(1)OracleLinux