0

0

CentOS时间同步如何配置_CentOS时间同步设置方法

看不見的法師

看不見的法師

发布时间:2025-09-16 22:52:01

|

464人浏览过

|

来源于php中文网

原创

答案:CentOS时间同步推荐使用Chrony,因其在虚拟机和网络不稳定环境下表现更优;首先检查timedatectl状态,安装并配置chrony.conf指定可靠NTP源如阿里云,启用rtcsync和makestep参数,启动chronyd服务并设置开机自启,通过timedatectl status、chronyc sources -v和chronyc tracking验证同步状态;若无外网则搭建内网NTP服务器或使用GPS,避免与虚拟化平台时间同步功能冲突。

centos时间同步如何配置_centos时间同步设置方法

CentOS系统的时间同步,核心就是让你的服务器时钟与一个可靠的外部时间源保持一致。这通常通过网络时间协议(NTP)服务或Chrony服务来实现。在现代CentOS版本中,Chrony因其更快的同步速度和在网络不稳定环境下的优异表现,成为了主流且推荐的选择。

解决方案

配置CentOS时间同步,我的做法通常是优先考虑Chrony,因为它在很多场景下都比传统的NTPD表现更好,尤其是在虚拟机或网络条件不那么理想的环境里。

  1. 检查当前状态: 在动手之前,先看看系统当前的时间同步状况。

    timedatectl status

    这里你会看到

    NTP service
    是否启用,以及
    System clock synchronized
    的状态。如果
    NTP service
    inactive
    或者
    System clock synchronized
    no
    ,那我们就有活干了。

  2. 安装Chrony: 如果系统里没有Chrony,需要先安装。 对于CentOS 7/8:

    sudo yum install chrony -y
    # 或者对于CentOS 8+
    # sudo dnf install chrony -y
  3. 配置Chrony: 编辑Chrony的主配置文件

    /etc/chrony.conf

    sudo vim /etc/chrony.conf

    找到

    server
    pool
    行。通常,系统会默认配置一些NTP服务器。你可以选择保留它们,或者替换成你认为更稳定、更近的服务器。我个人比较喜欢使用国内的一些公共NTP池,比如阿里云腾讯云的。 例如,你可以这样配置:

    # 使用阿里云的NTP服务器池
    pool ntp.aliyun.com iburst
    # 或者使用国家授时中心的NTP服务器
    # server ntp.ntsc.ac.cn iburst
    # 你也可以指定多个服务器
    # server 0.centos.pool.ntp.org iburst
    # server 1.centos.pool.ntp.org iburst
    
    # 允许哪些网络访问本Chrony服务(如果你想让这台机器也作为时间服务器)
    # allow 192.168.0.0/16
    
    # 确保以下两行没有被注释,它们对于系统时间与硬件时间(RTC)的同步很重要
    rtcsync
    makestep 1 3

    iburst
    参数可以加速初始同步过程。
    makestep 1 3
    的意思是,如果时间差超过1秒,就在前3次更新中强制调整(步进),之后就平滑调整(slew)。

  4. 启动并启用Chrony服务: 保存配置文件后,启动Chrony服务并设置开机自启。

    sudo systemctl start chronyd
    sudo systemctl enable chronyd
  5. 验证同步状态: 再次检查

    timedatectl status
    ,或者使用Chrony自己的命令。

    timedatectl status
    chronyc sources -v
    chronyc tracking

    chronyc sources -v
    会列出Chrony正在尝试同步的NTP源,
    ^*
    表示当前正在使用的源,
    ^+
    表示可用的备用源。
    chronyc tracking
    则会显示更详细的同步信息,比如参考ID、层级(stratum)和时间偏移(offset)。如果
    Reference ID
    不是
    0.0.0.0
    ,且
    System clock synchronized
    yes
    ,那基本上就没问题了。

Chrony和NTPD,我该选哪个?

这几乎是每个系统管理员都会遇到的选择题。我的经验是,对于大多数现代CentOS部署,Chrony是更优的选择。

NTPD是传统的NTP守护进程,它非常成熟和稳定,但它的同步算法设计更偏向于长期、稳定的网络连接。在网络状况不佳、服务器频繁暂停(比如虚拟机快照、休眠)或者时间漂移较大的情况下,NTPD可能需要更长的时间来校正系统时间,甚至可能出现较大的时间跳变(step)。

而Chrony则是一个相对较新的实现,它在设计上就考虑到了现代服务器环境的特点:

网奇Eshop网络商城系统
网奇Eshop网络商城系统

网奇.NET网络商城系统是基于.Net平台开发的免费商城系统。功能强大,操作方便,设置简便。无需任何设置,上传到支持asp.net的主机空间即可使用。系统特色功能:1、同时支持Access和SqlServer数据库;2、支持多语言、多模板3、可定制缺货处理功能4、支持附件销售功能5、支持会员组批发功能6、提供页面设计API函数7、支持预付款功能8、配送价格分地区按数学公式计算9、商品支持多类别,可

下载
  • 更快的同步速度: Chrony能更快地适应时钟频率的变化,并在启动时或从网络中断恢复后迅速同步时间。
  • 更好的性能: 在网络条件不稳定、带宽有限或间歇性连接的环境中,Chrony的表现更出色。它能更有效地处理时间服务器的不可达情况。
  • 对虚拟机更友好: 虚拟机经常会暂停、恢复,导致时间大幅度漂移。Chrony能更好地处理这种大范围的时间跳变,并将其平滑地调整回来,减少对应用程序的影响。
  • 资源占用更低: 通常Chrony的资源消耗比NTPD要少。

所以,如果你的CentOS是7或8,并且没有特别的历史包袱或兼容性要求,我强烈推荐使用Chrony。如果你的系统是更老的版本,或者你需要维护一个已经运行NTPD多年的环境,那么继续使用NTPD也未尝不可,但要了解它的局限性。

时间同步后,我怎么知道它真的工作了?

光配置完还不够,确认时间同步是否真的生效且稳定,这是非常关键的一步。我通常会从几个方面来验证:

  1. timedatectl status
    这是最直观的检查。执行后,你需要关注两点:

    • NTP service: active
      :这表明Chrony(或NTPD)服务正在运行。
    • System clock synchronized: yes
      :这表示系统时钟已经成功与NTP源同步。 如果这两项都是你期望的状态,那至少说明服务已启动并尝试同步。
  2. chronyc sources -v
    这个命令会显示Chrony当前正在使用的NTP源列表,以及它们的状态。

    • ^*
      :表示这个源是Chrony当前选择并用于同步的主时间源。看到这个标记,基本可以确定同步正在进行。
    • ^+
      :表示这个源是一个可用的、健康的备用源。
    • ?
      :表示源已配置,但Chrony还没有从它那里收到任何数据。
    • x
      :表示源是不可达或不健康的。 同时,你还可以看到每个源的层级(Stratum)、偏移量(Offset)和测量精度(Reach)。健康的同步源应该有较低的层级和较小的偏移量。
  3. chronyc tracking
    这个命令提供了更详细的同步状态信息:

    • Reference ID
      :显示当前同步的NTP服务器的ID。如果显示的是IP地址或服务器名称,就说明已经成功连接到外部NTP服务器。如果显示
      0.0.0.0
      ,通常意味着Chrony还没有找到或连接到任何有效的NTP源。
    • Stratum
      :当前系统时钟的层级。层级越低,表示离原子钟越近,时间越精确。通常,与公共NTP服务器同步后,你的服务器层级会在3到5之间。
    • System time
      :显示当前系统时间与参考时间源之间的偏移量。这个值应该非常小,通常在几毫秒甚至微秒级别。
    • Last offset
      :上一次同步时的时间偏移。
    • RMS offset
      :均方根偏移,反映了时间同步的稳定性。
  4. 观察一段时间的系统日志:

    journalctl -u chronyd
    (或
    journalctl -u ntpd
    )可以查看Chrony服务的运行日志。如果服务启动失败、连接NTP源遇到问题,或者同步过程中出现异常,日志里都会有记录。我通常会留意是否有
    NTP sync
    Adjusting system clock
    之类的成功信息,以及任何错误或警告。

如果这些检查都显示正常,你的CentOS服务器的时间同步基本上就是工作正常的了。如果遇到问题,比如

NTP service
inactive
,首先检查Chrony服务是否真的启动了,然后排查防火墙(UDP 123端口)和网络连通性问题。

没有外部网络,我的CentOS服务器如何同步时间?

在一些特殊的、隔离的网络环境中,CentOS服务器可能无法直接访问外部的NTP时间源。这种情况下,时间同步就变得有点棘手,但并非没有解决方案。我的做法通常是构建一个内部的时间同步体系:

  1. 部署内部NTP/Chrony服务器: 这是最常见也最推荐的方法。你需要选择一台或几台服务器作为内部的时间主服务器(Grandmaster)。这台主服务器可以:

    • 连接到外部NTP源(如果条件允许): 即使整个内网隔离,但如果有一台服务器能够通过某种方式(比如只允许NTP协议通过的防火墙规则)连接到外部NTP源,那它就可以作为内网所有其他机器的时间源。
    • 使用GPS时间接收器: 对于极度严格的时间精度要求或完全隔离的环境,可以为主服务器配备一个硬件GPS接收器。GPS信号中包含精确的时间信息,服务器通过特定的软件(如
      gpsd
      配合Chrony/NTPD)就能获取到高精度的时间。
    • 依靠硬件时钟(不推荐作为主源): 如果以上方法都不可行,理论上可以指定一台机器完全依靠其自身的硬件时钟(RTC)作为“时间源”,然后其他机器同步到它。但硬件时钟通常精度不高,容易漂移,所以这只是一种最后的、精度最低的方案。

    一旦内部主服务器配置好并能提供时间服务,内网中所有的其他CentOS服务器就将它们的

    chrony.conf
    (或
    ntp.conf
    )文件中的
    pool
    server
    行指向这台内部主服务器的IP地址或主机名。 例如,在客户端的
    /etc/chrony.conf
    中:

    server 192.168.1.100 iburst # 假设这是你的内部NTP主服务器IP
    # 其他配置保持不变
  2. 虚拟化环境下的考量: 如果你的CentOS服务器是运行在VMware、KVM或VirtualBox等虚拟化平台上的虚拟机,那么宿主机(Host)本身通常会提供时间同步功能。

    • 我的建议是: 尽量让虚拟机内部运行自己的Chrony或NTPD服务,并同步到可靠的NTP源(可以是外部的,也可以是内部的NTP主服务器)。
    • 避免冲突: 同时启用虚拟机内部的NTP服务和虚拟化平台的Host-Guest时间同步功能,可能会导致时间频繁跳变或不一致。通常,如果虚拟机内部已经配置了NTP/Chrony,我会选择在虚拟化平台层面禁用对该虚拟机的时间同步,让虚拟机完全自主管理时间。这样可以避免不必要的干扰,确保时间同步的稳定性和精度。
  3. 极端情况下的手动调整(仅作为应急): 在极度特殊且无法通过任何自动化方式同步的场景下,你可能需要手动使用

    date -s "YYYY-MM-DD HH:MM:SS"
    命令来设置系统时间。但这种方法非常不推荐,因为它无法抵消时钟漂移,且容易引入人为错误。它只能作为一种临时的、应急的手段,并且需要定期手动校准,这显然不符合自动化运维的理念。

构建一个健壮的内部时间同步架构,对于隔离环境中的日志分析、分布式系统协调和安全审计都至关重要。

相关专题

更多
什么是分布式
什么是分布式

分布式是一种计算和数据处理的方式,将计算任务或数据分散到多个计算机或节点中进行处理。本专题为大家提供分布式相关的文章、下载、课程内容,供大家免费下载体验。

319

2023.08.11

分布式和微服务的区别
分布式和微服务的区别

分布式和微服务的区别在定义和概念、设计思想、粒度和复杂性、服务边界和自治性、技术栈和部署方式等。本专题为大家提供分布式和微服务相关的文章、下载、课程内容,供大家免费下载体验。

225

2023.10.07

页面置换算法
页面置换算法

页面置换算法是操作系统中用来决定在内存中哪些页面应该被换出以便为新的页面提供空间的算法。本专题为大家提供页面置换算法的相关文章,大家可以免费体验。

383

2023.08.14

tcp和udp的区别
tcp和udp的区别

TCP和UDP的区别,在连接性、可靠性、速度和效率、数据报大小以及适用场景等方面。本专题为大家提供tcp和udp的区别的相关的文章、下载、课程内容,供大家免费下载体验。

115

2023.07.25

udp是什么协议
udp是什么协议

UDP是OSI参考模型中一种无连接的传输层协议。本专题为大家带来udp是什么协议的相关文章,免费提供给大家。

267

2023.08.08

tcp和udp有什么区别
tcp和udp有什么区别

tcp和udp的区别有:1、udp是无连接的,tcp是面向连接的;2、udp是不可靠传输,tcp是可靠传输;3、udp是面向报文传输,tcp是面向字节流传输。想了解更多tcp相关的内容,可阅读本专题下面的相关文章。

342

2024.11.14

centos
centos

PHP中文网为大家提供centos相关信息,CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一,是免费的、开源的、可以重新分发的开源操作系统,PHP中文网提供centos相关文章,以及安装教程。

426

2023.06.16

常见的linux系统有哪些
常见的linux系统有哪些

linux系统有Ubuntu、Fedora、CentOS、Debian、openSUSE、Arch Linux、Gentoo、Slackware、Linux Mint、Kali Linux。更多关于linux系统的文章详情请阅读本专题下面的文章。php中文网欢迎大家前来学习。

791

2023.10.27

ip地址修改教程大全
ip地址修改教程大全

本专题整合了ip地址修改教程大全,阅读下面的文章自行寻找合适的解决教程。

81

2025.12.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.7万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号