← LeisureLinux 文章索引
LeisureLinux · 微信公众号文章

Ubuntu 把时间同步工具换成 Rust 了:ntpd-rs 到底是什么?

安全/漏洞 阅读原文(微信)↗

Ubuntu 计划在 26.10 可测试、27.04 默认启用 ntpd-rs 作为时间同步工具。继 sudo-rs 之后,Canonical 的 Rust 化运动又下一城。

新闻背景

2026 年 3 月 26 日,Trifecta Tech Foundation 宣布:Canonical 将在未来 Ubuntu 发行版中将 ntpd-rs 设为默认时间同步工具。 Canonical 同时成为 Trifecta 的金牌赞助商,承诺每年 4 万欧元资助内存安全基础设施软件开发。

时间线如下:

版本 里程碑
Ubuntu 26.04 LTS systemd-timesyncd 作为默认 NTP 客户端
Ubuntu 26.10 ntpd-rs 可测试版本引入
Ubuntu 27.04 ntpd-rs 成为默认时间同步工具
未来版本 统一替代 chrony、linuxptp、gpsd

继去年 Ubuntu 25.10 将 sudo-rs 设为默认 sudo 之后,ntpd-rs 是 Canonical Rust 化战略的第二个重大动作。

什么是 ntpd-rs?

ntpd-rs 是用 Rust 从头实现的 NTP(网络时间协议)服务,包含完整的客户端和服务端功能,同时支持 NTS(网络时间安全协议)NTPv5(实验性)

项目起源于 ISRG(Let\'s Encrypt 的母公司)的 Prossimo 倡议,AWS 资助了早期开发。GitHub 上托管于 pendulum-project 组织,由荷兰软件公司 Tweede golf 长期维护,目前归入 Trifecta Tech Foundation 旗下的时间同步项目群。

ntpd-rs 的托管并不是孤立的——它和 Statime(Rust 版 PTP 精确时间协议实现) 属于同一个项目家族 Pendulum。Canonical 的长期目标是让 ntpd-rs + Statime 的 Rust 组合拳,统一替代当前的 chrony + linuxptp + gpsd 三个工具的职能。

当前生产部署实例:Let\'s Encrypt 从 2024 年 6 月起已在生产环境使用 ntpd-rs,数百台证书服务器运行正常。

ntpd-rs vs chrony vs ntpd:三个时代的交锋

先梳理一下 Linux 时间同步工具有哪些,各自什么时代:

工具 语言 诞生 当前地位
ntpd (参考实现) C 1980s 老旧,仍被 BSD 等使用
chrony C 2010s RHEL/Fedora/Arch 默认,成熟稳定
systemd-timesyncd C 2010s Ubuntu/Debian 默认客户端,功能精简
ntpd-rs Rust 2023 Ubuntu 即将默认,Let\'s Encrypt 已部署
statime Rust 开发中 Pendulum 项目,未来 PTP 部分

① 内存安全:Rust vs C

ntpd-rs 最大的差异不是功能,而是内存安全

chrony 约 6 万行 C 代码,ntpd 约 20 万行 C 代码。C 语言在处理网络协议时,缓冲区溢出、释放后使用、整数溢出等问题层出不穷。NTP 协议又恰恰是攻击者的理想目标——因为它需要接收来自网络的原始数据包,处理复杂的时序和整数运算。

ntpd-rs 的 Rust 代码在编译时就消除了整个类的内存安全 bug。根据 Prossimo 的数据,Microsoft 和 Google 的研究表明,约 70% 的严重安全漏洞是内存安全问题。 Rust 编译器通过所有权系统、生命周期检查和借用规则,在编译期就完全消除这些漏洞。

这不是理论分析——chrony 和 ntpd 都曾曝出严重远程代码执行漏洞。仅以 NTP 协议为例,CVE 数据库中 NTP 相关漏洞超过 150 个,相当一部分是经典的内存安全问题。

② NTS(网络时间安全)支持

ntpd-rs 和 chrony 4.0+ 都支持 NTS。NTS 是为 NTP 添加加密认证的标准,防止中间人攻击者篡改时间同步数据。

但 ntpd-rs 在 NTS 支持上更纯粹:chrony 的 NTS 实现是逐步追加的,ntpd-rs 在设计之初就把 NTS 作为一等公民。

③ 配置和运维

ntpd-rs 使用 TOML 格式配置,比 chrony 的专用配置文件格式更清晰:

# ntpd-rs 示例配置(TOML 格式)

[[source]] mode = "server" address = "pool.ntp.org" max-poll-interval = 8 min-poll-interval = 4

对比 chrony 的配置:

# chrony 示例配置

pool pool.ntp.org iburst server ntp.ubuntu.com

ntpd-rs 的状态查看用 ntp-ctl status,chrony 用 chronyc tracking。各有千秋,ntp-ctl 的输出格式更结构化、适合脚本解析。

ntpd-rs 还有一个亮点:原生 Prometheus 指标集成,适合云原生环境的监控运维。

④ 性能

从已有的基准测试来看:

服务端侧:rsntp(早期的 Rust NTP 服务器原型)能承受更高的请求吞吐率,延迟抖动更小。chronyd 单个进程是单线程处理,不能充分利用多核 CPU(需要启动多个实例)。ntpd-rs 有多线程的路线图。

客户端侧:Trifecta Tech Foundation 正在进行全面的 chrony 对标测试,目前已发布的数据表明 ntpd-rs 的时间同步精度已\"非常接近 chrony\"。

Let\'s Encrypt 的实践也是有力佐证:数百台生产环境的证书验证服务器,对时间精度要求极高,正常运转超过一年。

⑤ 功能广度

这是 ntpd-rs 当前不如 chrony 的地方:

功能 chrony ntpd-rs
NTP 客户端
NTP 服务器
NTS 支持 ✅ 4.0+
NTPv5 实验性
PTP (精确时间协议) 通过 statime 集成中
PPS 硬件参考时钟 ❌ 计划中
SHM/SOCK 参考时钟 ❌ 计划中
Leap Smearing ✅ 有限
Prometheus 指标
配置文件格式 专有 TOML

Debian 和 Red Hat 的跟进计划Debian

截至 2026 年中,Debian 尚未正式宣布将 ntpd-rs 设为默认时间同步工具。

Debian 的默认 NTP 策略一直跟随 systemd——即使用 systemd-timesyncd 作为基础的 NTP 客户端,用户可选安装 chronyntpsec。Debian 对 Rust 工具的态度比较谨慎(因为 Debian 对架构支持的要求极高),短期内不太可能直接切换。

不过值得注意的是:ntpd-rs 的依赖极轻(无需 libc 以外的大量系统库),且 Rust 工具链在 Debian 中已足够成熟。如果 Ubuntu 的实践证明了稳定性和安全性优势,Debian 会在后续版本中增加 ntpd-rs 的软件包并考虑可选默认。

Red Hat / Fedora

Red Hat 的立场更明确:Fedora 和 RHEL 的默认时间同步工具仍然是 chrony,目前没有转向 ntpd-rs 的公开计划。

Red Hat 对 chrony 投入了大量开发和维护资源,chrony 的作者 Miroslav Lichvar 本身就是 Red Hat 员工。chrony 在 RHEL 生态中是经过严格认证的——从内核到应用层的完整验证。RHEL 9 和未来的 RHEL 10 仍将使用 chrony。

Fedora 更灵活一些,通常会先尝试新技术。目前 Fedora 的软件源中已有 ntpd-rs 包,但截至 Fedora 42(2026 年春),默认时间同步仍是 chrony + systemd-timesyncd。

不过 Red Hat 同样在推进 Rust 化——rust-coreutils(Rust 版 GNU coreutils)、rust-coreos-installer 等都有实际部署。时间同步方面只是 chrony 本身质量足够好、C 代码经过充分审计,优先级不如 sudo-rs 或 coreutils 高。

行业生态总结

发行版 当前默认 Rust NTP 计划
Ubuntu chrony / systemd-timesyncd ntpd-rs 2027 默认
Debian systemd-timesyncd 无官方计划
Fedora/RHEL chrony 无官方计划
Arch Linux chrony / systemd-timesyncd AUR 已有 ntpd-rs
openSUSE chrony 观望中
NixOS ntpd-rs 可选 社区维护
Alpine BusyBox ntpd / chrony 无计划

我的解读为什么是时间同步?

时间同步看起来不像 sudo 或 coreutils 那样\"性感\",但它是整个互联网基础设施的基石。从 TLS 证书验证到 Kerberos 认证、从分布式数据库共识到日志审计——每一样都离不开精确可靠的时间。而攻击者一旦能篡改系统时间,就能让证书验证失效、让日志审计混乱、让分布式系统分裂。

Canonical 选择 ntp 作为第二个 Rust 化目标,正是看中了它介于核心和边缘之间的独特位置——不是最常用的工具(不像 ls、cp),但对安全的影响同样是基础性的。

从 chrony 到 ntpd-rs 的迁移成本有多高?

对大多数桌面用户来说:几乎为零。 ntpd-rs 会通过 systemd service 自动替换,用户甚至不会察觉。对服务器管理员来说,迁移主要涉及配置文件的格式转换(chrony 专有格式 → TOML)和监控工具的调整(chronycntp-ctl / Prometheus)。

三个生态,三种路径

Canonical 推 Rust 最激进(sudo-rs → ntpd-rs → 更多),Red Hat 最务实(chrony 很好用就不换,但有 Rust 团队做其他项目),Debian 最保守(跟着上游走)。

这不是谁对谁错的问题——三个发行版面对的用户群体不同。Ubuntu 面向的桌面和云用户池对安全体验更敏感,RHEL 的企业客户对稳定性要求压倒一切,Debian 的体积则是所有架构的通用性。

但最终的结局是确定的:四五年后回头看,核心系统工具的 Rust 化会像 2010 年代 systemd 的普及一样势不可挡。 不是 C 不好,而是 C 的好维护版本已经过去了。Rust 让新一代开发者能在编写基础设施软件时,不需要像前辈那样把自己磨练成内存布局方面的\"人肉编译器\"。

━━━ ━━━ ━━━

参考文献

  1. Trifecta Tech Foundation: Ubuntu to adopt ntpd-rs as the default time synchronization client and server --- 2026-03-26
  2. Ubuntu Discourse: \"Ntpd-rs: it\'s about time!\" --- Jon Seager, Canonical VP Engineering
  3. Trifecta Tech Foundation: Canonical Gold Sponsor announcement --- 2026-06-30
  4. ntpd-rs GitHub Repository
  5. ISRG Prossimo NTP Initiative
  6. Let\'s Encrypt ntpd-rs Production Deployment --- 2024-06-24
  7. Pendulum Project --- ntpd-rs + Statime
  8. chrony official website
  9. Trifecta Tech Foundation: Time Synchronization Initiative
  10. ntpd-rs Documentation
  11. Canonical releases Ubuntu 25.10 with sudo-rs as default sudo --- 2025-10-09

━━━ ━━━ ━━━

*本文完。欢迎关注 LeisureLinux,获取更多深度 Linux 生态与技术分析。*

当 Rust 开始吃掉整个 Linux 底层:X11、内核、编译器一起锈化

用 Rust 重写的 Bash: Brush v0.4的重大更新

10款比传统 Linux 工具更快的 Rust 替代品深度解读

Rust Coreutils 0.7 发布:性能大跃进与架构深层优化

微软开源 LiteBox:基于 Rust 的库操作系统与 LVBS 硬件级安全架构深潜

剑指核心:uutils coreutils 0.9.0,Linux 底层江湖的又一波澜

内核纪元新篇章:Linux 7.0 深度技术解析与架构演进

本文整理自微信公众号 LeisureLinux 的原创内容(Linux / AI / 安全 硬核技术)。

· 阅读原文(微信公众号)

· 关注公众号 LeisureLinux,第一时间获取技术深度内容。

LeisureLinux 公众号二维码(微信扫一扫关注)