时间同步(RHEL/CentOS 7.9)
1. 文档信息
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
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 时间不同步故障树
5.2 常见问题及解决方案
|
|
|
|
|---|---|---|
System clock synchronized: no |
2. 无NTP服务器配置 3. 网络不通 |
systemctl start chronyd2. 编辑 /etc/chrony.conf3. 检查网络/DNS |
chronyc sources显示^? |
|
2. 检查防火墙 3. 更换NTP服务器 |
|
|
|
|
|
|
|
2. 查看日志 journalctl -u chronyd |
|
|
|
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 性能指标
|
|
|
|
|---|---|---|
|
|
|
chronyc tracking |
|
|
|
chronyc tracking |
|
|
|
chronyc sources |
|
|
|
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 |
|
chronyc sources -v |
chronyc tracking |
|
chronyc tracking |
chronyc activity |
|
chronyc activity |
chronyc ntpdata |
|
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服务器域名 -
[ ] 日志无错误信息
