内网使用HTTP 进行服务器时间同步(适用于 NTP 被阻断且无法访问公网的环境)

发布时间:2026/10/8 23:08:50
内网使用HTTP 进行服务器时间同步(适用于 NTP 被阻断且无法访问公网的环境) 1. 方案背景与适用场景1.1 背景服务器处于内网隔离环境无法访问公网yum 无法使用、DNS 解析公网域名失败。标准 NTP 协议UDP 123被防火墙/安全设备深度检测DPI拦截ntpdate -q 返回 stratum 0chronyc sources 显示 ^? 不可达。内网中存在一台时间准确且开放 HTTP 服务的服务器如 Nginx可作为授时源。1.2 适用条件目标服务器能 TCP 访问 授时源服务器的某个 HTTP 端口如 10145。授时源服务器自身时间准确已通过 NTP 或手动校准。目标服务器具备基本命令curl、date、bash、crontab。1.3 方案原理简述通过 curl 获取 Nginx 响应头中的 Date 字段GMT 时间利用 date -d 解析并转换为时间戳设置系统时钟最后写入硬件时钟RTC。整个过程由 crond 定时触发实现长期自动校准。2. 服务端配置授时源 Nginx 服务器2.1 前提确保授时源服务器自身时间准确在 Nginx 服务器上执行以下命令确认时间同步状态date # 查看当前系统时间 chronyc tracking # 检查 NTP 同步状态期望Leap status NormalStratum 0若未配置 NTP需先手动校准或配置chronyd2.2 配置 Nginx 时间接口编辑 Nginx 配置文件如/etc/nginx/nginx.conf或/etc/nginx/conf.d/下的某个文件在需要监听的 server 块中添加如下 locationserver { listen 10145; # 根据实际端口调整 server_name _; location /time { return 200 OK\n; # 返回任意内容关键在响应头中的 Date 字段 } }说明Nginx 默认会在所有响应中自动添加Date头return 200足以触发该行为无需额外配置。2.3 检查配置并重载 Nginxnginx -t # 检查配置文件语法 nginx -s reload # 重载配置2.4 验证服务端接口在 Nginx 服务器本地执行curl -I http://127.0.0.1:10145/time输出中包含HTTP/1.1 200 OK Server: nginx/... Date: Mon, 29 Jun 2026 03:43:25 GMT ...3. 客户端配置需要同步时间的服务器3.1 创建时间同步脚本创建脚本文件/usr/local/bin/sync_time.sh#!/bin/bash # 从内网 Nginx 获取时间并同步系统时钟 # 授时源地址根据实际情况修改 IP 和端口 URLhttp://192.168.247.54:10145/time # 提取响应头中的 Date 字段 DATE_HEADER$(curl -I -s $URL | grep -i ^date: | sed s/^[Dd][Aa][Tt][Ee]: //) if [ -n $DATE_HEADER ]; then # 将 GMT 时间转换为时间戳date -d 会自动识别时区 TIMESTAMP$(date -d $DATE_HEADER %s 2/dev/null) if [ -n $TIMESTAMP ]; then # 设置系统时间 date -s $TIMESTAMP /dev/null 21 echo $(date %Y-%m-%d %H:%M:%S) - Time synced successfully else echo $(date %Y-%m-%d %H:%M:%S) - Failed to parse date: $DATE_HEADER fi else echo $(date %Y-%m-%d %H:%M:%S) - Failed to get Date header from $URL fi3.2 赋予执行权限并手动测试chmod x /usr/local/bin/sync_time.sh /usr/local/bin/sync_time.sh date # 确认系统时间已更新为正确北京时间3.3 固化到硬件时钟防止重启跳变hwclock -w hwclock -r # 确认硬件时钟已更新3.4 配置定时任务长期自动同步编辑当前用户的 crontab添加以下行每 30 分钟同步一次成功后再写入硬件时钟crontab -e */30 * * * * /usr/local/bin/sync_time.sh /sbin/hwclock -w保存退出后crond 会自动加载新任务无需重启服务。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询