内网环境 NTP 时间同步实战指南:chrony 从部署到排错

发布时间:2026/7/3 7:08:15

内网环境 NTP 时间同步实战指南:chrony 从部署到排错 一份面向运维人员的完整 NTP 部署手册覆盖 Ubuntu 服务端、离线客户端及 Windows 终端的全链路同步方案。描述在运维工作中服务器时间一致性 是日志审计、证书校验、分布式协调的基石。当内网环境无法访问互联网时自建 NTP 服务就成了刚需。本文记录了我用chrony搭建 NTP 时间同步体系的完整过程包括 服务端部署、离线客户端安装 和 Windows 终端同步并附上踩坑排错实录。环境概览角色系统IP网络NTP服务端ubuntu24.04192.168.200.69可访问互联网NTP客户端ubuntu24.04内网仅内网NTP客户端windows 2016内网仅内网一、NTP服务端部署选择 chrony 而不是传统 ntpd 的原因启动快、同步快、断网容错好非常适合偶尔断网的内网场景。1.1安装chronyapt update apt install chrony -y1.2配置/etc/chrony/chrony.confvim /etc/chrony/chrony.conf建议配置如下# 上游互联网时间源 pool ntp.aliyun.com iburst maxsources 4 pool ntp1.aliyun.com iburst maxsources 1 pool ntp2.aliyun.com iburst maxsources 1 pool 2.ubuntu.pool.ntp.org iburst maxsources 2 # 允许局域网客户端同步 allow 192.168.0.0/16 # 断网容灾 local stratum 10 # 基础参数确认以下行存在 driftfile /var/lib/chrony/drift makestep 1 3 rtcsync logdir /var/log/chrony参数说明配置项作用iburst启动时快速发送 4 个探测包加速首次同步maxsources限制从该 pool 选取的时间源数量allow 192.168.0.0/16允许该网段的机器来同步时间local stratum 10当上游全部不可达时本机降级作为第 10 层时间源继续服务makestep 1 3前 3 次同步允许直接跳变避免慢速追赶rtcsync定期将系统时间写入硬件时钟1.3防火墙设置如果使用ufw防火墙ufw allow 123/udp如果不适用防火墙建议直接关闭ufw stop # 关闭防火墙 ufw disable # 禁止开机自启如果使用iptables(按需)iptables -A INPUT -p udp --dport 123 -j ACCEPT1.4启动并验证systemctl restart chronyd systemctl enable chronyd查看上游同步状态chronyc sources -v二、客户端配置离线环境离线安装chrony 有几个经典坑提前列出帮你避开。2.1踩坑预警坑现象解法time-daemon冲突dpkg报conflicts with time-daemon先卸载systemd-timesyncd依赖缺失缺少 tzdata-legacy联网机器下载.deb传过来系统用户缺失status217/USER_chrony用户不存在dpkg --configure chrony或手动useradd2.2卸载systemd-timesyncdUbuntu 默认安装了systemd-timesyncd和 chrony 冲突apt remove systemd-timesyncd -y2.3安装chrony联网机器上提前下载好离线包# chrony 主包 wget https://mirrors.aliyun.com/ubuntu/pool/main/c/chrony/chrony_4.5-1ubuntu4.2_amd64.deb # 你可能需要的依赖64.9 KB先下着备用 wget https://mirrors.aliyun.com/ubuntu/pool/main/t/tzdata/tzdata-legacy_2026a-0ubuntu0.24.04.1_all.deb安装顺序# 1. 安装主包忽略依赖警告 dpkg -i chrony_4.5-1ubuntu4.2_amd64.deb # 2. 安装缺失的依赖 dpkg -i tzdata-legacy_2026a-0ubuntu0.24.04.1_all.deb # 3. 让 chrony 完成配置自动创建用户、目录等 dpkg --configure chrony2.4配置指向NTP服务器vim /etc/chrony/chrony.conf注释掉所有默认的pool/server行只保留server 192.168.200.69 iburst driftfile /var/lib/chrony/drift makestep 1 3 rtcsync logdir /var/log/chrony2.5启动并验证systemctl restart chronyd systemctl enable chronyd查看时间源chronyc sources -v查看同步详情chronyc tracking三、windows客户端同步后记chrony 上手简单但在离线环境部署时有几个不易察觉的细节dpkg -i不会执行 postinst 脚本用户和目录需要手动创建或dpkg --configure补执行systemd-timesyncd和 chrony 冲突必须先卸载配置中多余的 pool 行会导致命令变慢内网环境只保留一个 server 即可

相关新闻