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 客户端,用户可选安装 chrony 或 ntpsec。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)和监控工具的调整(chronyc → ntp-ctl / Prometheus)。
三个生态,三种路径
Canonical 推 Rust 最激进(sudo-rs → ntpd-rs → 更多),Red Hat 最务实(chrony 很好用就不换,但有 Rust 团队做其他项目),Debian 最保守(跟着上游走)。
这不是谁对谁错的问题——三个发行版面对的用户群体不同。Ubuntu 面向的桌面和云用户池对安全体验更敏感,RHEL 的企业客户对稳定性要求压倒一切,Debian 的体积则是所有架构的通用性。
但最终的结局是确定的:四五年后回头看,核心系统工具的 Rust 化会像 2010 年代 systemd 的普及一样势不可挡。 不是 C 不好,而是 C 的好维护版本已经过去了。Rust 让新一代开发者能在编写基础设施软件时,不需要像前辈那样把自己磨练成内存布局方面的\"人肉编译器\"。
━━━ ━━━ ━━━
参考文献
- Trifecta Tech Foundation: Ubuntu to adopt ntpd-rs as the default time synchronization client and server --- 2026-03-26
- Ubuntu Discourse: \"Ntpd-rs: it\'s about time!\" --- Jon Seager, Canonical VP Engineering
- Trifecta Tech Foundation: Canonical Gold Sponsor announcement --- 2026-06-30
- ntpd-rs GitHub Repository
- ISRG Prossimo NTP Initiative
- Let\'s Encrypt ntpd-rs Production Deployment --- 2024-06-24
- Pendulum Project --- ntpd-rs + Statime
- chrony official website
- Trifecta Tech Foundation: Time Synchronization Initiative
- ntpd-rs Documentation
- 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 硬件级安全架构深潜