什么是 SRV 记录?
SRV(服务,Service)记录公布某项特定服务——如 SIP、XMPP、LDAP 或 Microsoft autodiscover——的主机名和端口,并附带用于负载均衡的优先级和权重。与 A 记录不同,它不仅告诉客户端服务位于何处,还告诉它在哪个端口上,从而让应用程序无需硬编码配置即可定位服务。使用 _service._proto.domain 形式查询它们。
SRV 记录格式如何工作
SRV 记录以一种独特的模式命名:_service._proto.domain,例如 _sip._tcp.example.com。下划线可防止与普通主机名冲突。记录数据持有四个值:优先级、权重、端口和目标。优先级的工作方式与 MX 相同——数字越小越先尝试。权重在同一优先级的目标之间分配负载,权重越高获得的流量按比例越多。端口是服务监听的 TCP 或 UDP 端口,目标是提供该服务的主机名,它必须拥有自身的 A 或 AAAA 记录。
如何解读你的 SRV 查询结果
IPeek 为你查询的服务名返回每条 SRV 记录的优先级、权重、端口和目标主机。先看优先级:客户端先用优先级最低的目标,然后才回退到更高的。在优先级相同的目标之间,权重决定每个目标接收的流量份额。确认端口与你预期的服务一致——SIP 为 5060,LDAP 为 389,许多 autodiscover 配置为 443。检查每个目标是否解析到有效主机。结果为空意味着该域名未在该名称下公布此服务。
何时需要 SRV 记录
每当客户端必须自动发现服务、而非依赖固定设置时,SRV 记录就很重要。Microsoft Teams、Skype for Business 和 SIP 提供商用它们来定位语音和在线状态服务器。XMPP 聊天、LDAP 目录查询、Minecraft 服务器和 Kerberos 都依赖 SRV 发现。最大的优势是灵活:把服务迁到新主机或新端口,或将其分散到多台服务器上,客户端都会跟随 SRV 记录而无需重新配置。如果某项服务要求特定的 _service._proto 名称,请发布一条匹配的 SRV 记录,否则客户端将找不到它。