修改 /etc/ntp.conf 中 upstream server 需注释所有原 server 行,添加可信国内源如 server ntp1.aliyun.com iburst,并确保 iburst 存在;改后必须重启 ntpd、停用 chronyd、放行 udp 123 端口,再通过 ntpq -pn 验证星号主源及 ntpstat 确认同步成功。

怎么改 /etc/ntp.conf 里的 upstream server
直接编辑配置文件,替换掉默认的公共池地址即可。别只删几行,要确认所有 server 行都被覆盖或注释干净,否则 ntpd 会偷偷连默认源。
- 用
sudo vi /etc/ntp.conf打开文件 - 把所有以
server开头的行(通常是0.centos.pool.ntp.org等)全部注释掉,加#前缀 - 添加你信任的国内源,比如阿里云:
server ntp1.aliyun.com iburst、server ntp2.aliyun.com iburst -
iburst必须带上——它让首次同步发 8 个包,大幅缩短拉齐时间
为什么改完不生效?常见卡点
改了配置不等于立刻同步,ntpd 是渐进式调时,而且默认启动后要等几分钟才真正开始校准。最容易被忽略的是服务没重启,或者 chronyd 还在抢端口。
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。
- 必须执行
sudo systemctl restart ntpd,不能只 reload - 检查
chronyd是否还在运行:systemctl is-active chronyd,如果是active,先停掉:sudo systemctl stop chronyd && sudo systemctl disable chronyd - 防火墙要放行 UDP 123:
sudo firewall-cmd --add-service=ntp --permanent && sudo firewall-cmd --reload
ntpq -pn 输出里没有星号(*)代表什么
输出中某一行 remote 字段前有 *,说明该 server 是当前主时间源;只有 + 或空格,说明还没选上、或网络不通、或 offset 太大被过滤了。
- 如果全是
?:ntpd 没监听到任何 server,检查网络连通性,用ping ntp1.aliyun.com和nc -u -z ntp1.aliyun.com 123验证 - 如果 reach 列是 0:表示完全没收到响应,大概率是防火墙拦截或 DNS 解析失败
- 如果 offset 绝对值 > 1000ms:ntpd 默认拒绝阶跃校正,此时需手动强制一次:
sudo ntpdate -u ntp1.aliyun.com(仅限首次或偏差极大时)
内网自建 NTP 服务器时 restrict 怎么配才安全
开放 restrict 不等于全放开,漏配会导致客户端无法连接,配错又可能暴露服务。关键不是“允许谁”,而是“禁止谁做啥”。
- 先关掉默认宽松策略:
restrict default kod nomodify notrap nopeer noquery - 再单独放行内网段:
restrict 192.168.10.0 mask 255.255.255.0 nomodify notrap—— 允许查询和同步,但不能修改配置、不能设 trap - 务必保留本地回环:
restrict 127.0.0.1和restrict ::1,否则ntpq本地诊断会失败 - 别写
restrict 0.0.0.0或restrict default,这是生产环境高危操作
ntpq -pn 和 ntpstat,看到 synchronized to NTP server 和带 * 的行才算真正落地。时间同步这事,慢是常态,急不得,但每一步都得踩实。










