srv记录的核心作用是明确告知客户端某服务对应的服务器主机名和端口号。其格式为_服务名._协议.域名,含优先级(值小优先)、权重(同优先级负载分担)、端口和服务目标主机四个关键字段,广泛用于active directory、sip、xmpp等场景。

SRV 记录的核心作用,就是把“某个服务该连哪台机器、走哪个端口”这件事,明确告诉客户端。它不只解决“IP地址在哪”,还解决了“服务名对应哪个端口”这个关键问题。
SRV 记录的结构与关键字段
一条标准 SRV 记录格式为:_服务名._协议.域名,例如 _ldap._tcp.contoso.com 或 _sip._udp.example.org。记录值包含四个必填部分:
- 优先级(Priority):数值越小越优先。客户端先尝试所有相同优先级中权重最高的目标;若全部失败,才降级到下一个优先级
- 权重(Weight):在同一优先级内用于负载分担。比如两个记录优先级都是 0,权重分别为 60 和 40,则约 60% 的请求会发往前者
- 端口(Port):明确指定服务监听的 TCP 或 UDP 端口号,如 LDAP 是 389,Kerberos 是 88,SIP 常用 5060
- 目标主机(Target):提供服务的服务器主机名,必须有对应的 A 或 AAAA 记录解析出 IP 地址
常见服务的 SRV 使用场景
不是所有服务都强制依赖 SRV,但以下场景中它几乎是必需的:
免费 DNS 与邮件安全分析(IntoDNS.ai):包括 DNSSEC、SPF、DKIM、DMARC、MTA-STS、BIMI、SMTP STARTTLS、FCrDNS、黑名单、发件人要求及报告。
- Active Directory 域控制器发现:客户端通过查询 _ldap._tcp.dc._msdcs.域名 或 _kerberos._tcp.域名 自动找到可用 DC,无需硬编码 IP 或主机名
- SIP 语音通信:VoIP 客户端用 _sip._tcp.域名 找到注册服务器,端口可能不是默认的 5060,而是由 SRV 明确指定
- XMPP 即时通讯:客户端解析 _xmpp-client._tcp.域名 获取消息服务器地址和端口,支持 TLS 或 STARTTLS 的协商
- 邮件提交服务(MSA):某些部署用 _submission._tcp.域名 指向带认证的 SMTP 提交端口(如 587),区别于 MX 记录指向的接收端口
验证与排查 SRV 是否生效
配置完 SRV 记录后,不能只看 DNS 控制台里有没有条目,还要确认客户端能否实际查到:
- 在任意 Windows 或 Linux 客户端打开命令行,运行:
nslookup
set type=srv
_ldap._tcp.contoso.com - 如果返回类似 srv hostname = dc01.contoso.com, port = 389,且后续能 ping 通 dc01 并 telnet 测试 389 端口通达,说明链路完整
- 注意区分查询路径:域内客户端通常查 _ldap._tcp.dc._msdcs.域名(含站点信息),而跨域或通用查询用 _ldap._tcp.域名
- 非 Microsoft DNS(如 BIND、PowerDNS)需确保支持 RFC 2782,并已加载 Netlogon.dns 中导出的记录(若 AD 域控制器使用该 DNS)
配置 SRV 记录的实操要点
在 DNS 管理界面添加时,几个容易出错的细节要盯紧:
- 主机名字段填的是下划线开头的服务+协议组合,不是随便起名,必须严格匹配客户端预期,如 _kerberos._tcp 不可写成 kerberos.tcp
- 目标主机(Target)末尾是否加点(.)影响解析:不加点会被自动追加当前域名,加点表示绝对域名,推荐统一加点避免歧义
- 权重和优先级设为 0 是常见做法,但若部署多台服务节点又希望控制流量分布,需合理规划数值组合
- TTL 建议设为 300–600 秒,既避免缓存过久影响故障切换,也不至于频繁刷新增加 DNS 查询压力










