文章目录

  • 前言
  • 一、NTP (Network Time Protocol) & ntpd
    • 1.原理
    • 2. 安装与配置(ntp 包)
    • 3.NTPd 优缺点对比
  • 二、Chrony
    • 1.原理
    • 2.安装与配置 (`chrony` 包)
    • 3. 优点
    • 4. 缺点
  • 三、systemd-timesyncd
    • 1.原理
    • 2.安装与配置 (systemd 自带)
    • 3. 优点
    • 4. 缺点
  • 四、手动同步工具
    • 1.ntpdate`(已废弃,不推荐)
    • 2. date 命令
  • 五、关键操作与注意事项
    • 1. 防火墙
    • 2. 硬件时钟 (RTC) 同步
    • 3. 时区设置
    • 4. 服务选择建议
  • 总结

前言

在 CentOS 7 中,保持系统时间准确至关重要,尤其对于集群、数据库、日志记录等场景。主要的时间同步方式和工具有 ntpd (NTP daemon)、chronyd (Chrony daemon) 和 systemd-timesyncd

一、NTP (Network Time Protocol) & ntpd

1.原理

*   使用 NTP 协议 (UDP 端口 123)
*   客户端 (ntpd) 与一个或多个 NTP 服务器通信
*   通过交换带有时间戳的数据包,计算网络延迟 (delay) 和时间偏差 (offset)
*   采用复杂算法(如 Marzullo 算法、时钟筛选、组合)过滤噪声,选择最可靠的服务器
*   通过 渐进式调整 系统时钟(slew)来纠正偏差(每秒最多调整几毫秒),避免时间跳变,对依赖连续时间的应用友好。只有在启动时偏差过大 (>128ms 或 panic 阈值) 才会进行阶跃调整 (step)。 
*   维护一个持续的频率漂移校正模型,即使暂时断网也能保持一定精度

2. 安装与配置(ntp 包)

# 安装
sudo yum install ntp
# 主配置文件:/etc/ntp.conf
# 编辑配置文件,指定 NTP 服务器池或服务器
sudo vim /etc/ntp.conf

在这里插入图片描述

示例配置片段

# 使用 CentOS 官方池
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# 允许本地网络客户端同步 (可选)
# restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
  • iburst: 初始启动时发送 8 个数据包加速同步
  • restrict ... nomodify notrap: 允许指定网络查询时间但不允许修改配置或设置陷阱
# 启动服务并设置开机自启
sudo systemctl start ntpd
sudo systemctl enable ntpd
# 查看同步状态
ntpq -pn

在这里插入图片描述
在这里插入图片描述

  • ntpq -pn 输出解释:
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
-162.159.200.1   10.107.8.118     3 u   28   64    3  359.100  -70.096  38.033
+95.111.202.5    106.10.186.200   3 u   28   64    3  165.314    0.278  52.889
*202.118.1.81    202.118.1.46     2 u   27   64    3   51.261    2.783  10.046
+185.209.85.222  130.173.91.58    2 u   25   64    3  247.237  -21.915  12.004
  • * 表示当前优选的时间源
  • remote: NTP 服务器 IP
  • offset: 本地时间与服务器时间的偏差 (ms)。负数表示本地时间慢
  • delay: 网络延迟 (ms)
  • jitter: 偏移量的平均偏差 (ms)

3.NTPd 优缺点对比

类别优点缺点
历史与稳定历史悠久,稳定可靠,算法成熟启动和收敛速度相对较慢(尤其初始同步)
时间调整渐进调整(slew)避免时间跳变,适合数据库、交易系统对间歇性网络连接或高延迟网络适应性不如 chrony
断网表现频率漂移模型在断网时维持精度资源消耗略高于 chrony
工具支持强大的日志和监控工具(ntpqntpstat默认配置下处理大时间偏差(>1000s)需要手动干预(ntpd -gq

二、Chrony

1.原理

*   CentOS 7 的默认时间同步工具(chronyd服务)
*   兼容 NTP 协议,但算法更先进
*   能更快适应网络不稳定、间歇性连接(如笔记本、移动设备)
*   在启动时或时间偏差较大时,能更快地大幅纠正时间 (step) 或快速调整 (slew)
*   更精确地处理时钟频率漂移,尤其适合虚拟化环境(因虚拟化时钟常不稳定)
*   支持 NTP 和 PTP (需硬件支持) 时间源
*   提供 chronyc 命令行工具进行实时监控和控制

2.安装与配置 (chrony 包)

# 安装 (通常默认已安装)
sudo yum install chrony# 主配置文件:/etc/chrony.conf
# 编辑配置文件
sudo vim /etc/chrony.conf

在这里插入图片描述

示例配置片段

# 使用阿里云公共 NTP 服务器
server ntp.aliyun.com iburst
server time1.cloud.tencent.com iburst# 允许特定网络同步 (可选)
# allow 192.168.1.0/24# 启用内核实时时钟 (RTC) 同步
rtcsync# 记录频率漂移
driftfile /var/lib/chrony/drift# 日志目录
logdir /var/log/chrony
  • iburst: 同 ntpd,加速初始同步
  • rtcsync: 定期将系统时间同步到硬件时钟 (RTC)
  • driftfile: 存储计算出的时钟频率漂移值
# 启动服务并设置开机自启
sudo systemctl start chronyd
sudo systemctl enable chronyd# 查看状态
chronyc tracking      # 显示系统时间信息
chronyc sources -v    # 查看时间源及其状态

在这里插入图片描述
在这里插入图片描述

  • chronyc sources -v 输出解释:
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^- ntp8.flashdance.cx            2   6   377    10  -2300us[-2300us] +/-   94ms
^- stratum2-1.ntp.mow01.ru.>     2   6   177     6  +8681us[+8681us] +/-   83ms
^* time.neu.edu.cn               2   6   377    11  -1442us[-1609us] +/-   28ms
^- time.cloudflare.com           3   6    37    11  +4486us[+4486us] +/-  117ms
  • ^*: 当前最优时间源。
  • Stratum: 时间源的层级 (数字越小越接近原子钟)。
  • Last sample: [offset] 是本地时间与源时间的偏差。

3. 优点

  • 启动快、收敛快,特别适合不稳定的网络环境
  • 处理大时间偏差能力强,自动执行阶跃或快速调整
  • 虚拟机和动态网络中表现更优
  • 资源占用低
  • 配置灵活,支持 NTPPTP
  • chronyc 提供强大实时控制能力

4. 缺点

  • 相比 ntpd,在某些极端稳定网络下长期稳定性可能略逊(但差距极小)
  • 历史不如 ntpd 悠久(但已是主流且默认选择)

三、systemd-timesyncd

1.原理

*   systemd 生态提供的轻量级 SNTP (Simple NTP) 客户端
*   只实现 NTP 客户端的基本功能,不支持作为 NTP 服务器
*   使用 timedatectl 命令管理。
*   设计目标是提供基本的时间同步,适合桌面或不需要高精度/复杂配置的系统
*   同步间隔较长(通常几分钟一次)

2.安装与配置 (systemd 自带)

# 通常默认已安装并启用
# 主配置文件:/etc/systemd/timesyncd.conf
sudo vim /etc/systemd/timesyncd.conf

示例配置片段

[Time]
# 指定 NTP 服务器
NTP=ntp.aliyun.com time1.cloud.tencent.com
# FallbackNTP=0.centos.pool.ntp.org
# 重启服务
sudo systemctl restart systemd-timesyncd# 查看状态
timedatectl status
  • timedatectl status 输出中包含:
System clock synchronized: yes
NTP service: active
RTC in local TZ: no

3. 优点

  • 极其轻量级,零额外依赖
  • 集成于 systemd,管理统一 (timedatectl)
  • 配置简单

4. 缺点

  • 功能简陋:仅作客户端,不支持服务器模式、复杂过滤、频率漂移补偿等
  • 精度和鲁棒性低于 ntpdchronyd
  • 同步间隔长,不适合高精度场景
  • 无法精细监控

四、手动同步工具

1.ntpdate`(已废弃,不推荐)

  • 原理
    • 一次性查询 NTP 服务器并立即阶跃 (step) 调整系统时间
  • 操作
 sudo ntpdate ntp.aliyun.com
  • 缺点:
    • 中断性:阶跃调整导致时间跳变,可能引发应用错误(日志混乱、交易失败)
    • 精度差:单次测量易受网络抖动影响
    • 无持续补偿:执行后即结束
    • ntpd/chronyd 冲突:不能同时运行
  • 强烈建议避免在生产环境使用。如需阶跃调整,优先使用:
sudo chronyc makestep     # Chrony 手动阶跃
sudo ntpd -gq            # ntpd 在启动前强制同步 (需先停止 ntpd 服务)

2. date 命令

  • 原理
    • 手动设置系统时间
  • 操作
sudo date -s "2024-04-15 14:30:00"  # 设置具体时间
sudo date +%T -s "14:30:00"          # 仅设置时间 (保留日期)
  • 缺点
    • 完全手动,精度依赖操作者,无网络同步能力。仅用于临时调试或初始化

五、关键操作与注意事项

1. 防火墙

  • NTP 使用 UDP 123 端口
  • 确保防火墙允许出站访问 NTP 服务器
sudo firewall-cmd --add-service=ntp --permanent
sudo firewall-cmd --reload

2. 硬件时钟 (RTC) 同步

  • 系统时间 (clock) 在重启后从硬件时钟加载——确保两者一致
# 将当前系统时间写入硬件时钟
sudo hwclock --systohc
# 查看硬件时钟时间
sudo hwclock --show
  • ntp.conf (使用 ntpd) 或 chrony.conf (使用 chronyd 并设置 rtcsync) 中配置,服务会自动定期同步

3. 时区设置

  • 时间同步解决的是 UTC 时间问题——显示时间需正确设置时区
# 列出可用时区
timedatectl list-timezones# 设置时区 (如 Asia/Shanghai)
sudo timedatectl set-timezone Asia/Shanghai# 检查
timedatectl

4. 服务选择建议

  • 绝大多数 CentOS 7 服务器:首选 chronyd (默认且优秀)
  • 需要非常传统或特定 NTP 功能/生态:考虑 ntpd
  • 轻量级桌面/简单设备:systemd-timesyncd 足够

总结

1.对于 CentOS 7 服务器环境,chronyd 是最佳、最推荐的时间同步解决方案,平衡了速度、精度、资源消耗和网络适应性
2.除非有特定兼容性要求,否则无需使用 ntpd
3.systemd-timesyncd 仅适用于要求极低的场景
对比表

特性ntpd (NTP)chronyd (Chrony)systemd-timesyncdntpdate (废弃)
定位成熟稳定的 NTP 实现现代、快速、适应性强的默认工具轻量级 SNTP 客户端一次性时间设置工具
启动/收敛速度较慢极快一次执行
网络适应性稳定网络好不稳定/动态网络极佳一般依赖单次网络质量
时间偏差处理主要靠渐进 (slew),大偏差需手动自动阶跃或快速调整 (slew/step)阶跃调整强制阶跃调整
精度高 (尤其虚拟化)一般低 (单次测量)
资源占用中等极低执行时占用
作为 NTP 服务器支持支持不支持不支持
配置复杂度中等中等简单简单
监控工具ntpq, ntpstatchronyctimedatectl
推荐场景传统环境/特定需求默认选择/服务器/虚拟机桌面/简单设备避免使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/917130.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/917130.shtml
英文地址,请注明出处:http://en.pswp.cn/news/917130.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web3:在 VSCode 中基于 Foundry 快速构建 Solidity 智能合约本地开发环境

相关文章推荐链接Web3专栏https://blog.csdn.net/qq_42392981/category_13016259.html在 VSCode 中基于 Foundry 快速构建 Solidity 智能合约本地开发环境引言1. 开发环境准备(Windows)1.1 安装 VSCode1.2 安装推荐插件1.3 安装 Foundry1.4 验证 Forge 和…

Implement recovery based on PITR using dump file and binlog

模拟生产场景中需要基于某个事务点的恢复,使用存量备份与存量binlog 生成测试数据 (rootlocalhost) [(none)]> create database NanJing; Query OK, 1 row affected (0.01 sec) (rootlocalhost) [test]> use NanJing; Database changed (rootlocalhost) [NanJ…

HTML-取消div,a等标签点击效果

一、背景当标签被设置onclick事件之后,在有些手机浏览器中,点击这些标签,会有点击变色效果。想要取消点击变色效果。通过为div和标签元素添加-webkit-tap-highlight-color样式属性,可以有效地解决这一问题二、解决方案已a标签示例…

VR 三维重建:开启沉浸式体验新时代

在科技飞速发展的今天,VR(虚拟现实)技术已经逐渐渗透到我们生活的各个领域,为我们带来了前所未有的沉浸式体验。而 VR 三维重建作为 VR 技术的重要应用之一,更是让人们能够身临其境地感受各种场景,无论是旅…

iTwinjs 几何 - Curve

CurvePrimitive 常用的见下 LineSegment3d直线段两点直线边、杆件、骨架LineString3d折线多点连续直线轮廓线、路径Arc3d圆弧 / 椭圆弧圆心 半径 起止角圆孔、圆角、弧段BezierCurve3d贝塞尔曲线端点 控制点平滑过渡、动画轨迹BSplineCurve3dB 样条 / NURBS控制点 节点矢…

iPhone 恢复出厂设置是否会删除所有内容?

当你的 iPhone 经常崩溃、出现黑屏死机、卡在加载屏幕上等问题时,你可能会考虑进行恢复出厂设置来修复它。或者在其他情况下,如果你要将使用多年的设备交给新主人,出于安全考虑,也需要进行恢复出厂设置。那么,恢复出厂…

机器学习②【字典特征提取、文本特征处理(TF-IDF)、数据标准化与归一化、特征降维】

文章目录先言一、特征工程概述二、特征提取1.字典特征提取(特征离散化)2.文本特征提取2.1英文文本提取2.2中文文本提取(jieba分词器)3.TfidfVectorizer TF-IDF文本特征词的重要程度特征提取三、数据归一化与标准化1.MinMaxScaler …

3、CC3200串口DMA

先说下CC3200存在2个16*8的fifos, 分别用于发送和接收 当fifos被disable时,将会作为一个1字节深度的保持寄存器, 所以无论fifos是开是关,发送和接收都绕不开fifos DMA 由于发送和接收都绕不过fifos,所以DMA也绕不开FIFOS. MAP_UARTFIFOLevelS…

从游戏NPC到手术助手:Agent AI重构多模态交互,具身智能打开AGI新大门

注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《GPT多模态大模型与AI Agent智能体》(跟我一起学人工智能)【陈敬雷编著】【清华大学出版社】 清华《GPT多模态大模型与AI Agent智能体》书籍配套视频课程【陈敬雷…

Lesson 29 Taxi!

Lesson 29 Taxi! taxi n.出租车 同义词:cab n.出租车 相关:taxi meter计价器 taxi stand taxi rank 出租车站 call ataxi 叫车,打车 例句:对不起,请问出租车站在哪里? Excuse me, do you know where the taxi rank is please? land v.着陆,登陆n.陆地…

怎样将allegro的brd文件转化为AD的PCB文件

由于工作需要将allegro的PCB转成ad给同事,在使用AD软件导入Allegro的brd格式文件时出现各种的异常报错弹窗问题,现分享两种将Allegro PCB文件导入到AD中的方法。一、第1种方法使用高版本的AD软件(AD22,同时操作电脑需安装了Allegr…

[免费]【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts)【论文+源码+SQL脚本】

大家好,我是python222_小锋老师,看到一个不错的【NLP舆情分析】基于python微博舆情分析可视化系统(flaskpandasecharts),分享下哈。 项目视频演示 【免费】【NLP舆情分析】基于python微博舆情分析可视化系统(flaskpandasecharts爬虫) Pytho…

什么是CI/CD?

CI/CD是持续集成(Continuous Integration)和持续交付/持续部署(Continuous Delivery/Continuous Deployment)的缩写:持续集成(Continuous Integration, CI):CI是一种开发实践&#x…

【Linux】重生之从零开始学习运维之Mysql

一主一从主12主机准备工作mkdir -p /data/mysql/logbin chown -R mysql:mysql /data/mysql主节点mysql配置vim /etc/my.cnf.d/mysql-server.cnf server-id177 log_bin/data/mysql/logbin/mysql-bin default_authentication_pluginmysql_native_password查看效果systemctl resta…

Trust Management System (TMS)

Trust Management System (TMS)信托管理系统学习信托管理系统(TMS)是一种用于高效管理信托业务的综合平台,涵盖客户信息、资产配置、风险监控等功能。通过学习TMS,可以掌握信托产品设计、业务流程优化及合规…

Spring Boot中使用Bouncy Castle实现SM2国密算法(与前端JS加密交互)

Spring Boot中使用Bouncy Castle实现SM2国密算法(与前端JS加密交互)一、环境准备二、核心实现三、前后端交互流程四、关键问题解决方案五、常见问题排查六、最佳实践建议在现代Web应用中,数据安全传输至关重要。SM2作为我国自主设计的非对称加…

机器学习sklearn:随机森林的决策树

bg:对比决策树来说,搞多几棵树就是随机森林了rlf_1 [] rlf_2 [] for i in range(10):rfc RandomForestClassifier(n_estimators25)rfc_s cross_val_score(rfc, wine.data, wine.target, cv10).mean()rlf_1.append(rfc_s)clf DecisionTreeClassifier…

上海月赛kk

1.十六进制#include<bits/stdc.h> using namespace std;int n;int main(){cin>>n;stack<int>re;if(n<16)cout<<0;while(n){re.push(n%16);n/16;}while(!re.empty()){int xre.top();re.pop();if(x<10)cout<<x;else cout<<char(Ax-10)…

暑期算法训练.12

目录 52. 力扣1 两数之和 52.1 题目解析&#xff1a; 52.2 算法思路&#xff1a; 52.3 代码演示&#xff1a; ​编辑 52.4 总结反思&#xff1a; 53 面试题&#xff1a;判定是否互为字符重排 53.1 题目解析&#xff1a; 53.2 算法思路&#xff1a; 53.3 代码演示&…

MySQL时间处理完全指南:从存储到查询优化

时间是数据库中最活跃的数据维度之一&#xff0c;正确处理时间数据关系到系统稳定性、数据分析准确性和业务逻辑正确性。本文将深入剖析MySQL时间处理的完整知识体系。一、MySQL时间数据类型详解1. 核心时间类型对比类型存储空间范围特性时区影响DATE3字节1000-01-01~9999-12-3…