当前位置:首页 > 虚拟主机 > 正文

CentOS系统下怎样安装配置NTP服务端实现集群时间同步?

在网络环境中,所有服务器和设备保持时间同步至关重要,它直接影响日志审计、分布式系统协作、证书验证等关键服务的稳定性,NTP(网络时间协议)是实现这一目标的标准协议,本文将详细介绍如何在CentOS系统上配置一台NTP服务器,为局域网内的其他设备提供精准、可靠的时间源。


安装NTP服务软件包

在CentOS 7及更高版本中,chrony是推荐的NTP实现,它在同步速度和网络适应性方面优于传统的ntpd,我们可以使用yum或dnf包管理器进行安装。

打开终端,执行以下命令:

sudo yum install chrony

对于使用dnf的CentOS 8/9系统,命令为:

sudo dnf install chrony

安装完成后,主配置文件位于/etc/chrony.conf。

配置NTP服务器

配置NTP服务器的核心是编辑/etc/chrony.conf文件,在修改前,建议先备份原始文件。

CentOS系统下怎样安装配置NTP服务端实现集群时间同步? 第1张

sudo cp /etc/chrony.conf /etc/chrony.conf.bak

然后使用文本编辑器(如vi或nano)打开配置文件:

sudo vi /etc/chrony.conf

主要关注以下几个关键配置项:

  1. 指定上游时间服务器

    chrony.conf默认已包含一些公共时间服务器池(pool指令),您可以根据需要修改或添加更接近您地理位置的服务器,以提高同步精度,使用中国的NTP服务器池:

    pool 0.cn.pool.ntp.org iburst pool 1.cn.pool.ntp.org iburst pool 2.cn.pool.ntp.org iburst pool 3.cn.pool.ntp.org iburst
  2. 允许客户端查询

    默认情况下,chrony只允许本机查询,要使其作为局域网的时间服务器,必须使用allow指令开放访问权限,允许168.1.0/24网段的所有客户端访问:

    CentOS系统下怎样安装配置NTP服务端实现集群时间同步? 第2张

    # Allow NTP client access from local network. allow 192.168.1.0/24
  3. 设置本地时钟层级

    如果服务器与外部时间源失联,可以配置其使用本地硬件时钟作为时间源,继续为网络提供服务,这通过local stratum指令实现,层级(stratum)数字越小,时间源越可信,通常设置为10,表示一个较低的优先级。

    # Serve time even if not synchronized to a time source. local stratum 10

启动并启用服务

配置文件修改完毕后,需要启动chronyd服务并设置其开机自启。

sudo systemctl start chronyd sudo systemctl enable chronyd

使用以下命令检查服务状态,确保其正在运行:

sudo systemctl status chronyd

配置防火墙规则

NTP服务使用UDP协议的123端口,如果系统启用了防火墙(默认为firewalld),必须开放此端口,否则客户端无法连接。

sudo firewall-cmd --add-service=ntp --permanent sudo firewall-cmd --reload

--permanent参数表示规则永久生效,reload则重新加载防火墙配置。

CentOS系统下怎样安装配置NTP服务端实现集群时间同步? 第3张

验证与监控

服务器配置完成后,我们需要验证其是否正常工作。chronyc是chrony的命令行工具,可用于监控和调试。

命令 描述
chronyc sources -v 查看当前连接的上游时间源状态,^*开头的表示当前正在同步的源。
chronyc tracking 显示详细的系统时间同步信息,包括与时间源的偏移量和系统时钟的频率。

在客户端机器上,同样安装chrony,并将其配置文件中的server或pool指令指向我们刚搭建的NTP服务器IP地址,然后启动服务即可。


相关问答FAQs

Q1: chrony 和传统的 ntp (ntpd) 有什么区别?我应该选择哪个?

A: chrony是较新的NTP实现,相比传统的ntpd,它有几个显著优势:

  1. 快速同步:chrony能在几分钟内完成初始时间同步,而ntpd可能需要数小时。
  2. 网络适应性强:对于网络连接不稳定(如间歇性断网)的环境,chrony的表现更好,能更快地恢复同步。
  3. 虚拟机友好:在虚拟机中,时钟可能会漂移,chrony能更好地处理这种情况。

    对于绝大多数现代应用场景,特别是CentOS 7及以后版本,推荐使用chrony。ntpd更适合那些需要高度稳定且网络连接永固的旧系统。

Q2: 如何检查客户端是否成功从我的NTP服务器同步了时间?

A: 在客户端机器上,您可以使用多种方法进行验证,最直接的方式是使用chronyc命令:

  1. 执行 chronyc sources -v,查看输出中是否包含您的NTP服务器IP地址,并且该地址前面是否有^*或^+符号。^*表示当前正在同步的源,^+表示候选的可用源。
  2. 您也可以使用 timedatectl status 命令(适用于systemd系统),查看NTP synchronized项是否为yes,同时NTP service应为active。

    如果看到这些信息,说明客户端已成功连接到您的服务器并正在同步时间。

0