凌峰创科服务平台

Windows如何配置NTP时间服务器?

Windows 从 Windows 2000 开始就内置了 NTP 客户端功能,可以用来同步系统时间,从 Windows Vista 和 Windows Server 2008 开始,NTP 客户端功能得到了显著增强,并成为默认和推荐的时间同步方式。

Windows如何配置NTP时间服务器?-图1
(图片来源网络,侵删)

核心概念:Windows 中的 NTP 角色

在 Windows 环境中,一个系统可以扮演两种角色:

  1. NTP 客户端

    • 作用:从指定的 NTP 服务器获取时间,并同步本地系统时钟。
    • 几乎所有 Windows 版本(包括 Windows 10, 11, Server 2025, 2025, 2025 等)都默认是 NTP 客户端,并自动配置为从 time.windows.com 同步时间。
  2. NTP 服务器

    • 作用:向网络中的其他客户端设备提供时间同步服务。
    • 不是所有 Windows 版本都支持,通常只有 Windows Server 版本(如 Windows Server 2012 及更高版本)才能配置为 NTP 服务器,Windows 10/11 家庭版和专业版不能配置为 NTP 服务器。

配置 Windows 作为 NTP 客户端(同步时间)

这是最常见的需求,确保你的计算机时间准确。

Windows如何配置NTP时间服务器?-图2
(图片来源网络,侵删)

使用图形界面(最简单)

  1. 打开设置:点击“开始”菜单,选择“设置”(齿轮图标)。
  2. 进入时间和语言:在设置窗口中,选择“时间和语言”。
  3. 调整日期和时间
    • 确保“自动设置时间”开关是 开启 状态。
    • 确保“自动设置时区”开关是 开启 状态。
  4. 更改设置(可选):点击“其他日期、时间和区域设置”。
  5. 打开日期和时间:在弹出的窗口中,点击“日期和时间”。
  6. 更改设置:点击“更改日期和时间...”,然后点击“Internet 时间”选项卡。
  7. 更改设置:点击“更改设置...”按钮。
  8. 配置服务器
    • 勾选“与 Internet 时间服务器同步”。
    • 在服务器地址框中,输入你想要使用的 NTP 服务器地址。
    • 公共 NTP 服务器推荐
      • time.windows.com (微软官方)
      • time.nist.gov (美国国家标准与技术研究院)
      • pool.ntp.org (这是一个全球 NTP 服务器池,会自动分配最近的节点)
    • 点击“立即更新”可以手动执行一次同步。
    • 点击“确定”保存设置。

使用命令行(推荐,功能更强大)

Windows 的 w32tm 命令是管理时间同步的核心工具。

查看当前时间同步状态

w32tm /query /status

输出会显示当前时间源、同步状态、偏移量等信息。

手动同步一次时间

Windows如何配置NTP时间服务器?-图3
(图片来源网络,侵删)
w32tm /resync

配置 NTP 服务器(永久设置)

这是最关键的步骤,它会将你的客户端配置为从指定的服务器持续同步时间。

# 将 NTP 服务器设置为 pool.ntp.org
w32tm /config /syncfromflags:manual /manualpeerlist:"pool.ntp.org" /update

参数解释:

  • /config: 表示要修改配置。
  • /syncfromflags:manual: 指定同步来源标志为“手动”,即使用后面 /manualpeerlist 中指定的服务器列表。
  • /manualpeerlist:"pool.ntp.org": 指定 NTP 服务器列表,如果多个服务器,用空格或逗号隔开,"time.windows.com,time.nist.gov"
  • /update: 非常重要! 修改配置后必须使用此参数让服务重新加载配置,否则设置不会生效。

查看配置

w32tm /query /configuration

启动或重新启动 Windows Time 服务

时间同步是由名为 "Windows Time" 的后台服务执行的,如果服务未运行,同步将不会发生。

# 检查服务状态
sc query w32time
# 启动服务
net start w32time
# 或重新启动服务
net stop w32time && net start w32time

配置 Windows Server 作为 NTP 服务器

如果你有一台 Windows Server,并希望让它成为局域网内其他设备(如其他服务器、工作站、网络设备)的时间源,可以按以下步骤操作。

前提条件

  • 必须是 Windows Server 版本。
  • 需要让服务器先从一个可靠的公共 NTP 服务器同步好时间,否则它会给整个网络提供错误的时间。

配置步骤

  1. 以管理员身份打开 PowerShell 或命令提示符

  2. 配置 NTP 客户端(服务器自身先同步时间)

    这一步和上面客户端配置一样,确保服务器自身时间准确。

    # 设置服务器从 pool.ntp.org 同步
    w32tm /config /syncfromflags:manual /manualpeerlist:"pool.ntp.gov" /update
    net stop w32time && net start w32time
  3. 启用 NTP 服务器角色

    在 PowerShell 中执行以下命令:

    w32tm /config /reliable:yes /update

    关键参数

    • /reliable:yes: 这个参数告诉局域网内的其他客户端,这台服务器是一个可靠的时间源,默认情况下,只有域控制器(DC)会被标记为可靠源,手动设置此参数后,其他客户端(如果配置正确)就会选择它作为同步源。
  4. 验证 NTP 服务器是否正在运行

    你可以查看 Windows Time 服务的配置,确认 NtpServer 项是否已自动填入。

    w32tm /query /configuration

    你会看到类似 NtpServer: (Local) 的设置,这表示它已经准备好向其他客户端提供服务。

  5. 配置防火墙

    Windows 服务器上的防火墙默认会阻止 NTP 请求,你需要为“域”或“专用”网络配置防火墙规则,允许 NTP 流量(UDP 端口 123)。

    • 通过 PowerShell 启用防火墙规则(推荐)

      # 启用域配置文件的防火墙规则
      Enable-NetFirewallRule -DisplayGroup "Windows Time (Domain Profile)"
      # 启用专用配置文件的防火墙规则
      Enable-NetFirewallRule -DisplayGroup "Windows Time (Private Profile)"
    • 通过图形界面

      1. 打开“高级安全 Windows Defender 防火墙”。
      2. 在左侧选择“高级安全 Windows Defender 防火墙属性”。
      3. 分别在“域配置文件”和“专用配置文件”选项卡中,确保“入站连接”规则设置为“允许”。
      4. 在“入站规则”中,找到“Windows Time (Domain/Private)”规则,确保其已启用。

常见问题排查

  1. w32tm /resync 失败,提示“RPC 服务器不可用”

    • 原因Windows Time 服务未运行。
    • 解决:执行 net start w32time 启动服务。
  2. 时间同步不准确,或者无法同步

    • 原因
      • 防火墙阻止了 UDP 123 端口。
      • NTP 服务器地址错误或不可达。
      • 系统时间与服务器时间偏差过大(超过 15 分钟),导致 NTP 同步被拒绝,可以先手动调整到大致正确的时间,再尝试同步。
    • 解决:检查防火墙设置,使用 pingtracert 测试 NTP 服务器连通性。
  3. 如何让客户端优先使用内网的 NTP 服务器?

    • 方法:在内网所有客户端(包括工作站和服务器)上,使用 w32tm /config 命令将 NTP 服务器指向你的内网服务器地址,
      w32tm /config /syncfromflags:manual /manualpeerlist:"ntp.yourdomain.com,0x8" /update

      0x8 是一个特殊标志,表示这是一个可靠的时间源(PDC 模拟器或手动标记为可靠的服务器)。

任务 推荐工具 关键命令
检查当前同步状态 命令行 w32tm /query /status
手动同步一次 命令行 w32tm /resync
永久配置 NTP 客户端 命令行 w32tm /config /syncfromflags:manual /manualpeerlist:"pool.ntp.org" /update
配置 Windows Server 为 NTP 服务器 命令行 w32tm /config /reliable:yes /update
启用防火墙规则 PowerShell Enable-NetFirewallRule -DisplayGroup "Windows Time (Private Profile)"

对于绝大多数用户,只需确保“设置”中的“自动设置时间”是开启的即可,对于需要精细控制的管理员,w32tm 命令是必不可少的工具。

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