I’d tell you a joke about NTP but I don’t have the time
1. 什么是 NTP #
网络时间协议(Network Time Protocol,简称NTP)是一种用于同步计算机系统时间的网络协议。它通过与时间服务器通信,确保设备的时间与标准时间(如UTC)保持一致。NTP在企业IT环境中至关重要,尤其是在分布式系统、日志记录、安全认证和交易处理等领域,时间同步直接影响系统的可靠性和安全性。
NTP采用分层结构,分为多个Stratum级别。Stratum 1是直接连接到高精度时间源(如GPS或原子钟)的服务器,而Stratum 2及以下则从上一级服务器同步时间。通常,普通设备会连接到Stratum 2或Stratum 3服务器以获取时间。
- NTP 协议自 1985 年诞生,目前主流为 NTPv4(RFC 5905,2010 年批准),至今仍广泛使用(包括在严格的 Linux、BSD、NetBSD、macOS 系统)
- 2020 年发布的 Network Time Security (NTS, RFC 8915),为 NTP 增加了用 TLS 握手+AEAD 扩展字段的认证能力,已逐步纳入 Red Hat、Debian、FreeBSD 等发行版预设配置中
- 2019年以来,Linux 系统推荐使用 Chrony(Chronyd ≥ 4.x) 替代传统
ntpd,因其对低带宽链路、虚拟机而言能更快收敛,更好处理时钟抖动问题,且支持硬件时间戳、更稳定地与 NTS 集成
2. 北京时间的源头 —— 授时链条全景图 #
国家授时中心──中国科学院(NTSC / CAS)
↑
多边卫星补时系统(多 GNSS,包括北斗、GPS)
↑
Stratum‑1 公共 NTP 和云服务商 + 校内教育网 Server- 中科院国家授时中心(NTSC)自 2018 年将 ntp.ntsc.ac.cn 纳入试运行服务,是最权威的国家标准时间来源,但带宽有限,不建议用作大规模校内站点使用,仅供小规模信任环境参考
- China NTP‑Pool (
cn.pool.ntp.org,与 Pool‑NTP 项目同步)依用户地理位置和延迟自动匹配可用服务器,是最稳定的高容量选择 - 主流云厂商(国内公网服务器):
- 阿里云 NTP:统一为 ntp.aliyun.com(由多个 CNAME alias 指向 time.pool.aliyun.com)
- 腾讯云 NTP:time1.cloud.tencent.com … time5.cloud.tencent.com(一共五台 IPv4)
- 教育网内常见高校备选(推荐使用
edu.ntp.org.cn快速域名,自动封装教育网 IP)。
3. 中国常用的NTP服务器(2026年核验) #
由于网络环境和政策原因,中国境内的设备通常需要使用本地或可访问的NTP服务器。以下是2026年核验推荐的常用NTP服务器列表,这些服务器经过广泛使用和验证,具有较高的可靠性和稳定性:
- ntp.aliyun.com
由阿里云提供,适合中国大陆用户,延迟低,稳定性高。阿里云的NTP服务支持大规模设备同步,广泛应用于企业环境。 - time.windows.com
微软提供的NTP服务器,虽然服务器位于海外,但在中国部分地区仍可访问,适合混合云环境下的Windows设备。 - ntp.tencent.com
腾讯云提供的NTP服务,覆盖中国大陆多个地区,适合腾讯云用户或其他需要低延迟同步的场景。 - cn.pool.ntp.org
这是NTP池项目的一部分,专门为中国用户提供服务。通过DNS解析,自动选择距离最近的服务器,适合跨区域部署的设备。 - time.apple.com
苹果提供的NTP服务器,适合macOS和iOS设备用户,在中国部分地区可访问。
注意事项:
- 由于网络防火墙(GFW)的影响,部分海外NTP服务器(如pool.ntp.org的某些节点)可能在中国大陆无法访问,建议优先选择国内服务商的NTP服务器。
- 建议配置多个NTP服务器地址以提高冗余性,避免单一服务器不可用导致同步失败。
- 对于企业环境,建议在内部部署NTP服务器(如使用Stratum 1设备或从云服务同步),以减少对公共服务器的依赖并提高安全性。
3.1 国内 NTP 服务器速查对比表 #
服务商
服务器地址
运营商
适用场景
NTS/IPv6支持
备注
阿里云
ntp.aliyun.com
阿里云
企业内网、云服务器
仅IPv4 / 无NTS
CNAME 指向 time.pool.aliyun.com
腾讯云
time1 ~ time5.cloud.tencent.com
腾讯云
腾讯云用户
仅IPv4 / 无NTS
五台 IPv4
NTP Pool
cn.pool.ntp.org
社区
跨区域部署
双栈 / 无NTS
DNS 就近匹配
微软
time.windows.com
微软
Windows 混合云
双栈 / 无NTS
海外节点,国内部分可达
苹果
time.apple.com
Apple
macOS / iOS
双栈 / 无NTS
国内部分可达
国家授时中心
ntp.ntsc.ac.cn
中科院
小规模信任环境
部分双栈 / 无NTS
Stratum-1,无负载均衡
**选型建议:**个人用户优先 cn.pool.ntp.org;企业内网优先 ntp.aliyun.com + time1.cloud.tencent.com 双源冗余;Windows 设备可额外保留 time.windows.com 作为第三源。
4. 客户端配置推荐(Chrony × Windows W32Time) #
✅ Linux(Chrony) #
Debian / RHEL 10 以上系统默认使用 Chrony,可编辑 /etc/chrony.conf:
server ntp.aliyun.com iburst maxpoll 10 minpoll 6
server cn.pool.ntp.org iburst
server ntp.tencent.com iburst
driftfile /var/lib/chrony/drift
# 如果 NTS 可用,则添加报文项:
# server time.aliyun.com iburst ntsiburst可加速启动时同步收敛;minpoll/maxpoll控制探测间隔(min 64 秒,max 1024 秒)- 如将服务器支持 NTS(且你信任该厂商),可启用
nts关键字并设置ntsdumpdir /var/lib/chrony/。
安装后:
sudo systemctl enable chronyd
sudo systemctl start chronyd
chronyc sources -v
chronyc tracking✅ Windows(自带 W32Time 修改服务器) #
- Windows 10 / 11 修改注册表或通过 PowerShell 设置 public server:
w32tm /config /manualpeerlist:"ntp.aliyun.com pool.ntp.org" /syncfromflags:manual /update
w32tm /resync- 注意 Windows 的时钟服务不支持 NTS,也没有 iburst,因此不适合对高精度要求的 ECS/VPS。
4.1 验证同步状态 #
配置完成后,建议验证时间同步是否正常工作:
Linux(Chrony)验证 #
chronyc sources -v # 查看时间源列表和状态
chronyc tracking # 查看系统时钟偏移量
chronyc makestep # 如果偏移过大,手动步进校正Windows 验证 #
w32tm /query /status # 查看当前时间源和偏移
w32tm /resync # 强制重新同步
w32tm /stripchart /computer:ntp.aliyun.com /samples:5 # 连续采样 5 次查看延迟- 正常状态:偏移量应在 ±100ms 以内;如果持续超过 1s,说明网络或服务器异常。
- 如果
chronyc sources显示所有源都是.(未选中),说明防火墙可能屏蔽了 UDP 123 端口。 - Windows 下如果
w32tm /query /status返回 “未同步”,检查 Windows Time 服务是否运行:net start w32time。
4.2 排障指南(Troubleshooting) #
- Chrony 端口被墙:如果在执行
chronyc sources -v时,所有的源状态列(State)都显示为?(Unreachable),可能是由于防火墙拦截了 UDP 123 端口。解决方法:检查并放行出站规则中的 UDP 123 端口;若是云服务器,请同时检查安全组设置。 - Windows Time 服务报错:如果在 Windows 中执行
w32tm /query /status提示“时间服务未运行”或“访问被拒绝”,通常是因为服务处于手动或禁用状态。解决方法:以管理员身份运行 PowerShell,执行net start w32time启动服务,并将服务设置为自动启动Set-Service w32time -StartupType Automatic。 - 时间跳变过大导致同步失败:当系统时间与真实时间相差过大(例如硬件电池耗尽导致回到1970年)时,部分NTP客户端出于保护机制会拒绝同步。解决方法:对于 Linux,可先使用
chronyc makestep强行步进一次,或使用date -s "YYYY-MM-DD HH:MM:SS"先手动将时间设为接近真实的时间后再开启服务。
5. 安全升级:NTS、闰秒处理及选型注意 #
NTS:NTP 的 TLS 加固方案 #
- Network Time Security (RFC 8915) 提供经 TLS 握手的密钥协商机制(NTS-KE)+ AEAD 扩展字段验证,可抵抗中间人攻击与时钟重放欺骗。目前已有 Netnod、PTB、USNO 等时钟服务商开放 NTS;Chrony 客户端可启用
nts模式与之通信;但在国内厂商如阿里、腾讯暂未公开支持 NTS,仍需监测未来动态。
闰秒与负闰秒:未来几年所面临的闰秒调整 #
- 截至目前,已有 27 个 UTC 正方向插入闰秒,最近一次发生在 2016‑12‑31
- 科学测算地球自 1990 年后旋转速度恢复加快,有可能在 2029 年出现 负闰秒 — 第一次让 UTC 减一秒以满足与天文 UT1 的差距约束
- 谷歌、亚马逊、Meta 等云厂商自 2022 年起,采用 “闰秒 smear” 方式将“秒”平滑分布到 17 小时内,避免系统因瞬时倒退或跳跃而崩溃
- 建议高容错业务部署考虑使用 Chrony 的渐变模式,通过
slew平滑校正系统时间。
防护 NTP 放大攻击与 DoS #
- 若你所在网络开放 Stratum‑1 / Stratum‑2 服务器服务公网,务必在配置
ntpd或chronyd时加入:
restrict default ignore
restrict 127.0.0.1
restrict your.trusted.subnet mask 255.255.255.0 nomodify notrap- 并开启
iburst、降低响应频率,避免 UDP 反射(amplification)攻击。
6. 常见 FAQ & 实践建议 #
问:是否应该只用国家授时中心服务器?
答:不建议。中科院 ntp.ntsc.ac.cn 是 Stratum‑1 源,但无负载均衡且访问量有限,建议优先部署阿里云、腾讯云的高并发服务作为主用源。
问:我的设备只支持 IPv4,还要配置 IPv6 吗?
答:可选。中国多数公共 NTP 都支持双栈;IPv6 地址通常延迟略小,信息更对齐公网趋势。
问:能否 100% 拒绝 time.windows.com 之类的微软服务器?
答:可以。w32tm /manualpeerlist 配置后,只使用你的自选源。
问:时间同步正常,但系统时间仍然不准?
答:检查硬件时钟(RTC)是否偏差过大。Linux 下执行 hwclock --show;Windows 下检查 BIOS 时间。如果硬件时钟偏差超过 1 分钟,先执行 hwclock --systohc(Linux)或在 BIOS 中校正。
问:Chrony 和 ntpd 可以同时运行吗?
答:不可以。两者都会尝试控制同一个时钟设备,导致冲突。安装 Chrony 后应确保 ntpd 已完全停止并禁用:systemctl stop ntpd && systemctl disable ntpd。
问:时间同步正常,但系统时间仍然不准?
答:检查硬件时钟(RTC)是否偏差过大。Linux 下执行 hwclock --show;Windows 下检查 BIOS 时间。如果硬件时钟偏差超过 1 分钟,先执行 hwclock --systohc(Linux)或在 BIOS 中校正。
问:Chrony 和 ntpd 可以同时运行吗?
答:不可以。两者都会尝试控制同一个时钟设备,导致冲突。安装 Chrony 后应确保 ntpd 已完全停止并禁用:systemctl stop ntpd && systemctl disable ntpd。
问:未来是否会废除闰秒?
答:联合国时务总会已讨论 2035 年后停止添加闰秒。但目前 UTC 尚未取消该机制;国内系统仍按现行标准执行。
7. 参考资料与官方链接 #
- NTP 官方文档: ntp.org — NTP 项目主页
- Chrony 文档: chrony.tuxfamily.org — 配置参考和 FAQ
- NTS RFC 8915: IETF RFC 8915 — Network Time Security 规范
- 国家授时中心: 中国科学院国家授时中心 — 北京时间标准源
- Leap Second 公告: IERS leap-seconds.list — 闰秒数据文件
- 阿里云 NTP 文档: 阿里云 NTP 服务
- 腾讯云 NTP 说明: 腾讯云时间同步服务