一、Chrony 是什么?
chrony
是一个开源的网络时间同步工具,主要由两个组件组成:
chronyd
:后台服务进程,负责与时间服务器交互,同步系统时钟。chronyc
:命令行工具,用于手动查看或修改时间同步状态。
相比 ntpd
,Chrony 启动快、占用资源少、在网络不稳定或断网环境下也能较好地校正本地时间,适合虚拟机、容器、笔记本等多种场景。
二、安装 Chrony
在大多数 Linux 发行版中,Chrony 都可以通过包管理器直接安装。
CentOS / RHEL
sudo yum install chrony -y
Ubuntu / Debian
sudo apt update
sudo apt install chrony -y
三、配置 Chrony
Chrony 的主配置文件是 /etc/chrony.conf
,我们可以根据实际情况添加或修改时间服务器。
时间服务器节点:
vim /etc/chrony.conf
# 注销以下行(避免重复时间源):
# 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
# 添加外部时间服务器:
server ntp.aliyun.com iburst
# 自身也作为时间服务器(本地硬件时钟参考):
local stratum 10
# 允许指定的网络(61段)访问:
allow 192.168.61.0/24
# 服务重启
systemctl restart chronyd
# 设置开机自启
sudo systemctl enable chronyd
# 查看状态
sudo systemctl status chronyd
# 查看连接状态
chronyc sources
提示:如果
chronyc sources
的输出中左侧出现^*
,说明同步成功。如果是^?
,请检查连通性或尝试其他时间服务器。
其他连接该时间服务器的节点:
vim /etc/chrony.conf
# 注销以下行(避免重复时间源):
# 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
# 添加 Controller 节点为时间源:
server controller iburst
# controller 改为上方实际时间服务器节点IP地址或域名
# 服务重启
systemctl restart chronyd
# 设置开机自启
sudo systemctl enable chronyd
# 查看状态
sudo systemctl status chronyd
# 查看连接状态
chronyc sources
其他配置参考(可选):
# 保存调校数据文件
driftfile /var/lib/chrony/drift
# 记录日志
logdir /var/log/chrony
iburst
参数:加快启动时的同步速度,非常适合首次连接。
四、Chrony 与 ntpd 的区别
功能对比 | Chrony | ntpd |
---|---|---|
启动速度 | 快 | 慢 |
对网络环境依赖 | 低 | 高 |
精度 | 高 | 一般 |
对虚拟化环境支持 | 好 | 一般 |
易用性 | 较好 | 一般 |
ntp
同步命令比较简单:ntpdate 时间服务器地址
就一句命令就可以实现时间同步,但要实现
ntpdate
自动同步时间还得结合定时任务crontab
。
总结
Chrony 是现代 Linux 系统中推荐的时间同步工具,具备轻量、精度高、适应性强等优点。通过简单的配置和管理命令,就可以保障系统时间的准确性,对于运维工作来说是非常实用的基础工具之一。