Linux中国:如何在 Linux 上安装、配置 NTP 服务器和客户端?
发布时间:2019-05-05 13:43:00 来源: 互盟云
你也许听说过这个词很多次或者你可能已经在使用它了。在这篇文章中我将会清晰的告诉你NTP服务器和客户端的安装。
之后我们将会了解ChronyNTP客户端的安装。
什么是NTP服务?
NTP意即网络时间协议NetworkTimeProtocol。它是通过网络在计算机系统之间进行时钟同步的网络协议。换言之,它可以让那些通过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:CentOS7
◈NTP客户端:主机名:Ubuntu18.2daygeek.com,IP:192.168.1.5,OS:Ubuntu18.04
NTP服务器端:如何在Linux上安装NTP?
因为它是C/S架构,所以NTP服务器端和客户端的安装包没有什么不同。在发行版的官方仓库中都有NTP安装包,因此可以使用发行版的包管理器安装它。
对于Fedora系统,使用DNF命令去安装ntp。
$sudodnfinstallntp
对于Debian/Ubuntu系统,使用APT-GET命令或者APT命令去安装ntp。
$sudoaptinstallntp
对基于ArchLinux的系统,使用Pacman命令去安装ntp。
$sudopacman-Sntp
对RHEL/CentOS系统,使用YUM命令去安装ntp。
$sudoyuminstallntp
对于openSUSELeap系统,使用Zypper命令去安装ntp。
$sudozypperinstallntp
如何在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
restrictdefaultkodnomodifynotrapnopeernoquery
restrict-6defaultkodnomodifynotrapnopeernoquery
restrict127.0.0.1
restrict-6::1
server0.asia.pool.ntp.org
server1.asia.pool.ntp.org
server2.asia.pool.ntp.org
server3.asia.pool.ntp.org
restrict192.168.1.0mask255.255.255.0nomodifynotrap
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。
#servicentpdrestart
#chkconfigntpdon
对于systemctl系统。基于Debian的需要去运行ntp和ntpd。
#systemctlrestartntpd
#systemctlenablentpd
NTP客户端:如何在Linux上安装NTP客户端?
正如我在这篇文章中前面所说的。NTP服务器端和客户端的安装包没有什么不同。因此在客户端上也安装同样的软件包。
对于Fedora系统,使用DNF命令去安装ntp。
$sudodnfinstallntp
对于Debian/Ubuntu系统,使用APT-GET命令或者APT命令去安装ntp。
$sudoaptinstallntp
对基于ArchLinux的系统,使用Pacman命令去安装ntp。
$sudopacman-Sntp
对RHEL/CentOS系统,使用YUM命令去安装ntp。
$sudoyuminstallntp
对于openSUSELeap系统,使用Zypper命令去安装ntp。
$sudozypperinstallntp
我已经在CentOS7.2daygeek.com`这台主机上安装和配置了NTP服务器,因此将其附加到所有的客户端机器上。
#vi/etc/ntp.conf
restrictdefaultkodnomodifynotrapnopeernoquery
restrict-6defaultkodnomodifynotrapnopeernoquery
restrict127.0.0.1
restrict-6::1
serverCentOS7.2daygeek.compreferiburst
driftfile/var/lib/ntp/drift
keys/etc/ntp/keys
更新配置后重启服务:
对于sysvinit系统。基于Debian的系统需要去运行ntp而不是ntpd。
#servicentpdrestart
#chkconfigntpdon
对于systemctl系统。基于Debian的需要去运行ntp和ntpd。
#systemctlrestartntpd
#systemctlenablentpd
重新启动NTP服务后等待几分钟以便从NTP服务器获取同步的时间。
在Linux上运行下列命令去验证NTP服务的同步状态。
#ntpq–p
或
#ntpq-pn
remoterefidsttwhenpollreachdelayoffsetjitter
==============================================================================
*CentOS7.2daygee133.243.238.1632u1464370.6860.15116.432
运行下列命令去得到ntpd的当前状态。
#ntpstat
synchronisedtoNTPserver(192.168.1.8)atstratum3
timecorrecttowithin508ms
pollingserverevery64s
最后运行date命令。
#date
TueMar2623:17:05CDT2019
如果你观察到NTP中输出的时间偏移很大。运行下列命令从NTP服务器手动同步时钟。当你执行下列命令的时候,确保你的NTP客户端应该为未活动状态。(LCTT译注:当时间偏差很大时,客户端的自动校正需要花费很长时间才能逐步追上,因此应该手动运行以更新)
#ntpdate–uvCentOS7.2daygeek.com
via:https://www.2daygeek.com/install-configure-ntp-server-ntp-client-in-linux/
作者:MageshMaruthamuthu选题:lujun9972译者:arrowfeng校对:wxy
本文由LCTT原创编译,Linux中国荣誉推出
本文来源:
https://www.humengyun.com/news-view-664.html