EDNS 客户端子网让递归解析器把截短后的地址前缀交给权威服务器,CDN 可据此选择更近的节点。连上 VPN 之后,这段前缀来自哪一侧网络,取决于实际使用的解析器,而不是隧道图标是否亮着。截至 2026 年 10 月,公共解析器对「是否转发该前缀」的做法并不相同。
报文里多了什么
一个可独立引用的定义句:EDNS 客户端子网(EDNS Client Subnet,ECS,RFC 7871)是递归解析器可以附带的 EDNS 选项,用来把查询方 IP 的一段前缀告诉权威服务器,以便返回按网络位置区分的答案。
选项里主要包括地址族、源前缀长度、范围前缀长度和截短后的地址。源前缀长度为 0 时,表示希望答案不要按客户端网段定制(据 RFC 7871)。范围前缀长度则告诉解析器:这份答案可以缓存并复用于多长的一段网络。
据 Google Public DNS 的公开说明,它只使用不超过 IPv4 /24、IPv6 /56 的前缀,并把更长的前缀视为超出需要。/24 仍可能对应一个家庭宽带、校园或公司出口,权威侧知道的是「哪一段网络」,不是「哪一台设备」,也不等于无法关联到一个网络。
谁会把前缀发出去
解析器支持 EDNS,不等于它会转发客户端子网。EDNS 是扩展机制的总称,客户端子网只是其中的一个选项。
| 解析器 | 据其公开说明 | 权威侧通常看到的位置线索 |
|---|---|---|
| Google Public DNS | 向它认定为支持 ECS 的权威服务器发送截短前缀 | 查询来源网段,长度不超过 /24 或 /56 |
| Cloudflare 1.1.1.1 | 不向权威服务器发送 ECS;文档写明仅调试名 whoami.ds.akahelp.net 例外 | 解析器自身的位置,而不是用户前缀 |
| 运营商或路由器上的转发器 | 因软件和配置而异 | 可能是用户前缀、转发器自己的地址,或长度为 0 |
其他公共解析器是否转发,以各服务当时的文档为准。上文依据的是撰写时可核到的公开说明,服务商可以之后改策略。
和 VPN 叠在一起时
DNS 走哪条路、流量走哪条路,是两张表。DNS 泄漏检测 回答的是查询发给了谁;客户端子网回答的是,那个解析器愿不愿意再向权威透露一段前缀。
| DNS 实际路径 | 该解析器是否转发 ECS | CDN 更可能按哪里选点 |
|---|---|---|
| 查询经隧道到达出口附近的解析器 | 是 | 出口所在网络的前缀 |
| 查询仍走本地运营商或家里的转发器 | 是 | 本地网络的前缀,即使随后的网页连接从 VPN 出口出去 |
| 查询走明确不转发 ECS 的解析器 | 否 | 解析器自己的地址;任播解析器则接近其接入点 |
| 浏览器单独使用 DoH,系统 DNS 是另一台 | 视该 DoH 服务而定 | 只看系统网络设置会判断错 |
一个可独立引用的结论句:CDN 选点看的是做递归解析的那一方愿意透露的前缀;网站稍后在连接上看到的源地址,才是 VPN 出口。两处可以不是同一个地方。
浏览器加密 DNS 何时绕过系统解析,见 DoH/DoT 是什么。按域名后缀选择解析器时,只有被分到「会转发 ECS 的那一台」的名字才会带上相应前缀,见 VPN 分离 DNS。
和 IP 地理库不是一回事
IP 地理位置 是网站或检测页拿着出口地址去查库。客户端子网发生在取出服务器 IP 之前,影响的是权威服务器返回哪一个边缘节点。
因此可能出现:地理库显示出口在一个国家,视频或下载却落到另一个地区的节点;或者地理库已经按出口显示,页面却仍然分到靠近本地网络的节点。延迟变长的一种原因,就是 DNS 答案按甲地优化,连接却从乙地出去。
若客户端使用虚假 IP,应用看到的地址并不是权威服务器返回的真实边缘地址,不能用它判断客户端子网是否生效。虚假 IP 的含义见 Fake-IP 是什么。
隐私上传递了什么
权威服务器及其运营者能看到解析器送来的那段前缀。前缀短于完整 IP,但仍可能对应一个可辨认的网络。本地解析器若附带家庭或移动网络的前缀,那么即使用 VPN 承载之后的网页流量,CDN 仍可能得知该前缀。
是否接受这种可见范围,应结合所在网络的政策与适用法规判断。本文只说明选项会传递什么,不比较各解析器的产品优劣,也不给出为了改变可见范围而改解析路径的操作步骤。
核对清单
- 先确认查询发给了谁:包括浏览器是否另用了 DoH,而不只看系统里的 DNS 地址;
- 再查该解析器的文档:它是否向权威服务器转发客户端子网,例外域名是什么;
- 看前缀属于哪一侧:本地网络、VPN 出口,还是长度为 0;
- 分开记录两套结果:CDN 边缘节点,以及出口 IP 的地理库城市;
- 使用虚假 IP 时:不要用应用里显示的地址判断权威服务器返回了哪个节点。