准确--CentOS 7 配置 Chrony 同步阿里云 NTP 时间服务器及手动同步指南
本文档介绍如何在 CentOS 7 系统上配置 chrony 服务,使其与阿里云 NTP 时间服务器保持时间同步,并说明如何在需要时手动触发一次立即同步。
前提条件:
- 拥有一台 CentOS 7 服务器。
- 拥有 root 权限或可以使用 sudo命令。
- 服务器可以访问互联网 (使用公共 NTP 地址) 或阿里云内网 (使用内网 NTP 地址)。
第一部分:配置 Chrony 与阿里云 NTP 服务器同步
-  安装 Chrony (如果尚未安装) 
 检查chrony是否已安装:rpm -q chrony如果未安装,使用 yum 进行安装: sudo yum install chrony -y
-  配置 Chrony 使用阿里云 NTP 服务器 -  备份原始配置文件 (推荐): sudo cp /etc/chrony.conf /etc/chrony.conf.bak
-  编辑配置文件: sudo vi /etc/chrony.conf
-  修改服务器地址: 
 找到以server开头的行,将它们注释掉(在行首加#)或删除。然后添加阿里云的 NTP 服务器地址。iburst选项有助于加快初始同步速度。- 选项 A: 使用阿里云公共 NTP 服务器 (适用于任何网络环境)# 注释掉或删除默认服务器 # 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 server ntp2.aliyun.com iburst server ntp3.aliyun.com iburst server ntp4.aliyun.com iburst server ntp5.aliyun.com iburst server ntp6.aliyun.com iburst server ntp7.aliyun.com iburst
 
- 选项 A: 使用阿里云公共 NTP 服务器 (适用于任何网络环境)
 
-  
-  启动并设置 Chrony 服务开机自启 - 启动 chronyd 服务:sudo systemctl start chronyd
- 设置 chronyd 服务开机自启:sudo systemctl enable chronyd
- 重启 chronyd 服务 (使配置生效):
 如果服务已在运行,修改配置后需重启:sudo systemctl restart chronyd
 
- 启动 chronyd 服务:
-  验证同步状态 
 等待片刻让chrony开始同步,然后检查:- 检查服务状态:
 确保状态为sudo systemctl status chronydactive (running)。
- 查看同步源:
 观察chronyc sources -vS列,应有*(主同步源) 或+(备选源)。Reach值应逐渐增长至377。Last sample显示时间偏差。
- 查看跟踪信息:
 查看chronyc trackingReference ID,Stratum,Last offset等信息。Last offset应逐渐趋近于零。
- 检查系统时间:date
 
- 检查服务状态:
第二部分:手动立即同步时间
通常 chronyd 会在后台平滑地调整时间(slewing)。但如果初始时间偏差较大(例如几秒钟),或者你希望立即将时间校准,可以手动触发一次时间步进(stepping)。
-  方法一:使用 chronyc makestep(推荐)
 这是与正在运行的chronyd服务交互的标准方法。- 确保 chronyd正在运行:sudo systemctl status chronyd
- 执行命令强制同步:
 此命令会指示sudo chronyc makestepchronyd立即将系统时间调整到它认为正确的最新时间。
- 再次验证时间:date chronyc trackingLast offset应非常接近零。
 - 注意: 时间步进会导致系统时间瞬间跳变,可能影响对时间跳变敏感的应用。但对于几秒的调整通常是安全的。
 
- 确保 
-  方法二:使用 ntpdate(不推荐,除非chronyd无法使用)
 ntpdate是一个旧工具,会强制设置时间,但不能与chronyd同时运行。- 停止 chronyd:sudo systemctl stop chronyd
- 使用 ntpdate同步 (选择一个阿里云服务器):sudo ntpdate ntp1.aliyun.com # 或内网地址 (如果在ECS上): # sudo ntpdate ntp.cloud.aliyuncs.com
- 重新启动 chronyd:sudo systemctl start chronyd
 - 注意: 此方法中断了 chrony的连续监控和调整,一般不推荐在已配置chrony的系统上使用。
 
- 停止 
第三部分:防火墙配置 (通常不需要)
- chrony作为客户端,通常只需要允许 出站 UDP 端口 123 的流量。
- CentOS 7 默认的 firewalld防火墙通常允许所有出站连接,因此一般无需额外配置。
- 如果你的防火墙策略非常严格,限制了出站流量,请确保允许 chronyd进程或目标端口为 UDP 123 的出站连接。
