Oamc

Linux 时间同步(chrony) · 修改记录

这是 linux/chrony-time-sync.md 的每次改动内容,按时间从新到旧。其他文章一起提交的部分不会出现在这里。

#1 2026-10-18 +70 −0 docs: 新增 23 篇网络/ Linux / Windows / 服务器文章 be5956e
 new file mode 100644
 @@ -0,0 +1,70 @@
+---
+tags: [时间同步, chrony, NTP]
+order: 60
+---
+
+# Linux 时间同步(chrony)
+
+## 场景
+
+服务器时间偏了几分钟,日志对不上、证书校验失败、集群心跳异常。
+
+## 前置条件
+
+- root 权限
+- 知道内网 NTP 服务器地址(没有就先用公网的)
+- 123/udp 能出去或者能到内网源
+
+## 配置
+
+```bash
+# 安装
+dnf install -y chrony || apt install -y chrony
+
+# 指向内网源
+cat >/etc/chrony.conf <<'EOF'
+server ntp1.corp.local iburst
+server ntp2.corp.local iburst
+driftfile /var/lib/chrony/drift
+makestep 1.0 3
+rtcsync
+logdir /var/log/chrony
+EOF
+
+systemctl enable --now chronyd
+```
+
+`makestep 1.0 3` 的意思是:启动后的前三次同步允许直接跳时间,超过 1 秒就跳。
+
+## 验证
+
+```bash
+chronyc sources -v      # ^* 表示当前使用的源
+chronyc tracking        # 看偏移量
+timedatectl status
+date
+```
+
+`System clock synchronized: yes` 才算同步好。
+
+## 回滚
+
+```bash
+systemctl disable --now chronyd
+```
+
+改成手动时间:
+
+```bash
+timedatectl set-ntp false
+timedatectl set-time "2026-10-18 18:00:00"
+```
+
+## 坑
+
+- **虚拟机上别开 `rtcsync` 太频繁**,宿主机会把时间带偏。
+- 时间偏差太大时 chrony 默认会「慢慢追」,用 `makestep` 才会立刻跳。
+- 防火墙挡了 123/udp,`chronyc sources` 里全是 `?`。
+- 容器里同步时间没意义,应该同步宿主机。
+- 域环境里的 Linux 可以直接指向域控,不用单独维护 NTP。
+- 改完记得看 `timedatectl`,`NTP synchronized: no` 说明没生效。