🌐 KMS DNS SRV 记录配置

批量激活服务 KMS · 第 7 篇 · 适用于 Windows Server 2019 / 2022 / 2025

📑 目录

  1. 1. DNS SRV 记录概述
  2. 2. KMS SRV 记录格式
  3. 3. 自动发布 SRV 记录
  4. 4. 手动创建 SRV 记录
  5. 5. 验证 SRV 记录
  6. 6. 常见问题

1. DNS SRV 记录概述

SRV 记录(Service Record)是 DNS 记录的一种,用于定义提供特定服务的服务器地址和端口。

KMS 客户端通过查询 DNS 中的 _vlmcs._tcp SRV 记录来 自动发现 KMS 主机,无需手动配置 KMS 服务器地址。

💡 为什么需要 SRV 记录
  • 自动发现 — 客户端无需手动配置 KMS 服务器地址
  • 高可用 — 可以配置多个 KMS 主机(优先级和权重)
  • 简化管理 — 更换 KMS 主机时只需更新 DNS 记录

2. KMS SRV 记录格式

KMS 使用的 SRV 记录格式:

字段说明
服务_vlmcsVolume Licensing Management Services
协议_tcp使用 TCP 协议
域名iehang.cn你的域名
完整名称_vlmcs._tcp.iehang.cnSRV 记录完整名称
目标服务器kms.iehang.cnKMS 主机 FQDN
端口1688KMS 默认端口
优先级0数字越小优先级越高
权重0负载均衡权重(相同优先级时)
⚠️ 注意

SRV 记录名称必须是 _vlmcs._tcp,否则 KMS 客户端无法自动发现。

3. 自动发布 SRV 记录

KMS 主机激活后,会 自动尝试 在 DNS 中发布 SRV 记录。

CMD - 启用 DNS 自动发布
REM 在 KMS 主机上以管理员身份运行
REM 启用 DNS 发布(默认已启用)
slmgr.vbs /dns

REM 验证 DNS 发布状态
slmgr.vbs /dlv

REM 输出应显示:
REM DNS publishing enabled: Yes

REM 如果显示 No,运行以下命令启用:
slmgr.vbs /dns1

REM 禁用 DNS 发布(如果需要)
slmgr.vbs /dns0

3.1 自动发布失败的原因

PowerShell - 检查 DNS 动态更新
# 在 DNS 服务器(通常是域控)上运行
Get-DnsServerZone -Name "iehang.cn" | Select-Object "DynamicUpdate"

# 如果显示 "None",需要启用动态更新:
Set-DnsServerZone -Name "iehang.cn" -DynamicUpdate "Secure"

# 也可以在 DNS 管理器中操作:
# 右键域名 → 属性 → 动态更新 → 选择"仅安全"或"非安全和安全"

4. 手动创建 SRV 记录

如果自动发布失败,可以手动创建 SRV 记录。

1

打开 DNS 管理器dnsmgmt.msc

2

展开服务器 → 展开 正向查找区域 → 右键域名(iehang.cn) → 其他新记录

3

滚动到最下方,选择 服务位置(SRV)创建记录

4

填写信息:

  • 服务_vlmcs
  • 协议_tcp
  • 优先级0
  • 权重0
  • 端口1688
  • 提供此服务的主机kms.iehang.cn
5

点击 确定完成

PowerShell - 创建 SRV 记录
# 在 DNS 服务器(域控)上运行
Add-DnsServerResourceRecord -Srv `
    -Name "_vlmcs._tcp" `
    -ZoneName "iehang.cn" `
    -DomainName "kms.iehang.cn." `
    -Port 1688 `
    -Priority 0 `
    -Weight 0

# 验证记录创建成功
Get-DnsServerResourceRecord -Name "_vlmcs._tcp" -ZoneName "iehang.cn"
💡 提示

如果有 多个 KMS 主机,可以创建多个 SRV 记录,通过 优先级权重 实现高可用和负载均衡。

5. 验证 SRV 记录

创建 SRV 记录后,需要验证客户端能否正确查询。

CMD - 验证 SRV 记录
REM 在客户端上运行
REM 方法 1:使用 nslookup
nslookup -type=srv _vlmcs._tcp.iehang.cn

REM 输出示例:
REM Server:  UnKnown
REM Address:  192.168.10.254
REM _vlmcs._tcp.iehang.cn       SRV service location:
REM priority       = 0
REM weight         = 0
REM port           = 1688
REM svr hostname   = kms.iehang.cn

REM 方法 2:使用 PowerShell
Resolve-DnsName -Name "_vlmcs._tcp.iehang.cn" -Type "SRV"

5.1 测试 KMS 主机连通性

PowerShell - 测试 KMS 主机
# 测试 KMS 主机是否可达
Test-NetConnection -ComputerName "kms.iehang.cn" -Port 1688

# 输出应显示:
# ComputerName     : kms.iehang.cn
# RemoteAddress    : 192.168.10.254
# RemotePort       : 1688
# InterfaceAlias   : Ethernet0
# SourceAddress    : 192.168.10.10
# TcpTestSucceeded : True

6. 常见问题

Q1:客户端无法自动发现 KMS 主机

排查步骤:

  1. 使用 nslookup -type=srv _vlmcs._tcp.iehang.cn 验证 SRV 记录是否存在
  2. 检查客户端 DNS 设置(应指向 DNS 服务器,通常是域控)
  3. 检查 KMS 主机是否启用了 DNS 发布(slmgr.vbs /dlv
  4. 如果 SRV 记录不存在,手动创建(参见第 4 节)
Q2:SRV 记录自动发布失败

解决方法:

  1. 检查 DNS 服务器是否允许动态更新(设置为"仅安全"或"非安全和安全")
  2. 检查 KMS 主机是否有更新 DNS 记录的权限(通常是域计算机账户)
  3. 手动创建 SRV 记录(参见第 4 节)
  4. 在 KMS 主机上运行 ipconfig /registerdns 重新注册 DNS 记录
Q3:多个 KMS 主机如何实现高可用?

创建 多个 SRV 记录,通过 优先级权重 控制流量:

  • 优先级:数字越小优先级越高(0 最高)
  • 权重:相同优先级时,按权重比例分配流量

示例:

  • KMS1(主):优先级 0,权重 10
  • KMS2(备):优先级 10,权重 10

客户端优先连接 KMS1,如果 KMS1 不可用,自动切换到 KMS2。