CentOS系统时间不准,如何永久调整并同步网络时间?

在CentOS系统中,准确的时间和日期配置是保障服务器稳定运行的关键环节之一,它不仅影响到系统日志记录的准确性、计划任务(cron jobs)的按时执行,还与安全认证、证书有效性等密切相关,本文将详细介绍在CentOS系统中查看、设置时区、手动调整时间以及如何通过NTP协议实现高精度时间同步的最佳实践。

CentOS系统时间不准,如何永久调整并同步网络时间?

查看当前日期时间与状态

在进行任何调整之前,首先需要了解系统当前的时间和状态,在较新的CentOS版本(如CentOS 7及以上)中,推荐使用timedatectl命令,它提供了一个统一的接口来管理系统时间和日期。

打开终端,输入以下命令:

timedatectl status

该命令会输出一个详细的状态报告,内容通常如下:

      Local time: Thu 2025-10-26 10:30:00 CST
  Universal time: Thu 2025-10-26 02:30:00 UTC
        RTC time: Thu 2025-10-26 02:29:59
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

输出信息解读:

  • Local time: 系统的本地时间。
  • Universal time (UTC): 协调世界时,是全球统一的时间标准。
  • RTC time: 硬件时钟(Real-Time Clock)的时间,这是主板上一块独立供电的芯片所维持的时间,在主机断电后依然运行。
  • Time zone: 当前设置的时区。
  • NTP enabled: 表示NTP服务是否已设置为开机自启。
  • NTP synchronized: 表示系统时间是否已成功与NTP服务器同步。

使用传统的date命令也可以快速查看当前系统时间:

date

输出格式通常为:Thu Oct 26 10:30:00 CST 2025

设置或更改时区

服务器运行的地理位置决定了其应使用的时区,错误的时区设置会导致日志时间戳和计划任务执行时间与预期不符,使用timedatectl可以非常方便地管理时区。

列出所有可用的时区

timedatectl list-timezones

这个命令会列出数百个时区,输出结果很长,你可以使用grep命令进行筛选,例如查找上海的时区:

timedatectl list-timezones | grep Shanghai

设置新的时区

确定目标时区后(Asia/Shanghai),使用以下命令进行设置,此命令需要root权限。

sudo timedatectl set-timezone Asia/Shanghai

执行后,系统会立即应用新的时区设置,无需重启,你可以再次运行timedatectl status来验证更改是否生效。

CentOS系统时间不准,如何永久调整并同步网络时间?

手动调整日期时间(不推荐)

在某些特殊情况下,例如网络隔离的环境,你可能需要手动设置系统时间,虽然timedatectl可以做到,但强烈不建议在生产环境中长期使用手动设置的时间,因为它容易产生漂移,且无法与网络中的其他服务保持同步。

使用 timedatectl 设置时间

你可以同时设置日期和时间,格式为 “YYYY-MM-DD HH:MM:SS”。

sudo timedatectl set-time "2025-10-27 14:00:00"

重要提示:当NTP服务(NTP enabled: yes)处于活动状态时,手动设置时间的操作将会失败,因为NTP服务会立即覆盖你的设置,你必须先禁用NTP服务才能手动调整时间。

sudo timedatectl set-ntp no
sudo timedatectl set-time "2025-10-27 14:00:00"

启用NTP自动时间同步(最佳实践)

确保服务器时间准确的最可靠方法是使用网络时间协议(NTP),NTP通过与网络上的时间服务器通信,持续、自动地校准系统时间,有效避免时间漂移。

在CentOS 7及更高版本中,默认的NTP客户端是chronyd,它比传统的ntpd更高效,尤其适合网络不稳定的环境。

启用NTP同步

使用timedatectl可以一键启用NTP服务,这个命令会启动并启用chronyd服务。

sudo timedatectl set-ntp yes

验证NTP同步状态

启用后,稍等片刻,再次检查状态:

timedatectl status

你应该能看到 NTP enabled: yesNTP synchronized: yes,如果NTP synchronized仍然显示no,稍等几分钟再查看,因为同步需要一定时间。

使用 chronyc 进行高级诊断

CentOS系统时间不准,如何永久调整并同步网络时间?

chronycchronyd的命令行界面,提供了更详细的同步信息。

  • 查看同步详情:

    chronyc tracking

    这会显示时间偏差(Last offset)、同步源的距离(Root distance)等关键指标,帮助判断同步质量。

  • 查看当前使用的时间源:

    chronyc sources

    这会列出chronyd正在与之通信的NTP服务器,^符号表示当前正在同步的服务器。

常用命令对比

为了方便理解,下表小编总结了timedatectl与传统命令的主要功能对比。

功能 timedatectl (推荐) 传统命令
查看时间状态 timedatectl status date, hwclock -r
设置时区 timedatectl set-timezone <Zone> ln -sf /usr/share/zoneinfo/<Zone> /etc/localtime
手动设置时间 timedatectl set-time "YYYY-MM-DD HH:MM:SS" date -s "YYYY-MM-DD HH:MM:SS"
启用NTP同步 timedatectl set-ntp yes systemctl enable --now chronyd
硬件时钟同步 timedatectl set-local-rtc yes/no (通常不推荐) hwclock --systohchwclock --hctosys

相关问答FAQs

问题1:我手动修改了时间,但服务器重启后又变回去了,这是为什么?

解答: 这通常是由于你修改的是系统时间,但没有同步到硬件时钟(RTC),并且NTP服务正在运行,当你重启服务器时,系统会从硬件时钟读取初始时间;如果NTP服务是启用的,它会在网络连接后立即将时间同步回NTP服务器,覆盖你的手动设置,正确的做法是始终使用NTP服务来管理时间(sudo timedatectl set-ntp yes),而不是手动干预,如果确实需要在无网络环境下设置时间,手动设置后应执行 sudo hwclock --systohc 将系统时间写入硬件时钟。

问题2:我的服务器时区设置正确(比如是Asia/Shanghai),但显示的时间却比北京时间快或慢了几个小时,这是什么原因?

解答: 这个问题几乎可以肯定是NTP同步出现了问题,时区正确意味着时间的“显示格式”是对的,但时间“值”本身是错误的,请按以下步骤排查:

  1. 运行 timedatectl status,检查 NTP synchronized 是否为 yes,如果显示 no,说明系统未能成功与时间服务器同步。
  2. 检查 chronyd 服务是否正在运行:sudo systemctl status chronyd,如果不是,请尝试启动它:sudo systemctl start chronyd
  3. 检查防火墙设置,确保UDP端口123(NTP服务端口)是开放的,允许服务器与外部NTP服务器通信。
  4. 使用 chronyc sources 查看时间源列表,检查是否有服务器被选中(带有^标记)以及它们的连接状态,如果列表为空或所有服务器都显示异常,可能是网络问题或chrony配置文件(/etc/chrony.conf)中的服务器地址无效。

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

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

相关推荐

  • CentOS怎么配公网网关,实现内网机器上网?

    在构建企业或私有云网络环境时,使用一台服务器作为统一的公网网关是一种常见且高效的网络架构,CentOS以其稳定性和开源特性,成为搭建此类网关的理想选择,本文将详细介绍如何在CentOS系统上配置一个功能完善的公网网关,实现内网服务器通过它访问外部网络,核心原理公网网关的核心功能是网络地址转换(NAT)和IP转发……

    2025-10-14
    004
  • 服务器和客户端数量_如何查看服务器域名已备案数量

    要查看服务器域名已备案数量,可以访问中国工业和信息化部的ICP/IP地址/域名信息备案管理系统(https://beian.miit.gov.cn/),在首页输入域名查询即可。

    2024-07-12
    0020
  • CentOS WiFi打不开找不到设备,如何排查驱动和配置问题?

    在CentOS系统中遇到无法打开WiFi的问题,是许多用户,尤其是将CentOS用于桌面环境的用户,常会遇到的挑战,CentOS以其稳定性和企业级应用而闻名,但其对消费级硬件,特别是部分无线网卡的驱动支持,可能不如Ubuntu等桌面发行版那样“开箱即用”,当面临“centos wifi打不开”的困境时,不必惊慌……

    2025-10-19
    002
  • 如何优化服务器配置以提升应用性能?

    摘要:本文讨论了服务器配置与应用配置的重要性。强调了合理配置服务器硬件和软件资源对于提高系统性能、确保数据安全以及优化应用运行效率的必要性。同时指出,正确的应用配置可以增强用户体验,降低维护成本。

    2024-08-08
    0013

发表回复

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

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

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

关注微信