服务器时间漂移,如何开启Linux NTP自动同步
本文记录了作者在服务器运维中发现时间漂移问题,并通过启用NTP同步、使用Chrony等工具进行排查与解决的全过程。文章强调了NTP同步的重要性,介绍了排查思路和高效工具的使用,以及如何同步硬件时钟(RTC),为服务器时间精准同步提供了解决方案。
目录12 个章节
前言
在日常服务器运维中,我们往往默认服务器的时间是精准的。但最近一次偶然的 date 查询,让我发现——服务器时间竟然悄悄地漂移了……
本文记录了整个排查与解决的过程,希望能帮到遇到类似问题的朋友,也为自己留下一份系统化的成长笔记。
发现问题
我最近在开发 StarBlog 的访问分析功能,但发现记录下来的日志似乎时间不太对
于是我登录到服务器,输入 date 命令时,发现当前时间与实际北京时间存在一定的误差。
[deali@server ~]# date
Sun Apr 27 14:40:53 CST 2025
虽然时间差距不大,但对于需要精准时间记录的服务器来说,哪怕几分钟的误差,也可能导致日志时间错乱、计划任务异常、SSL验证失败等一系列问题。
初步排查
为了进一步确认问题,在大模型爷爷的指导下,我使用了 timedatectl status 命令进行排查:
[deali@server ~]# timedatectl status
Local time: Sun 2025-04-27 14:40:53 CST
Universal time: Sun 2025-04-27 06:40:53 UTC
RTC time: Sun 2025-04-27 06:50:29
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
可以看到,虽然时区设置正确(Asia/Shanghai),但 NTP未启用(NTP enabled: no),也未同步(NTP synchronized: no)。
这意味着服务器时间完全靠系统自身运行,长时间下来必然会发生漂移。
🔎 小知识:NTP(Network Time Protocol)是一种用于网络设备间同步时间的协议,保持系统时间与世界标准时间同步,至关重要。
尝试启用NTP同步
于是,我尝试通过 timedatectl 开启NTP同步:
sudo timedatectl set-ntp true
再次查看状态:
[deali@server ~]# timedatectl status
NTP enabled: yes
NTP synchronized: no
虽然成功启用了NTP(enabled: yes),但同步状态依然是 no。
一时间,我仿佛看见了希望的曙光,却又差点被现实的雨浇灭。🌧️
这说明服务器虽然打开了NTP同步开关,但并未成功同步。可能是:
- 服务器缺少对应的NTP客户端服务;
- 网络无法访问默认的时间服务器;
- 需要更长时间等待第一次同步(但这并不可靠)。
使用 Chrony
为了快速且稳定地完成时间同步,我选择安装轻量且高效的 NTP 客户端 —— chrony。
安装
sudo yum install chrony -y
sudo systemctl enable chronyd
sudo systemctl start chronyd
立即同步时间
sudo chronyc makestep
执行后,系统时间瞬间精准对齐,无需等待!
配置国内NTP源
编辑 /etc/chrony.conf,将默认服务器替换为国内源
server ntp.aliyun.com iburst
server ntp1.aliyun.com iburst
server cn.pool.ntp.org iburst
保存后,重启chronyd:
sudo systemctl restart chronyd
验证同步状态
chronyc tracking
输出中可以看到参考时间源(Reference ID)、同步状态(stratum)等详细信息。
同时,timedatectl status 已显示:
NTP enabled: yes
NTP synchronized: yes
至此,系统时间同步问题基本解决。
同步硬件时钟(RTC)
虽然系统时间已经同步,但检查后发现硬件时钟(RTC)仍与系统时间不一致。
如果不及时同步,未来服务器重启时可能又会出现时间偏差。
可以使用命令,将系统时间同步到RTC:
sudo hwclock --systohc
同步完成后,验证:
hwclock --show
确认硬件时钟与系统时间一致,真正做到开机即精准。
小结
通过这次排查与解决,我收获了以下几点经验:
- NTP同步的重要性 系统时间漂移会带来一连串连锁反应,必须确保服务器时间精准同步。
- 排查思路的重要性
从表面问题出发,使用合适的工具(如
timedatectl)循序渐进排查,不盲目操作。 - 善用高效工具(Chrony)
相比传统的
ntpd,chrony更加轻量、灵活、快速,非常适合现代服务器环境。 - 小问题背后的系统性成长 每一次排查,看似琐碎,但实质上是在打磨自己的问题分析能力和系统运维技能。
🚀 如果说运维是一场长跑,那么每一次问题排查,都是在向专业稳步迈进的一小步。
希望这次经历,也能帮到正在成长路上的你。
参考资料
_EOF_
服务器时间漂移,如何开启Linux NTP自动同步
- 本文作者:
- 程序设计实验室
- 版权声明:
- 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
相关文章
Ubuntu-18-04-开启托盘图标点击最小化
前言 Ubuntu的托盘挺好看的,美中不足的就是点击一个打开的应用图标不能像Windows那样最小化。 操作 gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize' 截图
2025-10-27 · 系统配置 · 约 1 分钟
linux配置sendmail发邮件服务
前言 因为开发需要,搞了个wiki系统,并且用到了邮件订阅,所以研究了一番发送邮件的方法。 安装 没什么好说的,先安装必要组件。 apt install sendmail-bin apt install sendmail apt install sendmail-cf #配置工具 配置sendmail sendmail默认是本机用户发送给本机,所以需要修改可以发送到整个Internet: 修改se
2025-10-27 · 系统配置 · 约 1 分钟
Linux设置系统邮件转发到指定邮箱
前言 在Linux的操作中,有的时候每敲一下回车,就出来You have new mail in /var/spool/mail/root的提示,究竟是为什么呢? Linux 系统经常会自动发出一些邮件来提醒用户系统中出了哪些问题(收件箱位置:/var/mail/)。可是这些邮件都是发送给 root 用户的。出于系统安全考虑,通常不建议大家直接使用 root 帐户进行日常操作。所以要想点办法来让系
2025-10-27 · 系统配置 · 约 1 分钟
Ubuntu-16-04-升级Python版本到3-6
前言 没办法,unity桌面实在是太好用了,Ubuntu18.04上安装了unity桌面毕竟不够完美,所以我昨天就降级到Ubuntu16.04,享受一波原生Unity桌面的快感。 一切都OK,不过Python版本有点低,所以要用万能PPA源升级一下。 操作 安装Python3.6 sudo add-apt-repository ppa:jonathonf/python-3.6 sudo apt-g
2025-10-27 · 系统配置 · 约 1 分钟
讨论
共 0 条加载评论中…