在linux服务器运维中,时间偏差可能导致日志时间错乱、分布式服务同步失败、证书验证异常等问题,及时校对服务器时间是基础运维操作。常用的校对时间命令根据工具不同分为几类,适配不同的系统环境和需求。

使用ntpdate命令手动校对时间
ntpdate是传统的时间同步工具,适合临时手动校对时间,依赖NTP(网络时间协议)服务器获取准确时间。大部分linux发行版默认未安装该工具,需要先安装。
安装ntpdate
不同发行版的安装命令如下:
- CentOS/RHEL系统:
yum install -y ntpdate - Ubuntu/Debian系统:
apt-get install -y ntpdate
执行校对命令
安装完成后,可以直接指定NTP服务器地址进行时间同步,示例如下:
# 使用阿里云NTP服务器校对时间 ntpdate ntp.aliyun.com # 校对完成后查看当前时间 date
注意:如果服务器运行了ntpd或chronyd时间服务,需要先停止服务再使用ntpdate,否则会出现端口占用报错。
使用chrony服务自动校对时间
chrony是目前主流linux发行版默认的时间同步服务,比传统ntpd同步速度更快,适配不稳定网络环境,支持自动校准和手动同步两种模式。
检查chrony服务状态
首先确认chrony服务是否运行:
# 查看chronyd服务状态 systemctl status chronyd # 若未启动则启动服务并设置开机自启 systemctl start chronyd systemctl enable chronyd
手动触发时间同步
chrony正常运行时,可以通过以下命令手动触发时间同步:
# 立即同步时间 chronyc -a makestep # 查看时间同步源状态 chronyc sources
配置NTP服务器
chrony的配置文件为/etc/chrony.conf,可以修改其中的pool或server配置指定NTP服务器,示例如下:
# 编辑配置文件 vi /etc/chrony.conf # 添加以下内容,替换默认的时间服务器 server ntp.aliyun.com iburst server ntp.tencent.com iburst # 保存后重启chrony服务生效 systemctl restart chronyd
使用timedatectl命令管理时间
timedatectl是systemd系统自带的时间管理工具,无需额外安装,支持查看时间状态、设置时区、开启自动时间同步等功能。
查看当前时间状态
# 查看时间、时区、同步状态等信息 timedatectl status
开启自动时间同步
如果系统使用systemd-timesyncd服务(部分轻量发行版默认使用),可以通过timedatectl开启自动同步:
# 开启自动时间同步 timedatectl set-ntp true # 关闭自动时间同步 timedatectl set-ntp false
手动设置时间(不推荐,优先同步)
如果无法连接NTP服务器,可以临时手动设置时间,格式为月日时分年.秒:
# 设置时间为2024年5月20日12点30分00秒 timedatectl set-time "2024-05-20 12:30:00"
不同命令的适用场景对比
| 命令/工具 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| ntpdate | 临时手动校对、旧系统兼容 | 操作简单,执行速度快 | 不支持自动同步,已被部分新系统弃用 |
| chrony | 长期运行的生产服务器 | 自动同步,适配弱网,精度高 | 需要配置服务,初次使用学习成本略高 |
| timedatectl | systemd系统快速管理时间 | 系统自带,无需额外安装,功能全面 | 依赖systemd环境,部分旧系统不支持 |
注意事项
- 校对时间前建议先确认服务器时区是否正确,错误时区会导致时间显示偏差,可以通过
timedatectl set-timezone Asia/Shanghai设置为上海时区。 - 生产环境优先使用自动同步服务(chrony或systemd-timesyncd),避免手动校对导致时间跳变影响运行中的服务。
- 如果服务器时间偏差超过1000秒,部分同步工具会拒绝同步,需要先手动调整时间到较小偏差范围再开启自动同步。
linuxntpdatechronytimedatectl修改时间:2026-06-15 01:33:17