Appearance
3. 时间同步配置
本章节指导在 RHEL 8.10 系统(主机名 ZSLinux)上使用 chronyd 服务进行时间同步。chronyd 是 RHEL 8 默认的时间同步工具,稳定可靠,适用于企业级服务器与虚拟化环境。所有命令均在 ZSLinux 环境下测试通过,确保可复现性。
🧠 知识点:准确的系统时间对于日志分析、安全审计、证书验证及分布式系统通信至关重要。
3.1 前提条件
- RHEL 8.10 已安装(参考第 1 章),主机名设置为
ZSLinux。 - 使用 SecureCRT 登录(SSH2 协议,端口 22)。
- 使用 SecureFX 传输文件(SFTP 协议)。
- 网络连接正常,可访问外部 NTP 服务器。
💡 提示:chronyd 默认随系统启动。若系统在内网运行,也可配置局域网时间源。
3.2 时间同步配置步骤
3.2.1 检查并启动 chronyd 服务
🛠️ 操作步骤:
检查服务状态:
bashsystemctl status chronyd # 检查 chronyd 服务状态启用并启动服务:
bashsystemctl enable --now chronyd # 启用并立即启动 chronyd 服务
✅ 检查点:输出中应显示
active (running)状态。
⚠️ 注意:若服务启动失败,可能是网络未连通或配置文件语法错误。
3.2.2 配置 NTP 时间服务器
🧠 知识点:chronyd 使用
/etc/chrony.conf文件定义时间源服务器,通过iburst参数实现快速同步。
编辑配置文件:
bashvi /etc/chrony.conf # 编辑 chronyd 配置文件添加或修改时间服务器:
bashserver time.cloudflare.com iburst # Cloudflare 时间服务器 server ntp.aliyun.com iburst # 阿里云时间服务器应用配置:
bashsystemctl restart chronyd # 重启服务以应用配置
💡 提示:可根据地理位置选择延迟更低的 NTP 源,例如腾讯云或国家授时中心。
✅ 检查点:确认
/etc/chrony.conf中至少包含一个可访问的 NTP 服务器地址。
⚠️ 注意:若系统在离线环境中,应搭建内网 NTP 服务器作为同步源。
3.2.3 设置系统时区
🧠 知识点:RHEL 使用
timedatectl工具统一管理时区与时间同步配置。
设置为上海时区:
bashtimedatectl set-timezone Asia/Shanghai # 设置系统时区为上海验证当前时区:
bashtimedatectl # 检查时区与同步状态
💡 提示:若服务器部署在全球不同地区,可使用
timedatectl list-timezones | grep Asia查询可用时区。
✅ 检查点:输出中应包含
Time zone: Asia/Shanghai。
3.3 验证时间同步状态
🛠️ 操作步骤:执行以下命令验证系统同步状态:
bash
chronyc tracking # 查看同步状态(偏移量、延迟、精度等)
chronyc sources -v # 显示 NTP 源详细信息
timedatectl # 查看系统时间、时区及 NTP 状态🧩 示例:
Leap status : Normal System time : 0.000034021 seconds fast of NTP time NTP enabled : yes Time zone : Asia/Shanghai (CST, +0800)
⚠️ 注意:若显示
NTP service: inactive,请重新启动 chronyd 并确认防火墙放行 UDP 123 端口。
✅ 检查点:
timedatectl输出中应显示NTP synchronized: yes。
3.4 硬件时钟同步与配置
🧠 知识点:Linux 系统时间分为两种:
- 系统时间(System Clock):操作系统运行期间维护的时间;
- 硬件时钟(Hardware Clock / RTC):主板电池供电的独立计时模块。
3.4.1 查看硬件时钟时间
bash
hwclock --show # 查看当前硬件时钟时间3.4.2 将系统时间写入硬件时钟
💡 提示:系统时间通常由 NTP 校准后更为准确,建议定期写入硬件时钟以保持一致。
bash
hwclock --systohc # 将系统时间同步到硬件时钟3.4.3 将硬件时钟时间加载到系统
⚠️ 注意:若系统未联网或未启用 NTP,可通过此方式使用硬件时间。
bash
hwclock --hctosys # 将硬件时钟时间写入系统时间✅ 检查点:执行
hwclock --show与date命令时,两者时间应基本一致。
⚠️ 注意:若硬件时钟长期不准确,系统启动后即使 NTP 同步,也可能造成:
- 日志时间错乱,影响事件追溯;
- SSL/TLS 证书验证失败;
- 计划任务(crontab)执行异常;
- 分布式系统(如数据库集群)时序紊乱。
💡 建议:在关键服务器上定期执行
hwclock --systohc,确保 RTC 时钟长期准确。
3.5 常见问题与排查
🔍 故障排查:
问题 1: 同步失败
解决方法: 检查网络连接是否可达:bashping -c 4 time.cloudflare.com若无法访问,确认防火墙或代理策略允许 UDP 123 通信。
问题 2: 服务未运行
解决方法: 重新启动并设为开机自启:bashsystemctl enable --now chronyd问题 3: 同步时间不准
解决方法: 调整 NTP 源顺序或清理缓存:bashchronyc makestep💡 提示:
chronyc sources -v可查看各 NTP 源的延迟与偏移量,方便判断最优服务器。
3.6 实践任务
- 使用 SecureCRT 登录
ZSLinux,执行systemctl status chronyd确认服务状态。 - 编辑
/etc/chrony.conf,添加time.cloudflare.com与ntp.aliyun.com。 - 执行
systemctl restart chronyd应用更改。 - 使用
timedatectl设置时区为Asia/Shanghai。 - 使用
hwclock --systohc将系统时间写入硬件时钟。 - 验证同步状态,确保
NTP synchronized: yes。
✅ 检查点:完成所有操作后,系统时间与硬件时钟应保持一致,且
chronyc tracking偏移量低于 0.1 秒。
3.7 自测问题
问题 1:如何查看当前 NTP 同步状态?
答案:使用chronyc tracking、chronyc sources -v或timedatectl。问题 2:如何修改系统时区为上海?
答案:执行timedatectl set-timezone Asia/Shanghai。问题 3:chronyd 无法同步的常见原因有哪些?
答案:网络不通、防火墙阻断 UDP 123、NTP 源配置错误。问题 4:如何确保硬件时钟与系统时间一致?
答案:执行hwclock --systohc,将系统时间写入硬件时钟。
🧾 总结: 本章介绍了使用 chronyd 配置与验证时间同步的完整流程,涵盖服务启动、NTP 源配置、时区设置、硬件时钟同步与验证方法。掌握这些操作可确保系统日志一致性、安全认证准确性及集群事件的时序正确,为企业级系统稳定运行奠定基础。
