Linux怎么配置Chrony时间_Linux如何替代NTP同步系统时间【方法】

冬枫同学_3607

冬枫同学_3607

2026-04-06

724人浏览

原创

chrony 是比 ntpd 更适合现代 linux 环境的时间同步服务,需手动启用并配置 server、makestep 等关键参数,排查同步问题应优先使用 chronyc tracking 和 sources 命令。

linux怎么配置chrony时间_linux如何替代ntp同步系统时间【方法】

Chrony 是比传统 ntpd 更适合现代 Linux 环境的时间同步服务,尤其在虚拟机、移动设备或网络不稳定的场景下表现更稳。它默认不开启,需要手动配置并启用。

chronyd 服务是否已安装并启用

多数新发行版(如 RHEL 8+/CentOS 8+、Ubuntu 20.04+)已预装 chrony,但未必开机自启。先确认状态:

systemctl is-active chronyd
systemctl is-enabled chronyd

若返回 inactive 或 disabled,需启动并设为开机自启:

  • sudo systemctl start chronyd
  • sudo systemctl enable chronyd
  • 启动后建议立刻检查同步状态:chronyc tracking(看 System clock status 是否为 OK)

/etc/chrony.conf 中必须改的三处配置

默认配置通常只用 pool.ntp.org,延迟高且不可控。生产环境应指定可信、低延迟的 NTP 服务器,并关闭不必要的功能:

  • 注释掉所有 pool 行,改用 server 显式指定(例如国内可用 server ntp.aliyun.com iburst)
  • 确保有 makestep 1.0 -1:允许系统时钟偏差超过 1 秒时强制校正(否则 chronyd 默认只缓慢调整,可能导致日志时间错乱)
  • 删掉或注释 rtcsync(除非你明确需要将系统时间写回硬件时钟;多数云主机不建议开)

改完重启:sudo systemctl restart chronyd

chronyc 命令查同步状态比 timedatectl 更准

timedatectl status 只显示是否“synchronized”,但不告诉你是否真的连上了上游、偏移多大。真正要排查问题,得用 chronyc:

  • chronyc tracking:看当前系统时钟与参考源的偏移(Offset)、估计误差(Root delay)
  • chronyc sources -v:列出所有配置的 NTP 源及其状态(* 表示当前主用源,+ 是备用,? 表示未响应)
  • chronyc makestep:手动触发一步校正(仅当 makestep 配置生效时才有效)

注意:chronyc 默认只能本地 socket 连接,远程访问需在 /etc/chrony.conf 加 cmdport 0 并配防火墙,不推荐。

云服务器或容器里 Chrony 同步失败的常见原因

很多用户发现 chronyc tracking 显示 Leap status : Not synchronised,其实多半不是配置错,而是环境限制:

  • 某些公有云(如 AWS EC2)禁止客户直接同步到外部 NTP,要求使用其内网 NTP 服务(如 169.254.169.123)
  • Kubernetes Pod 内默认无法访问宿主机时钟,且 chronyd 在容器中无法以 root 权限运行或绑定端口,此时应由节点统一同步,Pod 复用节点时间
  • 防火墙(ufw 或 firewalld)可能拦截 UDP 123 端口,临时关掉测试:sudo ufw disable

真正难调的不是配置语法,而是判断时间源是否可达、是否被平台策略限制——先跑通 chronyc sources 看有没有带 * 的行,再看 tracking 里的 offset 数值变化趋势。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

2025.12.22

116

5

Go云原生应用与Kubernetes服务部署实战
Go云原生应用与Kubernetes服务部署实战

本专题围绕 Go 语言在云原生环境中的应用展开,讲解容器化部署、Kubernetes 编排、服务发现、健康检查与弹性扩缩容机制。通过真实云端案例,帮助开发者构建可扩展的云原生微服务架构。

2026.06.29

188

19

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

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

2023.07.25

503

5

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

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

2023.08.08

2891

5

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

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

2024.11.14

3409

8

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4110

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3493

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2693

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6570

7

热门下载

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

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.8万人学习