凌峰创科服务平台

windows 搭建时间服务器

  1. 将当前计算机配置为客户端,从互联网上同步时间(最常见的需求)。
  2. 将当前计算机配置为内部网络的时间服务器,为其他设备提供时间同步(企业级或局域网需求)。

下面我将详细介绍这两种情况的操作步骤。

windows 搭建时间服务器-图1
(图片来源网络,侵删)

配置 Windows 客户端同步时间(默认情况)

绝大多数情况下,你只需要确保你的 Windows 电脑能自动同步时间即可,Windows 默认已经开启了这个功能,但我们可以手动检查和优化配置。

检查和手动同步时间(图形界面)

这是最简单直接的方法。

  1. 打开设置:点击“开始”菜单,选择“设置”(齿轮图标)。
  2. 进入时间和语言:在设置窗口中,选择“时间和语言”。
  3. 调整日期和时间
    • 确保“自动设置时间”的开关是 开启 状态。
    • 确保“自动设置时区”的开关是 开启 状态。
  4. 立即同步
    • 点击“其他日期、时间和区域设置”。
    • 在弹出的“控制面板”窗口中,点击“日期和时间”。
    • 在“日期和时间”窗口中,切换到“Internet 时间”选项卡。
    • 点击“更改设置...”按钮(可能需要管理员权限)。
    • 点击“立即更新”按钮,手动同步一次时间。
    • (可选)点击“更改设置...”后,可以在“服务器”下拉框中选择一个更可靠的时间服务器,
      • time.windows.com (微软官方)
      • time.nist.gov (美国国家标准与技术研究院)
      • pool.ntp.org (公共NTP服务器池,推荐)
    • 点击“确定”保存。

检查和配置时间服务(命令行)

对于需要更精细控制的管理员,可以使用命令提示符(CMD)或 PowerShell。

  1. 以管理员身份运行命令提示符:在开始菜单搜索 cmd,右键点击“命令提示符”,选择“以管理员身份运行”。

    windows 搭建时间服务器-图2
    (图片来源网络,侵删)
  2. 检查 Windows 时间服务状态

    w32tm /query /status
    • 如果服务正在运行,你会看到类似 源: time.windows.com, 级别: Sync, 精度: 64ms, 滞后: 100ms, 标志: 0x0 (0) 的输出。
  3. 查看时间服务配置

    w32tm /query /configuration

    这会显示当前的时间服务配置,包括同步间隔、最大误差等。

  4. 手动同步时间

    windows 搭建时间服务器-图3
    (图片来源网络,侵删)
    w32tm /resync

    这会强制计算机立即与配置的时间源进行同步。

  5. 更改时间源

    w32tm /config /syncfromflags:manual /manualpeerlist:"time.nist.gov,0x8"
    • syncfromflags:manual:表示手动指定时间源。
    • manualpeerlist:"...":指定一个或多个时间服务器地址,多个服务器用逗号分隔,0x8 表示该服务器是可靠源。
    • 执行后需要重启时间服务使配置生效
      w32tm /resync /force

      或者

      net stop w32time && net start w32time

将 Windows 配置为局域网内的时间服务器

如果你想在局域网内(例如公司、家庭网络)搭建一台权威的时间服务器,让其他电脑、手机、路由器等都从它同步时间,可以按照以下步骤操作。

前提条件

  • 一台稳定运行的 Windows 服务器或专业版/企业版 Windows
  • 该计算机的系统时间本身必须非常准确(建议先从互联网同步好)。
  • 在 Windows 防火墙中开放 NTP 服务的 UDP 123 端口。

操作步骤

第1步:配置 Windows 时间服务为“NTP 服务器”

  1. 以管理员身份运行 PowerShell 或 CMD

  2. 修改注册表配置: 这是核心步骤,需要将 Windows 时间服务从“客户端模式”切换到“服务器/混合模式”。

    打开注册表编辑器 (regedit),导航到以下路径: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config

    在右侧窗格中,找到并修改以下两个值(如果不存在,需要新建):

    • AnnounceFlags

      • 作用:控制计算机是否将自己宣布为时间源。
      • 修改方法:双击 AnnounceFlags,将其“基数”选择为“十六进制”,然后修改“值数据”。
        • 0x5:适用于域环境,表示此计算机是可靠的时间源,可以被域内客户端同步。
        • 0xA:适用于工作组环境,强制此计算机成为可靠的时间源,可以被所有客户端同步(推荐)。
        • 0x0:客户端模式,不作为时间源。
    • MaxPosPhaseCorrectionMaxNegPhaseCorrection

      • 作用:定义了时间服务在一次同步中允许的最大时间调整量(以秒为单位),如果时间差超过这个值,服务会拒绝同步并记录事件日志。
      • 修改方法:为了确保服务器能被同步,可以将这两个值都设置为一个较大的数,3600(1小时),或者直接删除这两个键,让系统使用默认值。

    示例:我们将其配置为工作组环境下的时间服务器。

    • AnnounceFlags 的值修改为 a
    • 确保 MaxPosPhaseCorrectionMaxNegPhaseCorrection 的值足够大或不存在。

第2步:配置时间同步方式

现在需要告诉这台服务器它自己的时间源是谁(通常还是互联网),以及如何向客户端提供时间。

  1. 打开注册表编辑器,导航到: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer

  2. 修改 Enabled

    • 双击 Enabled,将“值数据”从 0 改为 1,然后点击“确定”,这表示启用 NTP 服务器功能。
  3. (可选但推荐)修改 Enabled 的基数

    • 双击 Enabled,将“基数”从“十六进制”改为“十进制”,确保“值数据”显示为 1

第3步:配置客户端模式

为了让这台服务器本身能保持准确的时间,需要配置它作为客户端从外部同步。

  1. 打开注册表编辑器,导航到: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config

  2. 修改 LocalClockDispersion

    • 双击 LocalClockDispersion,将“值数据”修改为 0,这个值表示本地时钟的离散度(或称误差),数值越小表示时钟越可靠。
  3. 打开注册表编辑器,导航到: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters

  4. 修改 Type

    • 双击 Type,将“值数据”修改为 NTP,这指定了此计算机的运行模式。

第4步:在防火墙中允许入站连接

为了让其他设备能访问你的时间服务器,必须开放 UDP 123 端口。

  1. 打开“控制面板” -> “Windows Defender 防火墙” -> “高级设置”。
  2. 在左侧点击“入站规则”。
  3. 在右侧点击“新建规则...”。
  4. 选择“端口”,点击“下一步”。
  5. 选择“UDP”,在“特定本地端口”中输入 123,点击“下一步”。
  6. 选择“允许连接”,点击“下一步”。
  7. 勾选“域”、“专用”、“公用”(根据你的网络环境选择,通常勾选“域”和“专用”即可),点击“下一步”。
  8. 为规则命名一个易于识别的名字,NTP Server Inbound”,点击“完成”。

第5步:重启 Windows 时间服务

所有配置修改完毕后,必须重启服务才能生效。

在 PowerShell 或 CMD(管理员)中执行:

net stop w32time
net start w32time

第6步:验证时间服务器是否工作

  1. 在服务器上验证

    w32tm /query /status

    你应该会看到源指向你配置的外部服务器(如 time.windows.com)。

  2. 在客户端电脑上验证: 假设你的服务器 IP 地址是 168.1.100

    w32tm /query /status /computer:192.168.1.100

    如果成功,你会显示该服务器的状态信息。

    或者,在客户端电脑上尝试手动同步:

    w32tm /config /syncfromflags:manual /manualpeerlist:"192.168.1.100,0x8"
    w32tm /resync
  3. 使用专业工具验证: 可以在客户端电脑上下载安装 NTP.org 官方的 NTPQ.exe 工具。

    ntpq -p 192.168.1.100

    如果一切正常,你会看到服务器 168.1.100 的信息,包括 refid(它的上游时间源)、st(stratum,层级)、when(多久前同步过)、poll(同步间隔)等。


场景 目标 核心命令/操作
客户端同步 从互联网同步时间 设置 -> 时间和语言 -> 自动开启
w32tm /resync
w32tm /config /syncfromflags:manual /manualpeerlist:"server"
搭建时间服务器 为局域网提供时间 修改注册表 AnnounceFlags=0xANtpServer\Enabled=1
修改注册表 Config\Type=NTP
开放防火墙 UDP 123 端口
net stop w32time && net start w32time
客户端使用 w32tm /config /manualpeerlist:"server_ip"

通过以上步骤,你就可以轻松地在 Windows 系统上配置时间同步服务,无论是作为客户端还是作为服务器,都能满足你的需求。

分享:
扫描分享到社交APP
上一篇
下一篇