必须先停用chronyd再配置ntpd,否则修改/etc/ntp.conf无效;编辑server行时需注释旧地址、添加带iburst参数的新地址(内网用IP),重启ntpd后用ntpq -p验证连接状态,并确保防火墙放行UDP 123端口。

修改 /etc/ntp.conf 中的 server 行
CentOS 7 默认使用 ntpd 服务,其同步地址全部由 /etc/ntp.conf 文件里的 server 指令控制。直接编辑该文件即可更换目标 NTP 服务器:
- 用
sudo vi /etc/ntp.conf打开配置文件 - 找到所有以
server开头的行(通常默认是0.centos.pool.ntp.org等) - 逐行注释掉旧地址(在行首加
#),例如:#server 0.centos.pool.ntp.org iburst - 新增你想要的地址,推荐带
iburst参数提升首次同步速度,例如:server ntp1.aliyun.com iburst
注意:不要删掉原有 restrict 或 driftfile 行,它们影响访问控制和漂移记录,误删可能导致服务启动失败。
systemctl restart ntpd 后必须验证是否生效
改完配置不重启服务,ntpd 仍会沿用旧地址;重启后也不代表一定连得上新地址——常见失败原因包括防火墙、DNS 解析失败或目标服务器不可达:
- 执行
sudo systemctl restart ntpd - 立即运行
ntpq -p查看对端状态:如果出现*或+开头的行,说明已成功连接并选为同步源;若全是?或空行,说明未连通 - 用
ping ntp1.aliyun.com和nc -u -z ntp1.aliyun.com 123分别测试 DNS 和 UDP 端口连通性
如果 ntpq -p 显示 no servers reachable,大概率是防火墙拦截了 UDP 123 端口,需执行 sudo firewall-cmd --add-service=ntp --permanent && sudo firewall-cmd --reload。
避免与 chronyd 冲突导致配置被忽略
CentOS 7 默认启用 chronyd(比 ntpd 更轻量、更适合虚拟机),它会接管时间同步,此时改 /etc/ntp.conf 完全无效:
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
- 先确认当前谁在管时间:
timedatectl status | grep "NTP service",输出含chronyd就说明它正在运行 - 若想用
ntpd,必须停用chronyd:sudo systemctl stop chronyd && sudo systemctl disable chronyd - 再启动
ntpd:sudo systemctl start ntpd && sudo systemctl enable ntpd - 最后检查
timedatectl输出中 “NTP enabled” 是否为yes,“NTP service” 是否显示ntpd
没停 chronyd 就去改 ntp.conf,等于往废纸堆里写地址——系统根本不会读它。
内网环境要写 IP 而不是域名
如果目标 NTP 服务器在局域网内(比如 192.168.1.100),/etc/ntp.conf 中必须用 IP 地址,不能依赖 DNS:
- 错误写法:
server ntp-server.local iburst(内网 DNS 可能未配或不稳定) - 正确写法:
server 192.168.1.100 iburst - 同时确保该 IP 能被本机 ping 通,且对方
ntpd已监听 UDP 123(ss -uln | grep :123)
用域名在内网容易因解析失败导致 ntpq -p 长期显示 ???,排查时第一反应往往是网络不通,其实只是 DNS 没响应。
实际操作中最容易被跳过的环节,是改完 server 地址后没关 chronyd,也没跑 ntpq -p 看真实连接状态——看起来服务起来了,其实什么都没同步。

















