服务器时间漂移,如何开启Linux NTP自动同步
前言
在日常服务器运维中,我们往往默认服务器的时间是精准的。但最近一次偶然的 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
更加轻量、灵活、快速,非常适合现代服务器环境。 - 小问题背后的系统性成长
每一次排查,看似琐碎,但实质上是在打磨自己的问题分析能力和系统运维技能。
如果说运维是一场长跑,那么每一次问题排查,都是在向专业稳步迈进的一小步。
希望这次经历,也能帮到正在成长路上的你。
参考资料
服务器时间漂移,如何开启Linux NTP自动同步的更多相关文章
- linux设置自动同步服务器时间
最近遇到一个问题,由于两台服务器时间的问题,经常导致用户登录由于时间差问题而报错,再三百度,最后整理了一下修改linux定时同步的操作(本方法适用于有自己时间服务器,没有的只限于借鉴) 首先确认,我们 ...
- linux下自动同步internet时间
linux下很简单直接一句即可: ntpdate time.nist.gov ntp后面参数为internet时间服务器url或ip即可. 但是ntpdate命令需要root特权,如果做成自动运行每次 ...
- 利用ntp自动同步时间
实验环境:centos 6.10 1.安装ntp工具 yum install -y ntp 2.便宜/etc/ntp.conf文件,添加远程时间服务器 server ntp1.aliyun.com s ...
- Linux 系统时间查看 及 时区修改(自动同步时间)
1:使用date命令查看时区 [root@db-server ~]# date -R Sun, 11 Jan 2015 07:10:28 -0800 [root@db-server ~]# ...
- 【转载】Linux 系统时间查看 及 时区修改(自动同步时间)
1:使用date命令查看时区 [root@db-server ~]# date -R Sun, 11 Jan 2015 07:10:28 -0800 [root@db-server ~]# ...
- linux ntp时间同步
linux ntp时间同步 一.搭建时间同步服务器1.编译安装ntp serverrpm -qa | grep ntp若没有找到,则说明没有安装ntp包,从光盘上找到ntp包,使用rpm -Uvh n ...
- NTP时钟同步配置
NTP在Linux下有两种时钟同步方式: 直接同步(也称跳跃同步)和平滑同步(也称微调同步). 直接同步 使用ntpdate命令进行同步,直接进行时间变更. 如果服务器上存在一个12点运行的任务,当前 ...
- Linux NTP服务器的搭建及client自动更新时间
Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间 ...
- 搭建NTP时间服务器~使用NTP同步时间~构建主机间时间自动同步关系
NTP是一个时间服务器,同时它也是一个时间客户端. 我们可以使用它构建主机与主机之间的时间自动同步环境,保证所有服务器时间一致性. 常用的公共NTP时间服务器有: cn.ntp.org.cn 中国 n ...
- 【转载】linux系统时间自动同步:ntp
NTP基本介绍 NTP(Network TimeProtocol,网络时间协议),使用来使本地机器与服务端机器时间保持同步的一种协议.如果我们只有一台机器那么只需要安装NTP客户端ntpdate这个包 ...
随机推荐
- Docker部署Go+Mysql+Redis
两种方式Docker和Docker Compose部署web项目,相对于Go语言来说,不管是使用docker部署还是直接服务器部署都相当方便,比python要简单很多. 1.Dockerfile结构解 ...
- 解决Git拉取出现“bad config line 1 in file C:\Users\quber/.gitconfig”的错误
1.问题描述 我们在拉取Git项目的时候,突然出现如下图所示的错误提示: 2.解决办法 定位到.gitconfig文件,然后将其删除掉: 然后在项目文件夹中点击鼠标右键,选择Git Bash Here ...
- 鸿蒙页面开发 - 扩展组件样式 @Extend
这篇文章介绍一个装饰器 @Extend,它的主要作用是:用于扩展原生组件的样式 比如我们扩展 Text 组件的样式,为其添加一个默认的 fontSize 和 fontColor,如下: @Entry ...
- StarUML画时序图
一.打开软件,新建时序图 二.画图 2.1 新建用户图标 2.2 新建几个生命线Lifeline 2.3 建立连接关系 2.4 图例
- 同步一下在notion上写的内容
之前在notion上写了一些内容,但因为notion上的编辑器和博客园的不太一样,所以不好直接搬运过来,这里同步一下链接: 之前看MIT线性代数网课做的笔记:重温线性代数 算法课笔记之一:分而治之 算 ...
- 什么是OpenStack?
OpenStack是一个云平台管理的项目,它不是一个软件,它是由几个主要的组件组合起来,为公有云.私有云和混合云的建设与管理提供软件的开源项目.现在已经有来自100多个国家的数万名个人和200多家企业 ...
- Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
#div_digg { float: right; font-size: 12px; margin: 10px; text-align: center; width: 120px; position: ...
- job提交后,inp文件的处理过程
用户提交job后,abaqus的inp文件处理过程 1. 对inp文件预处理 打开任务管理器可以看到pre.exe的进程 预处理中的error .warning 都会在.DAT文件中 dat文件出现e ...
- ppt 文字 +图 样式 设计
1. 设计前 设计后 图 +文字排版 图多 字少
- vscode如何退出/切换 github 账号
退出/切换 github 账号 左下角点击头像按钮,选择注销,然后再重新登录