SRV记录的核心作用是将“服务名+协议+域名”映射到具体主机、端口、权重和优先级,支持服务发现、负载均衡与高可用;其格式为_service._proto.domain,含Priority、Weight、Port、Target四字段。

SRV 记录的核心作用,就是把“服务名 + 协议 + 域名”映射到具体的主机、端口、权重和优先级。它不是简单地指向 IP,而是告诉客户端:“你要连的 easytier 服务,用 TCP 协议,去连 et2.ie12test.dynv6.net 的 11010 端口”。
SRV 记录的标准格式与字段含义
SRV 记录的完整域名格式为:_服务名._协议.域名。例如:
- _easytier._tcp.et2.ie12test.dynv6.net
- _sip._tls.example.com
- _xmpp-client._tcp.chat.example.org
每条 SRV 记录包含四个必填字段(按顺序):
- 优先级(Priority):数值越小越优先。多个记录时,客户端先尝试优先级最低的组。
- 权重(Weight):同优先级内用于负载均衡。值越大,被选中的概率越高(需配合随机或加权算法)。
- 端口(Port):服务实际监听的端口号,如 80、443、11010、5060 等。
- 目标主机(Target):提供该服务的主机名,必须是带结尾点的完整域名(如 et2.ie12test.dynv6.net.),且该主机名本身需有 A 或 AAAA 记录。
在 DNS 控制台中添加 SRV 记录的操作要点
不同 DNS 服务商界面略有差异,但关键字段一致。以常见配置为例:
- 服务名:填 easytier(不带下划线)
- 协议:填 tcp(或 udp、ws、wss、wg)
- 域名:填 et2.ie12test.dynv6.net
- 优先级:可填 10(单节点时无意义,但必须填)
- 权重:可填 100(单节点时也无意义,但必须填)
- 端口:填你服务实际监听的端口,如 11010
- 目标主机:填 et2.ie12test.dynv6.net.(注意末尾的点,表示绝对域名)
最终生成的完整记录文本形式类似:
_easytier._tcp.et2.ie12test.dynv6.net. 3600 IN SRV 10 100 11010 et2.ie12test.dynv6.net.APISIX 如何利用 SRV 记录做服务发现
APISIX 的 discovery.dns 模块会主动查询 SRV 记录,并将结果自动转换为上游节点列表:
- 每条 SRV 记录对应一个上游节点:Target:Port(如 et2.ie12test.dynv6.net.:11010)
- 权重字段会映射为 APISIX 节点的
weight值 - 优先级字段目前不参与调度,仅用于兼容性
- 若同时存在 A/AAAA 和 SRV 记录,可通过
order配置项控制解析顺序(如设为["SRV", "A"])
这样,APISIX 就能动态获取带端口的服务地址,无需在 Upstream 中硬编码端口,真正实现“服务即配置”。

















