在服务器管理和维护中,精确的时间同步是确保系统稳定、日志准确、安全认证有效的基石,网络时间协议(NTP)正是为此而生,它通过互联网同步计算机时钟,使其与协调世界时(UTC)保持高度一致,对于广泛使用的 CentOS 系统,开启并正确配置 NTP 服务是一项基础且重要的技能,本文将详细介绍如何在 CentOS 系统上启用 NTP 服务,确保您服务器时间的精准无误。
使用 Chrony (推荐,适用于 CentOS 7 及以上版本)
从 CentOS 7 开始,Chrony
成为默认的 NTP 实现,相较于传统的 ntpd
,它在处理网络不稳定、虚拟机环境以及间歇性网络连接方面表现更优,同步速度也更快。
1 安装 Chrony
大多数情况下,CentOS 7/8 系统默认已安装 chrony
,您可以通过以下命令检查并安装:
# 检查是否已安装 rpm -qa | grep chrony # 如果未安装,则执行安装 sudo yum install -y chrony
2 配置 Chrony
Chrony
的主配置文件位于 /etc/chrony.conf
,您可以使用文本编辑器(如 vi
或 nano
)进行修改,配置文件的核心是定义时间服务器。
sudo vi /etc/chrony.conf
在配置文件中,您会看到以 pool
或 server
开头的行,这些行指定了用于同步的上游 NTP 服务器,默认配置通常使用 CentOS 的公共服务器池,对于大多数场景已经足够。
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
pool 2.centos.pool.ntp.org iburst
您可以根据需要将其替换为更接近您地理位置或更可靠的公共 NTP 服务器,例如阿里云或腾讯云提供的 NTP 服务。
# 使用阿里云NTP服务器
server ntp.aliyun.com iburst
server ntp1.aliyun.com iburst
参数说明:
server
: 指定单个 NTP 服务器。pool
: 指定一个服务器池,chrony
会从中选择多个服务器进行同步,提高可靠性。iburst
: 在首次同步时,会快速发送一系列请求(通常8个),以加速同步过程。
3 启动并启用服务
配置完成后,启动 chronyd
服务,并设置其开机自启。
# 启动 chronyd 服务 sudo systemctl start chronyd # 设置 chronyd 开机自启 sudo systemctl enable chronyd
4 验证同步状态
使用 chronyc
命令行工具可以检查同步状态。
# 查看时间源信息 chronyc sources -v
输出结果中,^*
开头的行表示当前正在使用的同步源,^+
表示可用且符合条件的备用同步源。
# 查看详细的同步状态信息 chronyc tracking
此命令会显示 Last offset
(最后一次的偏移量)、RMS offset
(偏移量的均方根值)等关键信息,这些数值越小,代表同步精度越高。
配置防火墙
如果您的服务器启用了防火墙(如 firewalld
),必须允许 NTP 服务(使用 UDP 123 端口)通过,否则外部客户端无法从您的服务器同步时间,同时您的服务器也可能无法与外部时间源通信。
# 允许 NTP 服务通过防火墙(永久生效) sudo firewall-cmd --add-service=ntp --permanent # 重新加载防火墙规则使配置生效 sudo firewall-cmd --reload
使用 NTPd (适用于旧版系统如 CentOS 6)
对于仍在使用 CentOS 6 等旧版本系统的环境,ntpd
依然是标准选择,其配置过程与 Chrony
类似。
- 安装 NTPd:
sudo yum install -y ntp
- 配置: 编辑
/etc/ntp.conf
文件,添加server
指令指向 NTP 服务器。 - 启动与启用:
sudo service ntpd start
和sudo chkconfig ntpd on
- 验证: 使用
ntpq -p
命令查看同步状态, 号标记当前同步源。
功能 | Chrony (推荐) | NTPd (传统) |
---|---|---|
适用系统 | CentOS 7 / 8 / Stream 及以上 | CentOS 6 及更早版本 |
配置文件 | /etc/chrony.conf | /etc/ntp.conf |
启动命令 | systemctl start chronyd | service ntpd start |
状态查询 | chronyc sources , chronyc tracking | ntpq -p |
优势 | 快速同步、适应网络波动、适合虚拟机 | 成熟稳定、历史悠久 |
相关问答 (FAQs)
Q1: Chrony 和传统的 NTPd 有什么区别?为什么新版 CentOS 推荐使用 Chrony?
A1: 主要区别在于设计目标和性能表现。Chrony
专为在各种复杂网络环境下(如间歇性连接、高延迟网络、虚拟机)实现快速且稳定的时间同步而设计,它通常能在几分钟内完成初始同步,而 ntpd
可能需要数小时。Chrony
对系统时钟的微小频率变化(如温度变化引起的)有更好的适应能力,对于现代数据中心和云计算环境,Chrony
提供了更高效、更可靠的解决方案,这也是新版 CentOS 默认并推荐使用它的原因。
Q2: 如何查看我的服务器与时间源的精确时间偏差?
A2: 您可以使用 chronyc
工具来获取精确的偏差信息,执行 chronyc tracking
命令后,在输出结果中关注 Last offset
字段,这个值表示上一次与时间源同步时,本地时钟与服务器时间的瞬时偏差,单位通常是秒。Last offset: +0.000012345 seconds
表示本地时钟快了约 12.345 微秒,这个数值越接近零,说明同步精度越高。RMS offset
字段提供了长期偏差的均方根值,也是衡量同步稳定性的重要指标。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复