HTTPS / SVCB 记录

SVCB/HTTPS 记录(RFC 9460)把「如何建立连接」也写进 DNS,可携带 ALPN、替代端口、IPv4/IPv6 提示、服务目标与 ECH 配置,影响是否用 HTTP/3、连哪个目标、是否尝试 ECH。

#type / concept #status / growing #tech / network #protocol / dns

[!info] related notes

HTTPS / SVCB 记录

一句话定义

SVCB(Service Binding,服务绑定) 与它的特化类型 HTTPS 记录(RFC 9460),让 DNS 不只回答「IP 是多少」,还能回答「如何建立连接」:支持哪些协议、用哪个端口、目标服务是谁、以及 ECH 配置是什么。

核心机制 / 工作原理

传统上浏览器只查 A/AAAA;现在它会额外查 anyrouter.top HTTPS

anyrouter.top.  HTTPS  1 .       alpn=h3,h2  ipv4hint=155.102.x.x  ech=...
anyrouter.top.  HTTPS  2 cdn.x.  alpn=h3

可携带的参数(SvcParam)包括:

参数作用
alpn支持的应用层协议,如 h2(HTTP/2)、h3(HTTP/3/QUIC)
port替代端口
ipv4hint / ipv6hint连接目标的地址提示,减少额外解析
target实际服务目标名(可不同于查询名)
echECH 配置,供建立加密 ClientHello 使用

为什么重要

这些信息会影响浏览器的连接决策:

是否使用 HTTP/3(h3)?
连接哪个目标(target)?
是否尝试 ECH(ech=...)?

所以现代网页访问不一定只查 A 和 AAAA

最小例子 / 最小场景

dig anyrouter.top HTTPS
dig anyrouter.top SVCB

若返回的 HTTPS 记录带了 alpn=h3ech=...,支持 ECH 的浏览器就会尝试用加密 SNI 建立 TLS(见 ech-encrypted-client-hello)。

边界与易混淆点

  • HTTPS 记录是 SVCB 的「针对 HTTP 的别名类型」,二者机制相同,只是 HTTPS 默认应用于 https:// 服务。
  • ech 参数只是配置分发渠道;真正加密 SNI 发生在 TLS 层(见 ech-encrypted-client-hello)。
  • 不是所有站点都部署了 HTTPS/SVCB;没有时浏览器退回传统 A/AAAA + 明文 SNI。
  • 在代理/DNS 分流场景里,若本地解析路径拿不到正确的 HTTPS 记录(例如被某个解析器过滤),可能导致无法启用 HTTP/3 或 ECH,表现为「能开但没走最优连接」。
  • 协议标准化(RFC 9460)≠ 全面部署;客户端、权威、网络三者都支持才算数。
创建于 2026/7/31 更新于 2026/7/31