多台服务器协同工作时,时间一致是基础要求,时间偏差过大会引发各类业务异常。Chrony是Linux系统下常用的时间同步服务,比传统NTP服务同步速度更快、精度更高,适配多数Linux发行版,结合宝塔面板可以快速完成多台服务器的时间同步配置。

Chrony服务基础说明
Chrony包含两个核心程序:chronyd是后台守护进程,负责调整系统时间与时间服务器同步;chronyc是命令行工具,用于监控同步状态、调整配置参数。在多台服务器场景中,我们可以指定一台服务器作为内部时间服务端,其余服务器作为客户端,都向这台服务端同步时间,也可以直接让所有服务器向公共时间服务器同步。
在宝塔面板中安装Chrony
大多数Linux发行版默认软件源都包含Chrony,我们可以通过宝塔面板自带的终端功能执行安装命令。
CentOS系统安装
# 安装chrony yum install chrony -y
Ubuntu/Debian系统安装
# 安装chrony apt-get install chrony -y
配置Chrony服务端(可选)
如果希望内部服务器优先同步内部时间,需要先配置一台服务端,这里以IP为192.168.0.10的服务器为例。
首先修改Chrony的主配置文件/etc/chrony.conf,执行以下命令编辑:
# 编辑配置文件 vi /etc/chrony.conf
修改配置文件内容如下:
# 公共时间服务器,作为上游时间源 server ntp.aliyun.com iburst server cn.pool.ntp.org iburst # 允许内网段访问,这里允许192.168.0.0/24网段的客户端同步 allow 192.168.0.0/24 # 即使上游时间不可用,也向客户端提供本地时间 local stratum 10 # 记录时间偏移的 drift 文件 driftfile /var/lib/chrony/drift # 允许调整系统时间的阈值 makestep 1.0 3 # 日志相关配置 logdir /var/log/chrony log tracking
配置完成后,启动并设置开机自启Chrony服务:
# 启动服务 systemctl start chronyd # 设置开机自启 systemctl enable chronyd # 查看服务状态 systemctl status chronyd
然后在宝塔面板中,进入安全页面,添加放行端口123,协议选择UDP,备注填写Chrony服务端口,保存即可。
配置Chrony客户端
其余需要同步时间的服务器作为客户端,同样先完成Chrony安装,再修改配置文件/etc/chrony.conf。
如果已经配置了内部服务端,客户端配置如下:
# 指向内部时间服务端 server 192.168.0.10 iburst # drift文件配置 driftfile /var/lib/chrony/drift makestep 1.0 3 logdir /var/log/chrony
如果没有内部服务端,可以直接指向公共时间服务器:
# 公共时间服务器 server ntp.aliyun.com iburst server cn.pool.ntp.org iburst driftfile /var/lib/chrony/drift makestep 1.0 3 logdir /var/log/chrony
配置完成后同样启动并设置开机自启服务:
systemctl start chronyd systemctl enable chronyd
验证时间同步状态
使用chronyc工具验证同步是否正常,执行以下命令:
# 查看时间源状态 chronyc sources -v
输出结果中,如果时间服务器前面的*号,说明当前正在与该服务器同步,时间偏差在合理范围内。
也可以查看系统时间确认同步效果:
# 查看当前系统时间 date
多台服务器执行该命令,时间应保持一致,偏差不超过1秒即为配置成功。
常见问题排查
- 同步失败首先检查防火墙是否放行UDP 123端口,宝塔面板和服务器系统防火墙都需要确认。
- 如果服务端配置后客户端无法连接,检查配置文件中allow网段是否正确,是否包含客户端IP。
- 时间偏差过大时,可以执行
chronyc makestep命令手动触发一次时间调整。