
Chrony 不是某个标准缩写一般就作为软件套件名称使用写作chrony。它的作用可以理解为chrony 是 Linux 上用于时间同步的一套 NTP 实现。官方对它的定义是chrony 是 Network Time Protocol也就是NTP 网络时间协议的一种实现可以用来同步系统时间也可以作为 NTP 服务端给其他机器提供时间服务。chrony是网络时间协议 (NTP) 的一种多功能实现。https://chrony-project.org/?utm_source一、背景说明生产环境中服务器时间不准确会影响日志排查、备份任务、监控告警、数据库审计等工作。本次操作用于将 Linux 服务器统一同步到公司内网 NTP 时间服务器并在同步完成后写入硬件时钟 RTC。说明本文中的 IP 地址均为示例地址实际操作时请替换为现场真实地址。示例环境目标服务器IP192.168.100.10 内网NTP服务器IP192.168.100.1二、检查当前系统时间登录目标服务器后先查看当前系统时间date示例2026年 06月 23日 星期二 07:44:23 CST如果发现服务器时间与实际时间存在明显偏差例如快了或慢了几分钟需要继续检查时间同步配置。三、检查 NTP 服务器网络连通性先确认目标服务器能否访问内网 NTP 服务器ping -c 4 192.168.100.1正常结果类似64 bytes from 192.168.100.1: icmp_seq1 ttl63 time0.100 ms 64 bytes from 192.168.100.1: icmp_seq2 ttl63 time0.095 ms 64 bytes from 192.168.100.1: icmp_seq3 ttl63 time0.102 ms 64 bytes from 192.168.100.1: icmp_seq4 ttl63 time0.098 ms如果出现Destination Host Unreachable 100% packet loss说明目标服务器到 NTP 服务器网络不可达需要先检查网关、路由、防火墙、VLAN 或 NTP 服务器状态。需要注意检查项协议/端口说明ping连通性测试ICMP 协议不使用 TCP/UDP 端口NTP 时间同步UDP 123 端口Chrony/NTP 实际同步时间使用也就是说ping只是基础网络连通性检查不代表 NTP 服务一定正常。如果网络策略较严格需要确认目标服务器到 NTP 服务器的UDP 123 端口已放通。四、检查时间同步服务查看chronyd服务状态systemctl status chronyd --no-pager正常应看到Active: active (running)如果chronyd未启动可以执行systemctl enable chronyd systemctl start chronyd五、查看当前 Chrony 配置查看当前配置的时间源grep -nE ^\s*(server|pool) /etc/chrony.conf可能看到类似默认公网 NTP 源3:server 0.centos.pool.ntp.org iburst 4:server 1.centos.pool.ntp.org iburst 5:server 2.centos.pool.ntp.org iburst 6:server 3.centos.pool.ntp.org iburst如果公司要求统一使用内网 NTP建议将时间源统一调整为公司内网 NTP 服务器。六、备份配置文件修改前先备份cp -a /etc/chrony.conf /etc/chrony.conf.bak.$(date %F_%H%M%S)确认备份文件ls -lh /etc/chrony.conf.bak*七、配置内网 NTP 服务器编辑配置文件vim /etc/chrony.conf将原有公网 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 192.168.100.1 iburst prefer参数说明参数说明server指定时间同步服务器iburst服务启动后快速同步prefer优先使用该时间源也可以使用命令方式添加grep -q ^server 192.168.100.1 /etc/chrony.conf || sed -i 3iserver 192.168.100.1 iburst prefer /etc/chrony.conf如需批量注释默认公网源可执行sed -i -E s/^(server[[:space:]][0-3]\.centos\.pool\.ntp\.org[[:space:]]iburst)/#\1/ /etc/chrony.conf八、检查配置结果执行grep -nE ^\s*(server|pool)|^#server /etc/chrony.conf正常结果示例3:server 192.168.100.1 iburst prefer 4:#server 0.centos.pool.ntp.org iburst 5:#server 1.centos.pool.ntp.org iburst 6:#server 2.centos.pool.ntp.org iburst 7:#server 3.centos.pool.ntp.org iburst确认只有内网 NTP 服务器处于启用状态。九、重启 Chrony 服务执行systemctl restart chronyd查看服务状态systemctl status chronyd --no-pager确认状态为Active: active (running)十、验证是否同步成功查看当前时间同步源chronyc sources -n -v正常结果应类似MS Name/IP address Stratum Poll Reach LastRx Last sample ^* 192.168.100.1 3 6 37 8 1083ns[ 163us] /- 143ms重点看第一列标识含义^*当前正在使用的时间源^?配置了但不可达^x时间源异常如果看到^* 192.168.100.1说明当前服务器已经成功使用内网 NTP 服务器同步时间。十一、查看整体同步状态执行chronyc tracking正常结果示例Reference ID : C0A86401 (192.168.100.1) Stratum : 4 System time : 0.000034372 seconds fast of NTP time Last offset : 0.000162035 seconds Leap status : Normal如果System time只差毫秒或微秒级说明时间已经基本同步。再执行timedatectl重点确认NTP enabled: yes NTP synchronized: yes十二、时间偏差较大时手动校准如果服务器时间快了或慢了几十秒、几分钟在确认 NTP 源正常后可以执行chronyc makestep然后再次检查date chronyc tracking timedatectl如果日志中出现类似内容System clock wrong by -129 seconds, adjustment started System clock was stepped by -129 seconds说明系统时间已经被校准。十三、写入硬件时钟 RTC系统时间校准完成后建议将当前正确的系统时间写入硬件时钟hwclock --systohc查看硬件时钟hwclock --show这样可以避免服务器重启后又从错误的硬件时间起步。系统时间与硬件时钟区别如下类型查看命令作用系统时间dateLinux 当前运行时使用的时间NTP 时间chronyc tracking网络时间源提供的标准时间硬件时钟 RTChwclock --show服务器关机或重启后保留的底层时间十四、最终验证最后统一执行date chronyc sources -n -v chronyc tracking timedatectl hwclock --show确认以下结果^* 192.168.100.1 NTP synchronized: yes System time 偏差为毫秒或微秒级如果以上结果正常说明服务器时间同步配置完成。十五、操作总结本次时间同步处理流程如下1. 查看当前系统时间 2. ping 测试内网 NTP 服务器基础连通性 3. 确认 NTP 使用 UDP 123 端口 4. 检查 chronyd 服务状态 5. 备份 /etc/chrony.conf 6. 配置内网 NTP 服务器 7. 注释原公网 NTP 源 8. 重启 chronyd 服务 9. 使用 chronyc sources 验证当前时间源 10. 使用 chronyc tracking 查看时间偏差 11. 必要时执行 chronyc makestep 手动校准 12. 使用 hwclock --systohc 写入硬件时钟 RTC完成以上操作后服务器时间会统一同步到公司内网 NTP 服务器日志、备份任务、监控告警等时间线也会更加准确。