Chrony是现代Linux推荐的NTP实现,需先安装(依发行版用dnf/yum/apt),再配置为客户端同步时间(修改/etc/chrony.conf添加server如ntp.aliyun.com iburst)、验证状态(chronyc sources/tracking),或配置为服务端(添加allow网段、开放UDP123端口),最后客户端指向服务端IP同步。

如果您在Linux系统中发现系统时间与标准时间存在偏差,可能导致日志记录错误、证书验证失败或分布式服务通信异常。Chrony是现代Linux发行版推荐的NTP客户端与服务器实现,具备更快的同步速度、更好的网络适应性及离线环境下的时间保持能力。以下是Chrony的安装与时间服务器配置步骤:
一、安装Chrony服务
Chrony未预装于部分基础系统镜像中,需通过包管理器显式安装。不同发行版使用对应命令完成安装,安装后服务默认不自动启用。
1、在RHEL/CentOS 8+或Fedora系统中执行:sudo dnf install chrony -y
2、在RHEL/CentOS 7或较旧版本中执行:sudo yum install chrony -y
3、在Debian或Ubuntu系统中执行:sudo apt update && sudo apt install chrony -y
二、配置Chrony作为NTP客户端同步时间
此模式下Chrony从上游NTP服务器获取时间并校准本地系统时钟。配置文件定义了时间源、同步策略及安全限制。
1、编辑主配置文件:sudo nano /etc/chrony.conf
2、注释掉默认pool行(如存在),添加国内可用NTP服务器,例如:server ntp.aliyun.com iburst
3、可选:添加多台服务器提高冗余,每行一个,均以server开头并带iburst参数
4、保存退出后重启服务:sudo systemctl restart chronyd
5、启用开机自启:sudo systemctl enable chronyd
三、验证客户端同步状态
Chrony提供专用命令行工具chronyc,用于实时查询同步状态、延迟、偏移等关键指标,确保时间已成功对齐。
1、检查服务运行状态:sudo systemctl status chronyd
2、查看当前NTP源列表及状态:sudo chronyc sources -v
3、查看同步统计信息(包括系统时钟偏移、估计误差):sudo chronyc tracking
4、强制立即触发一次时间更新:sudo chronyc makestep
四、配置Chrony为本地NTP时间服务器
当内网中有多台设备需统一时间基准时,可将一台Chrony主机设为服务端,向局域网其他客户端广播时间。该模式需开放UDP 123端口并配置允许的子网访问。
1、编辑配置文件:sudo nano /etc/chrony.conf
2、添加允许客户端访问的网段,例如允许192.168.1.0/24内所有主机:allow 192.168.1.0/24
3、确认配置中包含bindcmdaddress 127.0.0.1和bindaddress 0.0.0.0(或指定监听IP)
4、开放防火墙UDP 123端口:sudo firewall-cmd --add-service=ntp --permanent && sudo firewall-cmd --reload
5、重启服务使配置生效:sudo systemctl restart chronyd
五、客户端连接自建Chrony时间服务器
局域网内其他Linux主机可通过指向本机IP的方式,将其作为唯一NTP源进行同步,避免对外部网络依赖,提升内网时间一致性。
1、在客户端的/etc/chrony.conf中,删除原有server行,添加:server 192.168.1.100 iburst(替换为服务端实际IP)
2、重启客户端Chrony服务:sudo systemctl restart chronyd
3、检查是否已从该服务器同步:sudo chronyc sources -v | grep ^* (星号标记当前选定源)
4、确认跟踪状态中Reference ID显示为服务端IP:sudo chronyc tracking










