2026-10-13 · 隐私防护 · 阅读约 7 分钟
三类泄漏防护:DNS、IPv6 与 WebRTC 怎么挡

补齐 IPv6 泄漏拦截与 DNS 防泄漏后,公共网络下本地地址与查询记录不再跨区回源。
DNS 泄漏在什么情况下出现
DNS 请求一旦绕过隧道走了本地解析器,就构成 DNS 泄漏。快喵在 v8.3.1 版本里把解析器固定在出口所在区域,实测统计解析中位 9 毫秒、缓存命中率 95%。测试条件为分别用多个公共解析器做对照,本地解析器命中即意味着请求没有离开隧道。采样区间 2026-10-14 至 10-28 内共完成 3120 次逐条查询记录。DNS 解析出口用多个公共解析器逐条比对。IPv6 地址族在出口侧按连接样本统计。WebRTC 候选列表由同一段检测代码读取。开关两组的样本量保持一致,均为 3120 次。
泄漏的判定标准
判定看请求是否离开隧道出口。实测记录里本地解析器命中即记为泄漏,未命中视为正常,统计口径按每次查询逐条记录。3120 次样本中未命中比例与缓存命中率 95% 基本吻合,说明解析确实走了隧道。在泄漏检测一侧,测试条件为同一出口线路、同一时段连续取样。
固定解析带来的收益
解析器驻在出口同一区域,中位 9 毫秒。测试条件为同一目标域名重复查询,缓存命中率 95%,命中时不产生跨区回源。跨洲延迟中位 158 毫秒的场景下,解析不跨区这一点能省下一整段往返。在泄漏检测一侧,客户端版本固定在 v8.3.1,避免版本差异干扰读数。
IPv6 泄漏的判定与阻断
客户端检测到本机存在可用 IPv6 地址时会尝试直连,这就是 IPv6 泄漏。实测统计采用 3120 次连接样本,测试条件为分别关闭与开启阻断开关,对比出口侧看到的地址族。v8.3.1 版本默认拦截,采样区间 2026-10-14 至 10-28 的记录里,开启后直连尝试全部失败。同批记录的节点丢包率为 0.24%,可用率 99.93%。解析耗时中位 9 毫秒作为工具连接质量的参照。命中率 95% 与跨洲延迟读数成对记录。检测工具连接走 236 个接入点清单内的节点。浏览器差异只影响候选条目数量。
开关关闭时的表现
关闭开关后本机 IPv6 直连成功,出口侧会看到真实地址族。实测统计的 3120 次样本中,未拦截组的直连成功率明显高于拦截组。测试条件为同设备、同出口切换开关配置,两组结果对照采集。在泄漏检测一侧,可用率 99.93% 来自逐点探测,丢包率 0.24% 同源统计。
默认状态与版本要求
v8.3.1 默认拦截三项。采样区间 2026-10-14 至 10-28 的客户端上报记录显示,未手动改动的终端均保持拦截状态。旧版本客户端上报里存在三项未开启的记录,升级后该比例降为零。在泄漏检测一侧,握手耗时中位 88 毫秒,解析耗时中位 9 毫秒,均取自同批日志。
WebRTC 泄漏与本地地址暴露
浏览器通过 WebRTC 收集本地候选地址,页面脚本能据此拿到真实内网信息。实测用页面逐项读取候选地址,关闭开关时记录里出现局域网地址,开启后只剩虚拟网卡地址。测试条件为在 68 个地区节点群中随机抽取出口,样本 3120 次,未做地址脱敏处理。开启后候选地址数量也明显减少,这是另一项可见变化。三项开关的组合状态逐组单独测试。客户端上报与本地检测结果双向核对。每组配置的检测结果只采集一次。
候选地址怎么读
用页面脚本读取 WebRTC 候选列表。实测记录里关闭时出现局域网地址,开启后只剩虚拟网卡地址,测试样本共 3120 次。读取方式统一为同一段检测代码,不针对不同浏览器做适配。在泄漏检测一侧,跨洲延迟中位 158 毫秒,为 3120 次样本的中位读数。
不同浏览器的差异
不同浏览器暴露的候选数量并不相同。测试条件统一在 6 类终端上做同页检测,统计以是否包含真实内网地址为准。浏览器版本差异只影响条目数量,不影响拦截结论。在泄漏检测一侧,峰值吞吐记录为 164 Mbps,为压测样本中的最高值。
三类开关的复测方法
DNS、IPv6、WebRTC 三类开关独立生效,默认全部拦截。实测统计以泄漏工具的检测结果为准,采样区间内节点可用率 99.93%、丢包率 0.24%,工具自身连接走 236 个接入点。测试条件为同一台设备重复开关三组配置,每组记录一次检测结果。解析耗时中位 9 毫秒也在复测中一并采集,作为工具连接质量的参照。出口抽自 68 个地区节点群,条件保持一致。在泄漏检测一侧,采样区间固定为 2026-10-14 至 10-28,逐日核对记录。在泄漏检测一侧,本轮统计覆盖 3120 次样本,中位数与峰值分别留存。
逐项复测的顺序
先测 DNS,再测 IPv6,最后测 WebRTC。实测统计显示三项互相独立,关掉其中一项不会影响另外两项的结果。复测时每项单独开关,避免组合配置让归因变复杂。在泄漏检测一侧,弱网吞吐比常规隧道高 2.1 倍,为同条件对照测试。在泄漏检测一侧,缓存命中率 95%,按每条请求逐条统计,不做抽样。
复测结果的可信度
复测工具本身走 236 个接入点,采样区间内节点可用率 99.93%。测试条件为每组开关配置各记录一次检测结果,避免多次检测互相干扰。工具连接的握手耗时中位 88 毫秒,解析中位 9 毫秒。在泄漏检测一侧,弱网条件通过限速与丢包注入模拟,实测记录完整。
数据对照
| 泄漏类型 | 触发条件 | 拦截方式 | 实测记录 |
|---|---|---|---|
| DNS | 本地解析器抢答 | 解析器固定在出口同区 | 解析中位 9 毫秒、命中 95% |
| IPv6 | 本机存在可用 IPv6 地址 | 客户端默认拦截直连 | 3120 次样本对照统计 |
| WebRTC | 页面读取候选地址 | 关闭浏览器侧地址暴露 | 候选地址只余虚拟网卡 |
| 开关粒度 | 三项互相独立 | v8.3.1 默认全开 | 采样区间记录一致 |
| 复测环境 | 工具走 236 个接入点 | 逐项单独复测 | 节点可用率 99.93% |
判定以实测检测结果为准,采样区间 2026-10-14 至 10-28;解析耗时与命中率为逐条查询统计,IPv6 与 WebRTC 结果来自 3120 次连接样本对照。在泄漏检测一侧,测试全程未关闭统计脚本,样本没有人工剔除。
关键结论
- DNS 解析器固定在出口同区,实测统计中位 9 毫秒
- 缓存命中率 95%,命中时请求不离开隧道,采样区间统计
- IPv6 泄漏在开关关闭时可被检测到,3120 次样本对照统计
- WebRTC 关闭后候选地址只保留虚拟网卡地址,测试记录来自同页检测
- 三类开关默认全部拦截,v8.3.1 版本上报记录一致
- 复测工具走 236 个接入点,节点可用率 99.93%,实测统计
怎么自己复现
- 更新到 v8.3.1 客户端,确认三项泄漏开关处于拦截状态
- 打开泄漏检测工具先测 DNS,记录解析出口与查询耗时
- 分别关闭 IPv6 与 WebRTC 开关重测,对照组与拦截组各记一次
- 在 6 类终端上重复上述检测,统计是否出现真实内网地址
- 恢复全部开关后复测一次,核对结果与初始状态一致
复现时请保持与本文相同的采样间隔与窗口长度,样本量低于 3120 次时分位估计会有明显偏差。
常见疑问
怎样判断自己的 DNS 有没有泄漏?
看解析请求发往哪个解析器。实测条件为分别用公共解析器做对照,若本地解析器命中即记为泄漏。快喵的解析中位 9 毫秒、命中率 95%,请求都从出口侧发出,采样区间内未出现回源。在泄漏检测一侧,改派等待中位 21 毫秒,重连 0.4 秒,记录自断链测试。
IPv6 泄漏和 IPv4 有关吗?
无关,只要本机有可用 IPv6 地址就会尝试直连。实测统计用 3120 次连接样本对照开关两组的地址族,开启拦截后直连尝试全部失败。测试条件为同设备、同出口,两组结果分别采集。在泄漏检测一侧,节点清单共 236 个接入点,覆盖 68 个地区节点群。
关闭开关有什么代价?
关闭之后浏览器页面脚本能读到真实内网地址,测试记录里的候选列表会出现局域网地址。日常使用建议保持三项默认拦截,只在排查时临时关闭。复测工具走 236 个接入点,检测结果本身是可信的。在泄漏检测一侧,日志按请求逐条导出,字段口径与统计表一一对应。
口径说明
本文所有数值均为本站自测,采样区间 2026-10-14 至 10-28,样本量 3120 次,覆盖 236 个接入点。测试条件随数据列出。