- A+
1、NTP服务概述
在Linux服务器上拥有准确的系统时间非常重要,因为[Cron]和[Anacron]等多个系统组件,[备份脚本]以及更多基于时间的工作。使用网络时间协议(NTP)协议可以实现精确的计时。
NTP是一种古老的,广为人知的跨平台协议,旨在[通过网络同步计算机的时钟]。它通常将计算机与Internet时间服务器或其他源(例如无线电或卫星接收器或电话调制解调器服务)同步。它也可以用作客户端系统的时间源/服务器。
在RHEL Linux 8中,不再支持ntp软件包,它由chrony软件包中提供的chronyd(在用户空间中运行的守护程序)实现。
Chrony是[网络时间协议(NTP)]的灵活实现。它用于同步来自不同NTP服务器的系统时钟,参考时钟或通过手动输入。
它也可以用于NTPv4服务器为同一网络中的其他服务器提供时间服务。它旨在在不同的条件下完美运行,例如间歇性网络连接,网络负载过重,温度变化,这可能会影响普通计算机的时钟。
Chrony带有两个程序:
- chronyc – chrony的命令行界面
- chronyd –可以在启动时启动的守护程序
在本教程中,我们将向您展示如何在Linux系统上安装和使用Chrony。
在本文中,我们将向您展示如何使用RHEL 8 Linux发行版中的chrony软件包安装和配置NTP服务器和客户端。
2、测试环境
NTP服务端 | NTP 客户端 | |
---|---|---|
主机名 | ntpserver | ntpclient |
IP信息 | 192.168.6.58 | 192.168.6.149 |
3、CentOS8中安装Chrony服务
# dnf install chrony
所述chrony套件包括chronyd,和chronyc,这是用来改变各种操作参数和同时它正在运行以监控其性能的命令行实用程序。
现在启动chronyd服务,使其能够在系统启动时自动启动,并使用以下[systemctl命令]验证运行状态
# systemctl start chronyd # systemctl status chronyd # systemctl enable chronyd
4、CentOS8中使用Chrony配置NTP服务器
在本节中,我们将展示如何将RHEL 8服务器设置为主NTP时间服务器。/etc/chrony.conf
使用任何您[喜欢的基于文本的编辑器]打开配置文件。
vi /etc/chrony.conf server time1.aliyun.com iburst server time2.aliyun.com iburst server time3.aliyun.com iburst server time4.aliyun.com iburst server time5.aliyun.com iburst server time6.aliyun.com iburst server 0.asia.pool.ntp.org iburst server 1.asia.pool.ntp.org iburst server 2.asia.pool.ntp.org iburst server 3.asia.pool.ntp.org iburst server cn.ntp.org.cn iburst server ntp.shu.edu.cn iburst driftfile /var/lib/chrony/drift makestep 1.0 3 rtcsync allow 10.10.0.0/16 allow 192.168.6.0/24 allow 192.168.0.0/24 allow 10.57.0.0/24 allow 10.58.0.0/24 allow 192.168.4.0/24 allow 9.112.2.26/24 allow 198.203.144.0/24 bindcmdaddress 127.0.0.1 bindcmdaddress ::1 keyfile /etc/chrony.keys commandkey 1 generatecommandkey noclientlog logchange 0.5 logdir /var/log/chrony
上面的配置提供以下信息:
- 服务器-此指令用于描述要从其同步的NTP服务器。
- 地层重量–每个地层应向同步源添加多少距离。默认值为0.0001。
- driftfile -包含漂移数据的文件的位置和名称。
- Makestep –该指令通过根据需要加快或降低时钟的速度,使chrony逐步纠正任何时间偏移。
- logdir – chrony日志文件的路径。
因此,请注释掉指定为server指令值的默认NTP服务器,并改为设置RHEL 8服务器的地址。
如果要立即步进系统时钟并忽略当前正在进行的任何调整,则可以使用以下命令:
#chronyc makestep
现在,运行以下命令以显示chronyd正在访问的当前时间源(NTP服务器),它应该是您的NTP服务器地址。
[root@ntpserver ~]# systemctl restart chronyd [root@ntpserver ~]# chronyc sources 210 Number of sources = 9 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^? 203.107.6.88 2 6 7 0 +1354us[+1354us] +/- 20ms ^? tock.ntp.infomaniak.ch 1 6 3 1 +19ms[ +19ms] +/- 141ms ^? time1.maxonline.com.sg 0 6 0 - +0ns[ +0ns] +/- 0ns ^? cdns-lhr-02.ptcl.net.pk 2 6 2 5 +14ms[ +14ms] +/- 294ms ^? undefined.hostname.local> 2 6 1 1 +5532us[+6376us] +/- 95ms ^? 202-65-114-202.jogja.cit> 0 6 0 - +0ns[ +0ns] +/- 0ns ^? 101-210-1-103.vtx.zinnia> 2 6 3 1 +771us[+1616us] +/- 233ms ^? 111.230.50.201 4 6 5 1 +1040us[+1548us] +/- 73ms ^? ntp.shu.edu.cn 3 6 5 2 +21ms[ +22ms] +/- 115ms [root@ntpserver ~]#
在服务器上,运行以下命令以显示有关评估NTP服务器的NTP客户端的信息。
# chronyc clients
如果停止chrony,则可以使用以下命令。
# systemctl stop chrony
5、CentOS8 配置NTP客户端。
[1] 客户端配置与服务器配置基本相同,但是NTP客户端不需要从其他主机接收时间同步请求,因此不需要指定行[allow ***]。
[root@ntpclient ~]# dnf -y install chrony [root@ntpclient ~]# cat /etc/chrony.conf server 192.168.6.58 iburst stratumweight 0 driftfile /var/lib/chrony/drift rtcsync makestep 10 3 bindcmdaddress 127.0.0.1 bindcmdaddress ::1 keyfile /etc/chrony.keys commandkey 1 generatecommandkey noclientlog logchange 0.5 logdir /var/log/chrony log measurements statistics tracking [root@ntpclient ~]# systemctl enable --now chronyd Created symlink /etc/systemd/system/multi-user.target.wants/chronyd.service → /usr/lib/systemd/system/chronyd.service. [root@ntpclient ~]# chronyc sources 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^? 192.168.6.58 0 7 0 - +0ns[ +0ns] +/- 0ns
[2] 要安装NTPStat,可以显示时间同步状态。
[root@ntpclient ~]# dnf -y install ntpstat [root@ntpclient ~]# chronyc sources 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 192.168.6.58 3 6 37 11 -111ns[-1892us] +/- 23ms [root@ntpclient ~]# ntpstat synchronised to NTP server (192.168.6.58) at stratum 4 time correct to within 23 ms polling server every 64 s [root@ntpclient ~]# timedatectl Local time: Fri 2020-12-04 22:09:15 CST Universal time: Fri 2020-12-04 14:09:15 UTC RTC time: Fri 2020-12-04 14:09:15 Time zone: Asia/Shanghai (CST, +0800) System clock synchronized: yes NTP service: active RTC in local TZ: no [root@ntpclient ~]#