0

0

ntpd → chronyd 迁移后经典配置容易出错的几处关键差异

冷炫風刃

冷炫風刃

发布时间:2026-01-24 11:03:58

|

820人浏览过

|

来源于php中文网

原创

chronyd 的 makestep 不等价于 ntpd 的 -g 或 -x:它默认禁用步进,需显式配置阈值与次数(如 makestep 1.0 3),且仅在启动或网络恢复时触发;-1 表示无限制次数但仅首次同步有效。

ntpd → chronyd 迁移后经典配置容易出错的几处关键差异

chronyd 的 makestep 配置不等于 ntpd 的 -g-x

很多人以为把 ntpd 启动参数 ntpd -g -x 直接对应到 chronyd 就是加个 makestep,其实不是。chronyd 默认**完全禁止步进(step)时间**,哪怕偏差几小时也不会跳;而 makestep 是显式开启“允许跳变”的开关,但必须配阈值和次数,否则无效。

  • makestep 1.0 3 表示:偏差超过 1 秒时允许最多 3 次步进(每次只在启动或网络恢复时触发)
  • 漏写数字(如只写 makestep)→ 配置语法错误,chronyd 启动失败
  • 设成 makestep 0.5 -1 → 允许任意次数的 ≤0.5 秒步进,但重启后仍只生效一次(-1 不代表“永远”,而是“无限制次数”,但仅对首次同步有效)
  • ntpd 的 -g 是单次强制容忍大偏差,chronyd 中没有等价的“启动即强制校正”行为,必须靠 makestep + 正确时机(如系统刚开机、网络连通后)

iburst 是默认行为,但 burst 不能混用

ntpd 配置里常见 server pool.ntp.org iburst,迁移到 chronyd 时容易误加 burst —— 这是错的。iburst 在 chronyd 中是默认启用的(只要没显式禁用),而 burst 是一个高风险指令:它会让 chronyd 在短时间内密集发包(每 2 秒一次,持续 8 次),可能被 NTP 服务器限速甚至拉黑。

  • 正确写法:server ntp1.aliyun.com iburst preferiburst 可省略,但保留更清晰)
  • 错误写法:server ntp1.aliyun.com burst → 可能触发服务器拒绝响应,chronyc sources 显示 `^?` 状态
  • chronyd 没有 ntpd 的 minpoll/maxpoll 概念,轮询间隔由算法自动调节,强行干预反而降低稳定性

driftfile 路径和权限必须匹配 systemd 服务运行用户

ntpd 默认以 ntp 用户运行,/var/lib/ntp/drift 归属 ntp:ntp;chronyd 默认以 chrony 用户运行,但很多迁移者直接复用原路径,导致启动失败:

IBM Watson
IBM Watson

IBM Watson文字转语音

下载
  • 错误现象:systemctl status chronyd 显示 “Failed to open drift file” 或 “Permission denied”
  • 正确做法:确保 driftfile /var/lib/chrony/drift 存在,且目录归属 chrony:chrony,文件可写
  • 别忽略 SELinux:若开启,需执行 restorecon -Rv /var/lib/chrony,否则即使权限对也会被拦截
  • chronyd 不会自动创建 /var/lib/chrony 目录,必须手动 mkdir -p /var/lib/chrony && chown chrony:chrony /var/lib/chrony

服务依赖关系变了:chronyd 不再需要 ntpdate 预热

ntpd 生态中常习惯先跑 ntpdate -s ntpserver 再启 ntpd,认为这样能“缩短收敛时间”。chronyd 完全不需要这一步 —— 它启动时会主动做快速初始同步(靠 iburstmakestep),且自带偏移补偿模型。强行加 ntpdate 反而破坏 chronyd 的内部状态估算。

  • 典型错误:systemctl enable ntpdate && systemctl start ntpdatechronyd 并存 → 两个服务争抢系统时钟,chronyc tracking 显示 Offset 波动剧烈
  • 必须停用并屏蔽旧服务:systemctl stop ntpdate ntpd && systemctl disable ntpdate ntpd
  • 验证是否干净:ss -tuln | grep ':123' 应只看到 chronyd 占用 UDP 123 端口
chronyd 的配置逻辑是“声明意图 + 交由算法决策”,不是 ntpd 那种“手动调参式控制”。最容易出问题的地方,恰恰是那些看起来“差不多”的字段——比如 iburst 名字一样、行为却更克制;makestep 看似简单,实则绑定启动时机与误差容忍策略。迁移时别逐行复制,得重读每个指令在 chronyd 上的实际语义。

相关专题

更多
页面置换算法
页面置换算法

页面置换算法是操作系统中用来决定在内存中哪些页面应该被换出以便为新的页面提供空间的算法。本专题为大家提供页面置换算法的相关文章,大家可以免费体验。

404

2023.08.14

tcp和udp的区别
tcp和udp的区别

TCP和UDP的区别,在连接性、可靠性、速度和效率、数据报大小以及适用场景等方面。本专题为大家提供tcp和udp的区别的相关的文章、下载、课程内容,供大家免费下载体验。

119

2023.07.25

udp是什么协议
udp是什么协议

UDP是OSI参考模型中一种无连接的传输层协议。本专题为大家带来udp是什么协议的相关文章,免费提供给大家。

289

2023.08.08

tcp和udp有什么区别
tcp和udp有什么区别

tcp和udp的区别有:1、udp是无连接的,tcp是面向连接的;2、udp是不可靠传输,tcp是可靠传输;3、udp是面向报文传输,tcp是面向字节流传输。想了解更多tcp相关的内容,可阅读本专题下面的相关文章。

383

2024.11.14

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

10

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

29

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

21

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

21

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

13

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.7万人学习

Git 教程
Git 教程

共21课时 | 2.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号