你也許聽說過這個(gè)詞很多次或者你可能已經(jīng)在使用它了。在這篇文章中我將會(huì)清晰的告訴你 NTP 服務(wù)器和客戶端的安裝。
之后我們將會(huì)了解 Chrony NTP 客戶端的安裝 。
什么是 NTP 服務(wù)?
NTP 意即 網(wǎng)絡(luò)時(shí)間協(xié)議(Network Time Protocol)。它是通過網(wǎng)絡(luò)在計(jì)算機(jī)系統(tǒng)之間進(jìn)行時(shí)鐘同步的網(wǎng)絡(luò)協(xié)議。換言之,它可以讓那些通過 NTP 或者 Chrony 客戶端連接到 NTP 服務(wù)器的系統(tǒng)保持時(shí)間上的一致(它能保持一個(gè)精確的時(shí)間)。
NTP 在公共互聯(lián)網(wǎng)上通常能夠保持時(shí)間延遲在幾十毫秒以內(nèi)的精度,并在理想條件下,它能在局域網(wǎng)下達(dá)到低于一毫秒的延遲精度。
NTP時(shí)間同步
它使用用戶數(shù)據(jù)報(bào)協(xié)議(UDP)在端口 123 上發(fā)送和接受時(shí)間戳。它是個(gè) C/S 架構(gòu)的應(yīng)用程序。
NTP客戶端
NTP客戶端將其時(shí)鐘與網(wǎng)絡(luò)時(shí)間服務(wù)器同步。
Chrony客戶端
Chrony是NTP客戶端的替代品。它能以更精確的時(shí)間更快的同步系統(tǒng)時(shí)鐘,并且它對(duì)于那些不總是在線的系統(tǒng)很有用。
為什么我們需要NTP服務(wù)?
為了使你組織中的所有服務(wù)器與基于時(shí)間的作業(yè)保持精確的時(shí)間同步。
為了說明這點(diǎn),我將告訴你一個(gè)場(chǎng)景。比如說,我們有兩個(gè)服務(wù)器(服務(wù)器1和服務(wù)器2)。服務(wù)器1通常在10:55完成離線作業(yè),然后服務(wù)器2在 11:00 需要基于服務(wù)器1完成的作業(yè)報(bào)告去運(yùn)行其他作業(yè)。
如果兩個(gè)服務(wù)器正在使用不同的時(shí)間(如果服務(wù)器2時(shí)間比服務(wù)器1提前,服務(wù)器1的時(shí)間就落后于服務(wù)器2),然后我們就不能去執(zhí)行這個(gè)作業(yè)。為了達(dá)到時(shí)間一致,我們應(yīng)該安裝NTP。
希望上述能清除你對(duì)于NTP的疑惑。
在這篇文章中,我們將使用下列設(shè)置去測(cè)試。
NTP服務(wù)器:主機(jī)名:CentOS7.2daygeek.com,IP:192.168.1.8,OS:CentOS 7
NTP客戶端:主機(jī)名:Ubuntu18.2daygeek.com,IP:192.168.1.5,OS:Ubuntu 18.04
NTP服務(wù)器端如何在 Linux 上安裝 NTP?
因?yàn)樗荂/S架構(gòu),所以NTP服務(wù)器端和客戶端的安裝包沒有什么不同。在發(fā)行版的官方倉庫中都有NTP安裝包,因此可以使用發(fā)行版的包管理器安裝它。
對(duì)于Fedora系統(tǒng),使用DNF命令去安裝ntp。$sudo dnf install ntp對(duì)于 Debian/Ubuntu 系統(tǒng),使用 APT-GET 命令 或者 APT 命令 去安裝 ntp。
$ sudo apt install ntp
對(duì)基于 Arch Linux 的系統(tǒng),使用 Pacman 命令 去安裝 ntp。
$ sudo pacman -S ntp
對(duì) RHEL/CentOS 系統(tǒng),使用 YUM 命令 去安裝 ntp。
$ sudo yum install ntp
對(duì)于 openSUSE Leap 系統(tǒng),使用 Zypper 命令 去安裝 ntp。
$ sudo zypper install ntp
如何在 Linux 上配置 NTP 服務(wù)器?
安裝 NTP 軟件包后,請(qǐng)確保在服務(wù)器端的 /etc/ntp.conf 文件中取消以下配置的注釋。
默認(rèn)情況下,NTP 服務(wù)器配置依賴于 X.distribution_name.pool.ntp.org。 如果有必要,可以使用默認(rèn)配置,也可以訪問 https://www.ntppool.org/zone/@ 站點(diǎn),根據(jù)你所在的位置(特定國家/地區(qū))進(jìn)行更改。
比如說如果你在印度,然后你的 NTP 服務(wù)器將是 0.in.pool.ntp.org,并且這個(gè)地址適用于大多數(shù)國家。
# 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 子網(wǎng)的客戶端訪問這個(gè) NTP 服務(wù)器。
由于默認(rèn)情況下基于 RHEL7 的發(fā)行版的防火墻是打開的,因此要允許 ntp 服務(wù)通過。
# firewall-cmd --add-service=ntp --permanent
# firewall-cmd --reload
更新配置后要重啟服務(wù):
對(duì)于sysvinit系統(tǒng)?;贒ebian的系統(tǒng)需要去運(yùn)行ntp而不是ntpd。
# service ntpd restart
# chkconfig ntpd on
對(duì)于systemctl 系統(tǒng)?;?Debian的需要去運(yùn)行ntp和ntpd。
# systemctl restart ntpd
# systemctl enable ntpd
NTP客戶端:如何在 Linux 上安裝NTP客戶端?
正如我在這篇文章中前面所說的。NTP服務(wù)器端和客戶端的安裝包沒有什么不同。因此在客戶端上也安裝同樣的軟件包。
對(duì)于Fedora系統(tǒng),使用DNF命令去安裝ntp。
$ sudo dnf install ntp
對(duì)于 Debian/Ubuntu 系統(tǒng),使用 APT-GET 命令 或者 APT 命令 去安裝 ntp。
$ sudo apt install ntp
對(duì)基于 Arch Linux 的系統(tǒng),使用Pacman命令去安裝 ntp。
$ sudo pacman -S ntp
對(duì) RHEL/CentOS 系統(tǒng),使用YUM命令去安裝ntp。
$ sudo yum install ntp
對(duì)于openSUSE Leap 系統(tǒng),使用Zypper命令去安裝 ntp。
$ sudo zypper install ntp
我已經(jīng)在CentOS7.2daygeek.com`這臺(tái)主機(jī)上安裝和配置了NTP服務(wù)器,因此將其附加到所有的客戶端機(jī)器上。
# 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
更新配置后重啟服務(wù):
對(duì)于 sysvinit 系統(tǒng)?;?Debian 的系統(tǒng)需要去運(yùn)行 ntp 而不是 ntpd。
# service ntpd restart
# chkconfig ntpd on
對(duì)于 systemctl 系統(tǒng)。基于 Debian 的需要去運(yùn)行 ntp 和 ntpd。
# systemctl restart ntpd
# systemctl enable ntpd
重新啟動(dòng) NTP 服務(wù)后等待幾分鐘以便從 NTP 服務(wù)器獲取同步的時(shí)間。
在 Linux 上運(yùn)行下列命令去驗(yàn)證 NTP 服務(wù)的同步狀態(tài)。
# 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
運(yùn)行下列命令去得到 ntpd 的當(dāng)前狀態(tài)。
# ntpstat
synchronised to NTP server (192.168.1.8) at stratum 3
time correct to within 508 ms
polling server every 64 s
最后運(yùn)行 date 命令。
# date
Tue Mar 26 23:17:05 CDT 2019
如果你觀察到 NTP 中輸出的時(shí)間偏移很大。運(yùn)行下列命令從 NTP 服務(wù)器手動(dòng)同步時(shí)鐘。當(dāng)你執(zhí)行下列命令的時(shí)候,確保你的 NTP 客戶端應(yīng)該為未活動(dòng)狀態(tài)。(LCTT 譯注:當(dāng)時(shí)間偏差很大時(shí),客戶端的自動(dòng)校正需要花費(fèi)很長時(shí)間才能逐步追上,因此應(yīng)該手動(dòng)運(yùn)行以更新)
# ntpdate–uv CentOS7.2daygeek.com
咨詢電話:
掃一掃咨詢微信客服