CentOS服务器时间不准,怎样进行网络时间校准?

在服务器管理和系统维护的领域中,确保系统时间的准确性是一项基础且至关重要的任务,一个精确的系统时间不仅是日志记录、文件时间戳和用户交互的基础,更是分布式系统、集群环境、数据库同步以及安全认证(如Kerberos)正常运行的基石,时间不一致可能导致数据错乱、认证失败、调度任务执行错误等一系列严重问题,为CentOS系统配置可靠的网络时间校准机制,是每一位系统管理员必须掌握的核心技能。

CentOS服务器时间不准,怎样进行网络时间校准?

网络时间协议是实现网络设备时间同步的标准,在CentOS生态中,实现NTP校准主要有两种主流工具:传统的ntpd和现代的chrony,本文将详细介绍这两种工具,并重点推荐在当前CentOS版本中使用chrony进行时间同步。


现代之选:使用 chrony 进行时间校准

从CentOS 7开始,chrony成为了默认的NTP客户端和服务端软件,相较于ntpdchrony在设计上更具优势,尤其能快速适应网络变化,并且在虚拟机环境中表现更为出色,它能够在系统启动后迅速同步时间,即使网络连接不稳定或间歇性中断,也能保持良好的时间精度。

安装 chrony

在大多数CentOS 7及更高版本的安装中,chrony通常已经预装,您可以通过以下命令进行检查和安装:

# 检查是否已安装
rpm -q chrony
# 如果未安装,则使用yum或dnf进行安装
sudo yum install chrony  # 适用于CentOS 7
# 或
sudo dnf install chrony  # 适用于CentOS 8/Stream

配置 chrony

chrony的主配置文件位于/etc/chrony.conf,该文件结构清晰,注释详尽,大多数情况下,默认配置已经足够良好,以下是几个关键配置项的说明:

  • poolserver 指令:用于指定NTP时间服务器。pool指令会从一个包含多个服务器的池中自动选择,提供了更好的冗余性和负载均衡,默认配置通常使用CentOS官方提供的时间服务器池。

    # 使用公共NTP服务器池
    pool 2.centos.pool.ntp.org iburst

    iburst选项可以在chronyd启动时,快速发送一连串数据包以加速首次同步。

  • allow 指令:如果您希望将本机配置为时间服务器,为局域网内的其他设备提供时间同步服务,需要使用此指令。

    # 允许192.168.1.0网段的所有主机同步时间
    allow 192.168.1.0/24
  • logdir 指令:指定日志文件的存放目录。

    logdir /var/log/chrony

修改完配置文件后,需要重启chronyd服务使配置生效。

CentOS服务器时间不准,怎样进行网络时间校准?

管理与验证 chrony 服务

使用systemctl来管理chronyd服务:

# 启动chronyd服务
sudo systemctl start chronyd
# 设置chronyd服务开机自启
sudo systemctl enable chronyd
# 查看服务状态
sudo systemctl status chronyd

验证时间同步状态,可以使用以下几种命令:

  • chronyc sources -v:查看当前已连接的时间源(服务器)。

    .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
    / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
    | /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
    ||                                                 .- xxxx [ yyyy ] +/- zzzz
    ||      Reachability register (octal) -.           |  xxxx = adjusted offset,
    ||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
    ||                                     |          |  zzzz = estimated error.
    ||                                 |    |           
    MS Name/IP address         Stratum Poll Reach LastRx Last sample
    ===============================================================================
    ^* 203.107.6.88                  2   6    17    45   +12us[+123us] +/-   11ms

    输出中的号表示当前正在同步的时间源。

  • chronyc tracking:显示详细的系统时间信息,包括时间偏移量、频率等。

    Reference ID    : 5C6B2A58 (203.107.6.88)
    Stratum         : 3
    Ref time (UTC)  : Wed Oct 26 10:30:00 2025
    System time     : 0.000001523 seconds fast of NTP time
    Last offset     : +0.000012345 seconds
    RMS offset      : 0.000023456 seconds
    Frequency       : 3.123 ppm slow
    Residual freq   : -0.001 ppm
    Skew            : 0.012 ppm
    Root delay      : 0.034567892 seconds
    Root dispersion : 0.001234567 seconds
    Update interval : 64.6 seconds
    Leap status     : Normal
  • timedatectl status:这是CentOS 7+中一个高级的系统时间和日期管理工具,可以直观地看到NTP同步状态。

    Local time: Wed 2025-10-26 18:30:15 CST
    Universal time: Wed 2025-10-26 10:30:15 UTC
    RTC time: Wed 2025-10-26 10:30:15
    Time zone: Asia/Shanghai (CST, +0800)
    NTP enabled: yes
    NTP synchronized: yes  # <-- 这里的 "yes" 表示已同步
    RTC in local TZ: no
    DST active: n/a

传统方案:使用 ntpd 进行时间校准

chrony成为主流之前,ntpd(Network Time Protocol daemon)是配置NTP服务的标准工具,它功能强大且稳定,但在某些场景下(如频繁开关机的虚拟机)同步速度较慢,如果您管理的系统是CentOS 6或更早版本,或者有特殊需求需要使用ntpd,可以参考以下步骤。

重要提示chronydntpd不能同时运行,它们会相互冲突,在启用其中一个之前,必须确保另一个已被禁用并停止。

# 停止并禁用chronyd(如果正在运行)
sudo systemctl stop chronyd
sudo systemctl disable chronyd

安装与配置 ntpd

# 安装ntpd
sudo yum install ntp
# 编辑配置文件 /etc/ntp.conf
sudo vi /etc/ntp.conf

/etc/ntp.conf中,主要配置server指令来指定时间服务器:

CentOS服务器时间不准,怎样进行网络时间校准?

# Use public servers from the pool.ntp.org project.
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

管理与验证 ntpd 服务

# 启动并设置ntpd开机自启
sudo systemctl start ntpd
sudo systemctl enable ntpd
# 查看同步状态
ntpq -p

ntpq -p命令会列出所有配置的时间源及其状态,号代表当前同步的源。


chronyntpd 对比

特性 chrony ntpd
设计理念 快速同步,适应网络变化 稳定、持续微调
适用场景 物理服务器、虚拟机、桌面系统、网络不稳定的设备 长期运行、网络稳定的传统服务器
初始同步 非常快,通常几秒内完成 较慢,可能需要数分钟
虚拟机表现 优秀,能很好处理虚拟时钟漂移 一般,可能需要额外配置
默认工具 CentOS 7/8/Stream 默认 CentOS 6 及更早版本默认

常见问题与排查

  1. 防火墙问题:NTP服务使用UDP的123端口,如果时间同步失败,请检查防火墙是否放行了该端口。

    # 使用firewall-cmd开放端口
    sudo firewall-cmd --add-service=ntp --permanent
    sudo firewall-cmd --reload
  2. 时区设置错误:在进行时间同步前,请确保系统时区设置正确,错误的时区会导致显示时间与实际时间不符。

    # 查看当前时区
    timedatectl
    # 设置时区为上海
    sudo timedatectl set-timezone Asia/Shanghai

通过以上步骤,您可以为您的CentOS服务器建立一个稳定、可靠的网络时间校准系统,从而保障整个IT基础设施的协调与安全。


相关问答 (FAQs)

Q1: 我的CentOS服务器应该选择 chrony 还是 ntpd

A: 对于绝大多数情况,尤其是CentOS 7、8及Stream版本,强烈推荐使用chrony,它是现代的默认选择,同步速度快,在虚拟化和网络不稳定的环境中表现更佳,只有在您维护非常老旧的CentOS系统(如6.x),或者您的应用环境有特殊要求必须使用ntpd的特定功能时,才考虑使用ntpd

Q2: chronyd 服务正在运行,但 timedatectl status 显示 “NTP synchronized: no”,该怎么办?

A: 这是一个常见问题,可能由以下几个原因导致:

  • 防火墙拦截:请检查服务器本地防火墙或网络防火墙是否允许UDP 123端口的出站流量。
  • 网络不通:确认服务器能够访问配置文件中指定的NTP服务器,可以尝试pingcurl服务器地址。
  • 服务器池问题:极少数情况下,您配置的NTP服务器池可能暂时不可用,可以尝试更换为其他公共NTP服务器池,如pool.ntp.org
  • 时间偏差过大:如果系统时间与标准时间偏差太大(例如超过1000秒),chrony可能拒绝同步,可以手动停止chronyd,使用ntpdate(需单独安装)或chronyc命令强制同步一次,然后再启动chronyd服务。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-04 15:35
下一篇 2025-10-04 15:38

相关推荐

  • CentOS 7安装Pure-FTPD服务器的完整教程是?

    在服务器管理和网站维护中,文件传输协议(FTP)是一种不可或缺的工具,它允许用户在网络上的客户端和服务器之间安全、高效地上传和下载文件,在众多FTP服务器软件中,Pure-FTPD以其轻量级、高性能、高安全性和易于配置的特点,赢得了众多系统管理员的青睐,本文将详细介绍如何在CentOS系统上一步步安装、配置和管……

    2025-10-03
    002
  • 如何选择合适的服务器组装配置和USB Key厂商?

    服务器组装配置厂商主要专注于根据客户需求定制和组装高性能服务器,而配置USB Key厂商则专门生产加密USB设备,用于数据安全和身份认证。两者都提供定制化服务,但专注的产品线不同。

    2024-07-30
    0011
  • 负载平衡_附录

    负载平衡是一种技术,用于在多个服务器之间分配工作负载,以提高性能和可靠性。它可以防止任何单一服务器因过载而崩溃,确保系统平稳运行。

    2024-07-17
    007
  • 如何选择最适合您需求的服务器服务?

    选择服务器服务时,应考虑性能、稳定性、价格和客户支持等因素。创建服务器时,确保硬件配置满足需求,选择合适的操作系统,并设置必要的安全措施。

    2024-08-05
    005

发表回复

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

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信