为何必须使用时间同步服务器?

NTP服务器用于解决网络设备间时间不同步问题,确保日志准确、事务有序,并为时间敏感应用提供统一可靠的时间基准。

网络时间协议 (NTP) 是互联网上用于同步计算机时钟的关键协议,在 CentOS 系统上部署一个可靠、准确的 NTP 服务器,对于确保企业内网、服务器集群或任何依赖精确时间的系统环境至关重要,本指南将详细介绍在 CentOS 7 或 CentOS 8/Stream 上配置 NTP 服务器的标准方法。

  • 时间一致性: 确保网络中所有服务器、工作站、网络设备(如路由器、交换机)和应用程序拥有高度一致的时间戳。
  • 日志关联: 故障排查、安全审计时,精确的时间戳是关联不同系统日志事件的基础。
  • 安全协议: Kerberos 认证、TLS/SSL 证书验证等安全机制严重依赖准确的时间。
  • 分布式系统: 数据库集群、负载均衡、批处理作业等需要严格的时间同步以避免数据冲突或逻辑错误。
  • 法规遵从: 某些行业法规要求系统时间必须可审计且准确。

CentOS 上的 NTP 实现选择

CentOS 主要支持两种 NTP 实现:

  1. ntpd (来自 ntp 包):

    • 传统的、功能完备的 NTP 守护进程。
    • 历史悠久,稳定可靠,配置复杂但灵活。
    • 适用于需要精细控制或特定高级功能的场景。
  2. chronyd (来自 chrony 包):

    • 现代推荐方案 (尤其适用于 CentOS 7+):
    • 设计更轻量,启动更快,对间歇性网络连接(如虚拟机、笔记本电脑)适应性更强。
    • 能更好地处理不稳定的网络延迟和时钟漂移。
    • 默认配置通常更简单,安全性配置(如 -m 选项)更符合现代需求。
    • 通常作为 CentOS 7 及更高版本的默认安装选项。

本指南将重点介绍 chronyd 的配置,因其是当前 CentOS 版本的推荐和默认选择。 也会简要提及 ntpd 的配置要点。

安装 Chrony (推荐方法)

  1. 检查是否已安装:

    rpm -q chrony

    如果未安装,输出会提示 package chrony is not installed

  2. 安装 Chrony:

    sudo yum install chrony         # CentOS 7
    sudo dnf install chrony         # CentOS 8/Stream
  3. 启动并启用开机自启:

    sudo systemctl start chronyd
    sudo systemctl enable chronyd
  4. 检查服务状态:

    sudo systemctl status chronyd

    确保状态显示为 active (running)

配置 Chrony NTP 服务器

  1. 编辑主配置文件:

    sudo vi /etc/chrony.conf
  2. 关键配置项:

    • 指定上游 NTP 服务器池/源 (必需):
      # 使用 CentOS 提供的 NTP 源池 (推荐)
      pool 2.centos.pool.ntp.org iburst
      # 或者使用公共 NTP 池 (如亚洲区)
      # pool asia.pool.ntp.org iburst
      # 或者指定具体的可靠 NTP 服务器
      # server ntp1.example.com iburst
      # server ntp2.example.com iburst
      • pool: 使用 DNS 轮询负载均衡一组服务器。
      • server: 指定单个服务器。
      • iburst: 初始启动时快速发送多个包以加速同步。
    • 允许客户端访问 (必需):
      # 允许特定网段 (192.168.1.0/24) 的客户端同步
      allow 192.168.1.0/24
      # 或者允许所有客户端 (谨慎使用,仅在安全内网考虑)
      # allow all

      安全最佳实践: 使用 allow 指令精确限制可访问 NTP 服务的客户端 IP 范围,避免不必要的 allow all

    • 启用本地时间源 (可选,适用于无稳定外部网络):
      # 如果服务器无法访问外部 NTP 源,启用本地硬件时钟作为备用源 (层级 10)
      # local stratum 10

      仅在必要时启用,并理解这会降低时间精度。

    • 记录测量统计 (可选):
      # 启用日志记录
      logdir /var/log/chrony
      # 记录测量统计 (有助于监控和调试)
      # log measurements statistics tracking
    • 其他重要选项 (通常保持默认):
      • makestep: 处理大的时间偏差(如 makestep 1.0 3 表示前三次更新允许步进调整超过1秒)。
      • rtcsync: 告诉内核系统时间由 chronyd 定期同步到 RTC (硬件时钟)。
      • driftfile: 记录系统时钟频率漂移的文件路径 (/var/lib/chrony/drift)。
  3. 保存并关闭文件。

  4. 重启 Chronyd 使配置生效:

    sudo systemctl restart chronyd

配置防火墙 (Firewalld)

允许 NTP 服务 (端口 UDP/123) 的入站访问:

sudo firewall-cmd --permanent --add-service=ntp # CentOS 7/8/Stream
sudo firewall-cmd --reload

验证 Chrony 同步状态

  1. 查看时间源和同步状态:

    chronyc sources -v
    • 检查 ^*^+ 标记,表示当前选中的同步源。
    • 查看源的状态 (S 列)、层级 (Stratum)、精度 (Poll)、到达时间 (Reach)、最后更新时间 (LastRx) 和偏移量 (Offset)。Reach 值 (八进制) 接近 377 表示连接良好。
  2. 查看跟踪信息:

    chronyc tracking
    • 查看 Reference ID (当前同步源的 ID/IP)、Stratum (层级)、Ref time (上次更新时间)、System time (当前系统时间偏移量)、Root delay (到源的总延迟)、Root dispersion (累积误差)、Leap status (闰秒状态) 等关键指标。System time 的偏移量应很小 (通常在毫秒级)。
  3. 快速检查状态:

    chronyc activity

    查看在线源 (Online) 和离线源 (Offline) 的数量。

配置 NTP 客户端 (指向此服务器)

在需要同步时间的客户端机器 (可以是另一台 CentOS、Windows、网络设备等) 上,将其 NTP 服务器地址配置为您刚搭建的 CentOS NTP 服务器的 IP 地址或主机名

  • CentOS 客户端 (使用 chrony):
    编辑 /etc/chrony.conf,注释掉或删除原有的 pool/server 行,添加:

    server your_ntp_server_ip iburst

    重启 chronyd 并验证 (chronyc sources -v)。

  • Windows 客户端:
    在“设置”->“时间和语言”->“日期和时间”->“其他设置”->“Internet 时间”->“更改设置”中,输入您的 NTP 服务器地址并点击“立即更新”。

使用 ntpd (传统方法 – 备选)

  1. 安装:

    sudo yum install ntp         # CentOS 7
    sudo dnf install ntp         # CentOS 8/Stream
  2. 配置 (/etc/ntp.conf):

    • 指定上游源 (server/pool 指令,同上)。
    • 关键安全配置 (限制访问):
      # 允许本地查询 (如 ntpq, ntpdc)
      restrict 127.0.0.1
      restrict ::1
      # 允许特定网段客户端同步 (nomodify 防止修改配置)
      restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
      # 拒绝其他所有访问 (默认策略)
      restrict default kod nomodify notrap nopeer noquery
      • nomodify: 禁止客户端修改配置。
      • notrap: 禁止使用 ntpdc 控制消息陷阱。
      • nopeer: 禁止建立对等体关系。
      • noquery: 禁止 ntpq/ntpdc 查询 (对纯客户端不需要)。
      • kod: 对违规访问发送 KoD (Kiss-o’-Death) 包。
    • 其他选项 (driftfile, logfile 等)。
  3. 启动并启用:

    sudo systemctl start ntpd
    sudo systemctl enable ntpd
  4. 防火墙: 同样需要允许 UDP/123 (sudo firewall-cmd --permanent --add-service=ntp)。

  5. 验证:

    ntpq -pn
    • 查看 remote (源地址)、refid (源的参考源)、st (层级)、t (类型)、when (上次查询秒数)、poll (轮询间隔)、reach (八进制可达性)、delay (延迟)、offset (偏移)、jitter (抖动)。 表示当前同步源。

监控与维护

  • 定期检查状态: 使用 chronyc sources -vntpq -pn 监控同步状态和源的健康状况。
  • 查看日志: /var/log/messages (chrony/ntpd 日志通常记录在此) 或 Chrony 的专用日志 (如果配置了 logdirlog 指令)。
  • 保持系统更新: sudo yum update / sudo dnf update 确保 NTP 软件包获得安全补丁和更新。
  • 硬件时钟同步: 确保 hwclock --systohc (或 Chrony 的 rtcsync) 在关机/重启时正确将系统时间写入硬件时钟 (RTC)。
  • 考虑冗余: 对于关键环境,部署多个 NTP 服务器,并让它们相互同步或指向不同的上游源。

常见问题排查

  • chronyc sources 显示 或 x 源不可达或配置错误,检查网络连接、防火墙规则、上游源地址是否正确。
  • chronyc tracking 显示大的 System time 偏移: 初始同步可能需要时间 (iburst 帮助加速),如果持续很大,检查网络延迟、服务器负载、硬件时钟问题。
  • 客户端无法同步: 检查客户端配置 (指向正确的服务器 IP)、客户端防火墙 (允许 UDP/123 出站)、服务器防火墙 (允许客户端 IP 的 UDP/123 入站)、服务器配置 (allow 指令是否包含客户端 IP)。
  • clock not synchronized 服务未运行 (systemctl status chronyd/ntpd)、配置错误、网络问题或上游源不可用。

在 CentOS 上配置一个健壮的 NTP 服务器是维护整个 IT 基础设施时间准确性的基石,遵循本指南,选择推荐的 chronyd 实现,进行精确的访问控制 (allow/restrict),并定期监控状态,您将能够建立一个可靠、安全且符合 E-A-T 原则的时间同步服务,精确的时间不仅是技术需求,更是保障系统安全、日志有效性和业务连续性的关键要素。


引用说明:

  • Chrony 项目官方文档: https://chrony.tuxfamily.org/documentation.html (权威技术参考)
  • NTP 项目官方文档: http://www.ntp.org/documentation.html (权威技术参考)
  • CentOS Wiki / 官方文档: 关于特定 CentOS 版本的服务管理 (systemctl)、包管理 (yum/dnf)、防火墙 (firewalld) 的使用说明。(https://wiki.centos.org/, https://docs.centos.org/)
  • NTP Pool Project: https://www.ntppool.org/ (公共 NTP 服务器池信息)
  • RFC 1305 (NTPv3) / RFC 5905 (NTPv4): 网络时间协议的核心技术标准定义。(https://datatracker.ietf.org/doc/rfc1305/, https://datatracker.ietf.org/doc/rfc5905/) (最高权威标准)

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8580.html

(0)
酷番叔酷番叔
上一篇 2025年7月25日 02:48
下一篇 2025年7月25日 02:58

相关推荐

  • 贵州大数据安全研究中心招聘哪些岗位?,大数据安全研究中心待遇如何?

    贵州大数据安全工程研究中心2026年招聘已启动,主要面向数据安全、网络安全、隐私计算等领域,提供8-15个岗位,要求本科及以上学历,部分岗位需3年以上经验,年薪范围在15-30万之间,贵州大数据安全工程研究中心概况贵州大数据安全工程研究中心是经贵州省大数据发展管理局批准成立的专业研究机构,依托贵州师范大学等单位……

    2026年7月20日
    1700
  • 服务器内部错误500为何频发?原因何在及如何有效排查解决?

    服务器内部错误500(HTTP 500 Internal Server Error)是网站访问中常见的服务器端错误状态码,表示服务器在处理请求时遇到了意外情况,无法完成请求操作,这类错误通常不直接暴露具体原因,而是返回一个通用的“500”提示,因此排查和解决需要结合服务器日志、配置和代码等多方面信息,以下从错误……

    2025年9月30日
    23400
  • 一般服务器指什么?日常应用场景有哪些?

    一般服务器是专为提供各类服务而设计的高性能计算机系统,与普通个人电脑(PC)存在本质区别,普通PC侧重个人用户体验,而服务器则围绕稳定性、可靠性、可扩展性及高并发处理能力构建,是支撑企业业务、互联网服务及数据中心运行的核心基础设施,硬件组成一般服务器的硬件系统是高性能的基础,核心组件包括:中央处理器(CPU……

    2025年10月16日
    15900
  • 广东智能人脸识别考勤机系统好用吗,智能人脸识别考勤机哪个好

    对于广东企业而言,2026年选择智能人脸识别考勤机系统,应优先考虑具备3D活体检测、云端协同及国密算法认证的头部品牌,以平衡效率与数据安全,广东企业考勤管理痛点与智能化升级必要性传统指纹打卡与IC卡考勤在广东企业中日渐暴露出接触式传播风险、代打卡漏洞与数据统计滞后等问题,根据广东省工业和信息化厅2026年发布的……

    2026年7月27日
    1800
  • 低价服务器是否值得买?性能与安全如何兼顾?

    低价服务器通常指价格相对较低、满足基础计算需求的服务器产品,其核心优势在于以高性价比为中小企业、个人开发者或初创团队提供稳定的算力支持,无需承担高端服务器的高昂成本,这类服务器在配置上可能更注重基础性能的均衡性,而非极致的扩展能力,因此成为预算有限但需要稳定运行应用场景的理想选择,从优势来看,低价服务器首先显著……

    2025年9月17日
    13600

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信