网络诊断工具

SRV 查询

服务位置记录

什么是 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 记录,否则客户端将找不到它。

常见问题

_service._proto.domain 命名格式是什么意思?

这个模式按 SRV 记录所描述的服务和协议来命名它。_service 是服务标签(如 _sip 或 _ldap),_proto 是传输方式(_tcp 或 _udp),domain 是你的域名。例如,_sip._tcp.example.com 公布通过 TCP 的 SIP。开头的下划线让这些标签不与普通主机名冲突。

SRV 记录中的优先级和权重如何工作?

优先级和权重控制客户端选择哪个目标。优先级的工作方式与 MX 记录相同:客户端先尝试优先级最低的目标,再回退到更高的数字。在共享同一优先级的目标之间,权重设定每个目标接收的流量比例,因此权重越高吸引的连接越多。二者结合即可实现故障转移和负载均衡。

SRV 记录和 A 记录有什么区别?

A 记录把主机名映射到一个 IP 地址,而 SRV 记录额外指定端口,并为某项命名服务增加优先级和权重。SRV 让客户端能发现服务运行在何处、在哪个端口,以及如何均衡负载,而单纯的 A 记录无法表达这些。SRV 目标仍依赖 A 记录来解析。

哪些服务常用 SRV 记录?

SIP 和 VoIP 系统、XMPP 聊天、LDAP 和 Active Directory、Kerberos、Microsoft Teams 和 Skype for Business,乃至 Minecraft 服务器都常用 SRV 记录。任何受益于自动服务发现、而无需硬编码主机和端口设置的协议都是候选。客户端必须被编写为查询相应的 _service._proto 名称。

我的 SRV 查询为什么没有返回结果?

SRV 结果为空通常意味着在那个确切的 _service._proto.domain 名称下没有发布记录。检查服务标签、协议和域名拼写是否正确,包括下划线。该服务可能使用了与预期不同的名称,或记录干脆不存在。请确认客户端应用所要求的精确名称。

相关工具

Deutsch | English | Español | Français | Italiano | Português | Русский | Українська | 日本語 | 简体中文 | 한국어