CentOS搭建NTP服务器,如何实现内网时间精准同步?

在网络世界中,时间的精准同步是确保系统稳定运行、服务可靠交付和安全审计有效性的基石,无论是分布式数据库的事务一致性、日志文件的时序分析,还是证书的时效性验证,都离不开一个统一、准确的时间源,在众多 Linux 发行版中,CentOS 因其稳定性和广泛的企业级应用而备受青睐,本文将详细介绍如何在 CentOS 系统上配置一台 NTP(Network Time Protocol)服务器,为整个网络提供精确的时间同步服务。

CentOS搭建NTP服务器,如何实现内网时间精准同步?

准备工作

在开始配置之前,请确保您已经具备以下条件:

  • 一台已安装好 CentOS 7 或 CentOS 8 / Stream 的服务器。
  • 拥有 root 权限或具有 sudo 权限的普通用户账户。
  • 服务器能够访问互联网,以便从公共 NTP 服务器池获取时间。
  • 了解服务器的网络配置,尤其是其 IP 地址和所属网段。

安装 NTP 服务软件

CentOS 的不同版本默认使用的时间同步软件有所不同,在 CentOS 7 中,传统的 ntpd 是标准选择;而在 CentOS 8 及之后的版本中,更现代、更高效的 chrony 成为了默认的时间同步服务,两者都能出色地完成 NTP 服务器的工作,但 chrony 在处理网络不稳定和虚拟机环境方面表现更优,我们将分别介绍它们的安装。

对于 CentOS 7:

CentOS 7 默认可能没有安装 ntpd,您可以使用 yum 包管理器进行安装:

sudo yum install ntp -y

对于 CentOS 8 / Stream / RHEL 9:

在这些较新的系统中,推荐使用 chrony,它通常默认已安装,如果没有,可以使用 dnf 进行安装:

sudo dnf install chrony -y

为了方便对比,下表列出了 ntpdchrony 的一些主要区别:

特性 ntpd chrony
默认系统 CentOS 6/7 CentOS 8+ / RHEL 8+ / Debian 10+
同步速度 初始同步较慢 初始同步非常快
网络适应性 适合稳定的网络环境 对网络延迟和中断适应性极强
时钟精度 非常高 同样非常高
配置文件 /etc/ntp.conf /etc/chrony.conf
推荐场景 传统、稳定的物理服务器 现代服务器、虚拟机、容器、网络不稳定环境

配置 NTP 服务器

安装完成后,核心步骤在于编辑配置文件,定义上游时间源并设置访问控制规则。

配置 ntpd (CentOS 7)

ntpd 的主配置文件是 /etc/ntp.conf,在编辑前,建议先备份原文件:

sudo cp /etc/ntp.conf /etc/ntp.conf.bak

使用文本编辑器(如 vinano)打开配置文件:

sudo vi /etc/ntp.conf

配置上游服务器

在文件中找到 server 开头的行,这些行定义了您的服务器将从哪里获取时间,默认情况下,CentOS 可能已经配置了一些 centos.pool.ntp.org 这样的服务器池,您可以保留它们,或者替换为您偏好的公共 NTP 服务器池,例如中国的 NTP 服务器池 cn.pool.ntp.org

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.cn.pool.ntp.org iburst
server 1.cn.pool.ntp.org iburst
server 2.cn.pool.ntp.org iburst
server 3.cn.pool.ntp.org iburst

iburst 参数是一个很好的实践,它能在服务启动时快速进行多次时间同步请求,以加快初次同步的速度。

设置访问控制

CentOS搭建NTP服务器,如何实现内网时间精准同步?

这是至关重要的一步,它决定了哪些客户端可以向您的 NTP 服务器请求时间同步,使用 restrict 关键字来定义规则。

# 授予本地机器所有权限(包括修改时间)
restrict 127.0.0.1
restrict ::1
# 允许局域网(192.168.1.0/24)内的客户端查询和同步时间,
# 但禁止他们修改服务器的配置或作为对等节点
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
  • nomodify:禁止客户端修改服务器配置。
  • notrap:防止控制消息陷阱。
  • noquery:可选,如果禁止客户端查询服务器状态,可以加上此参数。

配置 chrony (CentOS 8+)

chrony 的主配置文件是 /etc/chrony.conf,同样,建议先备份:

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

配置上游服务器

ntpd 类似,使用 poolserver 指令。pool 指令会自动解析域名下的多个服务器,更具弹性。

# Use public servers from the pool.ntp.org project.
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

设置访问控制

chrony 使用 allow 指令来控制客户端访问。

# Allow NTP client access from local network.
allow 192.168.1.0/24

这一行表示允许 168.1.0/24 网段的所有设备向此服务器同步时间。

启用本地时钟源(可选)

如果您的服务器与外网断开,chrony 可以将其自身的硬件时钟作为时间源,继续为内网提供服务,尽管精度会逐渐下降,取消以下行的注释即可启用:

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

启动服务并设置开机自启

配置文件修改完毕后,就可以启动相应的服务,并将其设置为开机自启动。

对于 ntpd (CentOS 7):

sudo systemctl start ntpd
sudo systemctl enable ntpd

对于 chrony (CentOS 8+):

sudo systemctl start chronyd
sudo systemctl enable chronyd

您可以使用 systemctl status ntpdsystemctl status chronyd 来检查服务是否正在运行。

配置防火墙

NTP 服务使用 UDP 协议的 123 端口,如果您的服务器启用了防火墙(默认启用的 firewalld),必须开放此端口。

CentOS搭建NTP服务器,如何实现内网时间精准同步?

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

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

验证与监控

服务器运行后,如何确认它是否正常工作?

对于 ntpd,使用 ntpq -p 命令:

ntpq -p

输出结果会列出所有配置的上游服务器,您需要关注以下标记:

  • 前面的 号表示当前正在同步的主服务器。
  • 号表示可作为备选的优质服务器。
  • delayoffsetjitter 值越小,表示同步质量越高。

对于 chrony,使用 chronyc sources -v 命令:

chronyc sources -v

输出同样会列出上游服务器,关注 ^、 等符号:

  • 表示当前同步源。
  • ^ 表示其他可用源。
  • Last sample 列显示了时间偏移量和偏差,这些值越小越好。

您还可以使用 chronyc tracking 命令查看更详细的系统时间同步状态信息。

至此,您的 CentOS NTP 服务器已经配置完成,并开始为网络中的其他设备提供精准的时间同步服务。


相关问答 FAQs

问题 1:在新的 CentOS 系统上,我应该选择 ntpd 还是 chrony

解答: 对于大多数现代部署场景,尤其是在 CentOS 8 及更新版本上,强烈推荐使用 chrony,主要原因有三点:chrony 是这些新版本的默认时间同步工具,与系统集成度更高;chrony 在处理网络连接不稳定(如虚拟机休眠唤醒、网络频繁中断)方面表现远超 ntpd,它能更快地恢复同步;chrony 的初始同步速度非常快,通常在几秒钟内就能完成,如果您在维护一个基于 CentOS 7 的、网络环境极其稳定的传统系统,ntpd 依然是一个非常可靠和成熟的选择。

问题 2:我的客户端无法从 NTP 服务器同步时间,应该如何排查?

解答: 客户端同步失败通常涉及多个环节,可以按照以下步骤进行排查:

  1. 检查服务器端服务状态:在 NTP 服务器上运行 systemctl status ntpdsystemctl status chronyd,确保服务正在运行且没有报错。
  2. 检查服务器端防火墙:在服务器上执行 sudo firewall-cmd --list-all,确认 ntp 服务(UDP 123 端口)是否已被允许。
  3. 检查服务器端配置:确认 /etc/ntp.conf/etc/chrony.conf 中的 restrictallow 规则是否包含了客户端的 IP 地址或网段。
  4. 检查网络连通性:在客户端上 ping NTP 服务器的 IP 地址,确保网络是通的,在服务器上 ping 上游公共 NTP 服务器,确保服务器自身能访问外网。
  5. 查看服务器日志:使用 journalctl -u ntpdjournalctl -u chronyd -f 查看服务的实时日志,日志中通常会包含客户端连接请求或同步失败的详细错误信息,这是定位问题的最有效手段。

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/5394.html

(0)
上一篇 2025年10月14日 12:30
下一篇 2025年10月14日 12:39

相关推荐

  • 安全中心服务重要消息具体是什么内容?

    安全中心服务重要消息服务升级背景与意义随着信息技术的快速发展和网络环境的日益复杂,各类安全威胁层出不穷,个人信息泄露、网络诈骗、数据攻击等问题对用户财产安全和隐私保护构成了严峻挑战,在此背景下,安全中心服务始终致力于为用户提供全方位、安全可靠的防护体系,为进一步提升服务质量,强化风险防控能力,安全中心近期将对多……

    2025年11月28日
    01400
  • 分布式存储高性能计算存储

    随着人工智能、基因测序、气候模拟等领域的快速发展,高性能计算(HPC)对存储系统的要求日益严苛——不仅需要承载PB级甚至EB级数据,还需支持高并发访问、低延迟读写以及高可靠性,传统集中式存储因扩展性瓶颈和性能局限,已难以满足HPC场景的需求,分布式存储凭借其弹性扩展、并行处理和容错能力,逐渐成为支撑高性能计算的……

    2025年12月31日
    01110
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • 非关系型数据库为何存在性能瓶颈和扩展难题?揭秘其隐藏的五大缺点!

    非关系型数据库的缺点随着互联网和大数据时代的到来,非关系型数据库因其灵活性和扩展性在许多场景下得到了广泛应用,任何技术都有其局限性,非关系型数据库也不例外,以下是几种常见的非关系型数据库的缺点:数据模型限制缺乏标准化非关系型数据库通常采用文档存储、键值对、列存储等非标准化的数据模型,这使得数据结构更加灵活,但也……

    2026年1月21日
    0880
  • 命令行配置DNS时,有哪些常见错误和解决方法?

    命令行配置DNS:高效设置网络连接的指南在计算机网络中,DNS(域名系统)是解析域名到IP地址的关键服务,正确配置DNS对于确保网络连接的稳定性和访问速度至关重要,本文将介绍如何在命令行中配置DNS,以便用户能够根据自己的需求调整网络设置,命令行工具介绍在大多数操作系统中,可以使用以下命令行工具来配置DNS:W……

    2025年12月19日
    01740

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注