Skip to main content

时间同步(RHEL/CentOS 7.9)

1. 文档信息

项目
内容
适用系统
RHEL/CentOS 7.9
服务名称
chronyd
端口
UDP 123
配置文件
/etc/chrony.conf

2. 时间同步检查流程

2.1 快速状态检查

# 1. 检查系统时间同步状态
timedatectl

# 期望输出:
# System clock synchronized: yes
# NTP service: active

# 2. 检查chrony服务状态
systemctl status chronyd

# 期望输出:
# Active: active (running)

2.2 详细NTP源检查

# 1. 查看NTP服务器源状态
chronyc sources -v

# 状态符号说明:
# ^* = 当前最佳源(系统正在使用)
# ^+ = 良好备用源
# ^- = 被排除的源
# ^? = 源不可达或不可用
# ^x = 被认为错误的源
# ^~ = 时间波动太大

# 2. 查看时间同步详情
chronyc tracking

# 关键指标:
# - Stratum: 层级(1-15,越小越准确)
# - System time: 与NTP时间的偏差
# - Leap status: Normal(正常)

2.3 网络连通性检查

# 测试内部NTP服务器连通性
ping -c 3 10.113.128.1

# 测试外部NTP服务器连通性
ping -c 3 ntp.aliyun.com

3. chrony服务管理

3.1 服务启停

# 启动chrony服务
systemctl start chronyd

# 停止chrony服务
systemctl stop chronyd

# 重启chrony服务
systemctl restart chronyd

# 重新加载配置(不重启服务)
systemctl reload chronyd

# 设置开机自启
systemctl enable chronyd

# 删除开机自启
systemctl disable chronyd

3.2 服务状态检查

# 查看服务状态
systemctl status chronyd

# 查看服务日志
journalctl -u chronyd -f
journalctl -u chronyd --no-pager | tail -50

4. chrony配置管理

4.1 标准配置文件(/etc/chrony.conf)

# 内部NTP服务器(主)
server 10.113.128.1 iburst

# 外部公共NTP服务器(备用)
server ntp.aliyun.com iburst
server ntp1.tencent.com iburst
server cn.pool.ntp.org iburst
参数说明:
  • iburst:加速初始同步
  • minpoll 6:最短轮询间隔64秒(2⁶)
  • maxpoll 10:最长轮询间隔1024秒(2¹⁰)
  • prefer:标记为首选服务器
  • noselect:监控但不使用

4.2 配置文件修改流程

# 1. 备份原配置
cp /etc/chrony.conf /etc/chrony.conf.bak_$(date +%Y%m%d)

# 2. 编辑配置文件
vi /etc/chrony.conf

# 3. 检查配置文件语法
chronyc -c reload sources

# 4. 重新加载或重启服务
systemctl restart chronyd
# 或
systemctl reload chronyd

4.3 紧急手动时间设置

# 查看当前时间
date

# 手动设置时间(格式:YYYY-MM-DD HH:MM:SS)
timedatectl set-time "2025-12-06 10:30:00"

5. 故障排查流程

5.1 时间不同步故障树

image.png

5.2 常见问题及解决方案

问题现象
可能原因
解决方案
System clock synchronized: no
1. chronyd未运行
2. 无NTP服务器配置
3. 网络不通
1. systemctl start chronyd
2. 编辑/etc/chrony.conf
3. 检查网络/DNS
chronyc sources显示^?
NTP服务器不可达
1. 检查网络连通性
2. 检查防火墙
3. 更换NTP服务器
时间偏差很大
初始时间设置错误
1. 手动设置近似时间
服务启动失败
配置文件语法错误
1. 检查配置文件
2. 查看日志journalctl -u chronyd
层级(Stratum)过高
时间源质量差
1. 添加更多NTP服务器
2. 设置prefer标记优选服务器

5.3 防火墙配置

# 检查防火墙状态
systemctl status firewalld
firewall-cmd --state

# 放行NTP服务
firewall-cmd --add-service=ntp --permanent
firewall-cmd --reload

# 验证规则
firewall-cmd --list-services | grep ntp

5.4 DNS配置检查

# 检查DNS解析
nslookup ntp.aliyun.com
nslookup 10.113.128.1

# 临时设置DNS
echo "nameserver 114.114.114.114" >> /etc/resolv.conf
echo "nameserver 8.8.8.8" >> /etc/resolv.conf

6. 监控与维护

6.1 日常监控命令

# 监控时间同步状态
watch -n 10 'chronyc sources -v; echo "---"; chronyc tracking'

# 查看时间偏差趋势
chronyc sourcestats

6.2 日志检查

# 实时查看日志
journalctl -u chronyd -f

# 查看错误日志
journalctl -u chronyd -p err

# 查看最近100行日志
journalctl -u chronyd -n 100

6.3 性能指标

指标
正常范围
检查命令
时间偏差
< 100ms
chronyc tracking
层级(Stratum)
2-5
chronyc tracking
服务器可达性
377(八进制)
chronyc sources
轮询间隔
64-1024秒
chronyc sources

7. 应急恢复流程

7.1 chrony完全故障恢复

# 1. 停止服务
systemctl stop chronyd

# 2. 备份并重置配置
cp /etc/chrony.conf /etc/chrony.conf.bak
cat > /etc/chrony.conf << EOF
server 10.113.128.1 iburst
server ntp.aliyun.com iburst
server ntp1.tencent.com iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
keyfile /etc/chrony.keys
leapsectz right/UTC
logdir /var/log/chrony
local stratum 10
EOF

# 3. 清除状态文件
rm -f /var/lib/chrony/*

# 4. 启动服务
systemctl start chronyd

# 5. 强制同步
chronyc -a makestep

7.2 时间严重偏差恢复

# 1. 停止chrony
systemctl stop chronyd

# 2. 使用ntpdate手动同步
ntpdate -u 10.113.128.1

# 3. 启动chrony
systemctl start chronyd

# 4. 检查状态
chronyc sources -v

8. 附录

8.1 常用命令速查表

命令
功能
示例
timedatectl
查看时间状态
timedatectl
chronyc sources
查看NTP源
chronyc sources -v
chronyc tracking
查看同步详情
chronyc tracking
chronyc activity
查看活动状态
chronyc activity
chronyc ntpdata
查看NTP数据
chronyc ntpdata
systemctl status chronyd
服务状态
systemctl status chronyd
journalctl -u chronyd
查看日志
journalctl -u chronyd -f

8.2 国内推荐NTP服务器

# 阿里云
ntp.aliyun.com
ntp1.aliyun.com
ntp2.aliyun.com

# 腾讯云
ntp1.tencent.com
ntp2.tencent.com
time1.cloud.tencent.com

# 国内公共NTP池
cn.pool.ntp.org

# 教育网
ntp.tuna.tsinghua.edu.cn
s1a.time.edu.cn

8.3 配置验证清单

  • [ ] chronyd服务状态为active(running)
  • [ ] timedatectl显示System clock synchronized: yes
  • [ ] chronyc sources至少有一个^*源
  • [ ] chronyc tracking显示Leap status: Normal
  • [ ] 时间偏差小于100ms
  • [ ] 防火墙已放行UDP 123端口
  • [ ] DNS可解析NTP服务器域名
  • [ ] 日志无错误信息