Centos中的Chrony时间同步服务及其配置

前言

当我们在CentOS上运行多台计算机或服务器时,确保它们的时间同步非常重要。时间同步对于网络协同工作、日志记录、安全性和许多其他关键任务都至关重要。在CentOS中,Chrony是一种常用的时间同步服务,它可以帮助你维护准确的系统时钟。

在本篇博客中,我们介绍了Chrony时间同步服务的概念以及如何在CentOS上进行配置。我们将深入探讨Chrony的工作原理、安装步骤和常见的配置选项,以确保你的系统时钟保持准确和同步。

什么是时间同步?

时间同步的概念

时间同步是确保计算机系统的时钟与一个参考时间源(通常是一个精确的全球标准时间,如协调世界时 UTC)保持一致的过程。在分布式系统、网络通信和各种计算应用中,精确的时间同步至关重要。

时间同步的作用

  1. 数据一致性:在数据库和分布式系统中,时间戳用于维护数据一致性和顺序。

  2. 日志记录:精确的时间戳对于系统和网络日志非常重要,有助于故障排查和安全审计。

  3. 网络安全:许多安全协议,如 Kerberos 和 TLS,依赖于精确的时间来防止重放攻击。

  4. 计划任务:准确的时间对于计划任务和自动化作业的准时执行非常重要。

  5. 文件时间戳:在文件共享和备份中,时间戳用于确定文件的最新版本。

Linux 服务器上的时间同步方法

1. NTP(网络时间协议)
  • NTP 客户端:如 ntpdchronyd,这些客户端可以配置为定期与 NTP 服务器同步,以保持系统时间的准确性。
  • NTP 服务器:Linux 服务器可以配置为 NTP 服务器,为本地网络中的其他设备提供时间同步服务。
  • 公共 NTP 服务器:例如 pool.ntp.org,提供全球分布的服务器,用户可以免费使用。
2. 时间同步协议(PTP)
  • 适用于更高精度需求:PTP(精密时间协议)在需要非常高精度时间同步的环境中使用,如金融交易和工业控制系统。
3. 手动时间同步
  • 命令行工具:如 date 命令,允许管理员手动设置系统时间。虽然不精确,但适用于某些没有网络访问的环境。
4. 系统启动时的时间同步
  • 硬件时钟同步:在系统启动时,Linux 可以配置为从硬件时钟(通常与 BIOS/UEFI 时间同步)读取时间。

时间同步注意事项

  • 网络环境、系统类型和精确度需求会影响选择哪种时间同步方法。
  • 时间同步服务在配置和维护时需要考虑网络安全性,避免潜在的时间劫持或篡改风险。

Chrony时间服务介绍

起源

Chrony 的起源可以追溯到 2002 年,由 Richard Curnow 创建和维护。Chrony 的设计目标是解决传统 NTP(Network Time Protocol)在某些方面存在的性能和精度问题。Richard Curnow 开发 Chrony 的初衷是为了提供一种更精确和更可靠的时间同步工具,特别是针对那些对时间精度要求非常高的应用和系统。

优势

  1. 更高的时间精度:Chrony 使用精确的时钟算法,可以实现微秒级别的时间同步,相对于传统的 NTP(Network Time Protocol)协议,提供更高的时间精度。

  2. 改进的时钟漂移调整:Chrony 通过使用更智能的漂移调整算法,可以更快地调整系统时钟,使其保持准确。这对于需要高度时间精度的应用程序和服务非常重要。

  3. 网络不稳定性的容忍性:Chrony 可以在网络不稳定或临时断开的情况下继续提供准确的时间同步。它能够适应网络延迟和抖动,以确保时间同步的稳定性。

  4. 容易配置和管理:Chrony 提供了简单的配置文件,使管理员能够轻松地自定义时间同步设置。它还提供了命令行工具和日志记录功能,有助于监控和管理时间同步。

  5. 支持多种操作系统:Chrony 可以在多种操作系统上运行,包括Linux、FreeBSD和macOS等,因此适用于各种计算机环境。

总之,Chrony 是一个高性能、稳定且易于管理的时间同步工具,适用于需要高精度时间同步的各种应用场景,特别是在科学、金融和网络领域等对时间要求严格的场合。

工作原理

  1. 时间测量:Chrony 定期测量系统时钟和一个或多个远程时间服务器之间的时间差。这些时间服务器通常是 NTP 服务器或其他可提供准确时间参考的时间源。

  2. 时钟校准:Chrony 使用测量结果来计算系统时钟的偏差(offset)和漂移(drift)。偏差表示当前系统时钟与参考时间源之间的差距,漂移表示系统时钟的变化速率。

  3. 自适应调整:Chrony 使用这些偏差和漂移值来自适应性地调整系统时钟。它不仅考虑当前的时间差,还考虑了时钟的漂移率,以便更精确地校准时钟。这种自适应性调整可以使系统时钟迅速趋向准确,并持续维持准确性。

  4. 选择最佳服务器:Chrony 能够选择最佳的时间服务器,以确保获得准确的时间参考。它根据每个服务器的测量质量和可用性进行选择,并动态地调整服务器的权重,以反映其稳定性和可靠性。

  5. 网络不稳定性处理:Chrony 能够处理网络不稳定性,包括延迟和抖动。它通过自适应性调整来适应这些变化,以确保时间同步的稳定性和准确性。

  6. 日志记录和监控:Chrony 提供了详细的日志记录功能,管理员可以使用这些日志来监视时间同步的性能和稳定性。此外,Chrony 还提供了命令行工具,以便管理员可以手动控制和配置时间同步。

Chrony的安装以及使用

安装

chrony可以直接通过yum进行安装,操作如下:

yum install -y chrony 
 
主配置文件:/etc/chrony.conf
 
客户端程序:/usr/bin/chronyc
 
服务端程序:/usr/sbin/chronyd

配置文件的含义

# 使用 pool.ntp.org 项目的公共服务器。
# 请考虑加入这个池(http://www.pool.ntp.org/join.html)。
server 0.centos.pool.ntp.org iburst  # 使用 0.centos.pool.ntp.org 作为 NTP 服务器,并启用快速初始化模式
server 1.centos.pool.ntp.org iburst  # 使用 1.centos.pool.ntp.org 作为 NTP 服务器,并启用快速初始化模式
server 2.centos.pool.ntp.org iburst  # 使用 2.centos.pool.ntp.org 作为 NTP 服务器,并启用快速初始化模式
server 3.centos.pool.ntp.org iburst  # 使用 3.centos.pool.ntp.org 作为 NTP 服务器,并启用快速初始化模式

# 记录系统时钟的快慢变化率。
driftfile /var/lib/chrony/drift  # 指定用于记录系统时钟漂移率的文件路径

# 如果系统时钟的偏移量大于1秒,则在前三次更新中允许调整系统时钟。
makestep 1.0 3  # 在前三次更新中,如果时钟偏差超过1秒,则进行调整

# 启用实时时钟(RTC)的内核同步。
rtcsync  # 启用与硬件实时时钟的同步功能

# 在支持的所有接口上启用硬件时间戳。
#hwtimestamp *  # 启用硬件级时间戳,如果需要可以取消注释

# 增加调整系统时钟所需的可选择源的最小数量。
#minsources 2  # 设置可选择的最小NTP源数量,如果需要可以取消注释

# 允许本地网络中的 NTP 客户端访问。
#allow 192.168.0.0/16  # 允许指定IP范围内的设备访问NTP服务,如果需要可以取消注释并调整IP范围

# 即使未与时间源同步也提供时间服务。
#local stratum 10  # 设置本地时间层级,用于在没有外部同步源时提供时间服务,如果需要可以取消注释

# 指定包含 NTP 认证密钥的文件。
#keyfile /etc/chrony.keys  # 指定NTP认证密钥文件的路径,如果需要使用NTP认证功能可以取消注释

# 指定日志文件的存储目录。
logdir /var/log/chrony  # 设置chrony日志文件的存储目录

# 选择要记录的信息类型。
#log measurements statistics tracking  # 指定要记录的日志信息类型,如需要可以取消注释

使用Chrony同步时间(阿里云为例)

NTP服务器介绍

NTP(Network Time Protocol,网络时间协议)服务器是一种用于同步计算机和网络设备时钟的服务或设备。其主要功能是提供准确的时间信息,以确保计算机和网络设备的时钟保持同步。

常用的NTP服务器

cn.pool.ntp.org
Windows系统自带:time.windows.com和time.nist.gov
MacOS X系统自带:time.apple.com和time.asia.apple.com
cn.ntp.org.cn
阿里云NTP服务器:ntp1.aliyun.com、ntp2.aliyun.com、ntp3.aliyun.com、ntp4.aliyun.com、ntp5.aliyun.com、ntp6.aliyun.com、ntp7.aliyun.com
腾讯云NTP服务器:ntpupdate.tencentyun.com
国家授时中心服务器:210.72.145.44
清华大学NTP服务器:s1b.time.edu.cn、s1e.time.edu.cn、s2a.time.edu.cn、s2b.time.edu.cn

配置NTP服务器(以阿里云为例)

找到我们的默认配置文件

sudo vi /etc/chrony.conf

在配置文件中的server模块进行修改,并保存修改后的文件

# 注释掉以下默认的 pool.ntp.org 服务器
#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

# 使用阿里云的 NTP 服务器
server ntp1.aliyun.com iburst

重启 chronyd 服务以应用更改:

sudo systemctl restart chronyd

(可选)检查同步状态:

chronyc tracking
chronyc sources

注意事项

请注意,iburst 选项在初始同步时会发送快速请求,有助于加快首次同步过程。

如果你的网络环境有特殊的防火墙或安全设置,确保 UDP 端口 123 对于 ntp1.aliyun.com 是开放的,以允许 NTP 流量通过。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值