VPN 与 WebRTC 泄漏测试

对 VPN 或代理可能把你真实地址暴露给所访问网站的几种经典方式做一次简短自查。

尚未开始。

检查中…

    WebRTC 候选地址

      什么是 WebRTC 泄漏

      WebRTC 是支撑视频通话、语音聊天和屏幕共享的浏览器技术。为了直接连通两台设备,它必须知道可到达它们的地址,因此会收集候选地址:本地网络地址、通过公开 STUN 服务器发现的地址,以及中继地址。

      通常这并无害处。泄漏发生在浏览器报告了本不该可见的地址时,最常见的是其余流量走 VPN 时暴露了家庭连接的真实地址。网站从普通请求看到 VPN 地址,又从 WebRTC 看到真实地址,两者不一致。

      这不是恶意软件,也不罕见。原因是 WebRTC 流量可能走与浏览器其他流量不同的路径,尤其是 VPN 只覆盖部分路由或只处理 IPv4 时。

      这项测试如何工作

      测试在你的浏览器中打开一个 WebRTC 连接,指向公开 STUN 服务器,并记录收到的候选地址。每个候选按类型和地址描述:host 候选是本地地址,server-reflexive 候选是从外部看到的公网地址,relay 候选来自 TURN 服务器。

      随后把结果与普通网页请求显示的本连接 IP 地址比较。如果 WebRTC 公网地址一致,就没有需要报告的差异。若不一致,页面会列出该地址,由你判断它是否应当可达。以随机 .local 名称出现的本地地址是浏览器为避免暴露私有网络地址而生成的。

      测试有其局限。它检查浏览器中的 WebRTC、IPv6 和时区信号。它尚不检查 DNS:DNS 泄漏测试需要不同方法,详见下文。

      在各浏览器中控制 WebRTC

      没有适用于所有浏览器的单一开关。以下选项是各浏览器实际提供的方式。关闭 WebRTC 会使浏览器内视频通话无法使用,因此只在确实需要保护时更改。

      Chrome 和 Edge

      这两个浏览器没有面向用户的 WebRTC 地址设置。管理员可通过 WebRtcIPHandlingPolicy 策略限制或禁用非代理 UDP,扩展程序也可拦截 WebRTC 候选,但需要修改页面的权限。使用 Chrome 或 Edge 最可靠的做法是使用会阻断隧道外流量的 VPN 客户端。

      Firefox

      打开 about:config,搜索 media.peerconnection.enabled 并设为 false 可完全关闭 WebRTC。折中选项是 media.peerconnection.ice.no_host,它停止共享本地地址而保留通话。这些属于高级首选项,浏览器刷新可能会重置。

      Safari

      Safari 默认隐藏本地地址:用 .local 结尾的随机 mDNS 名称替代。Safari 没有关闭 WebRTC 的简单用户设置,因此只要浏览器被允许使用 STUN 服务器,仍可能收集到公网地址。

      Brave

      Brave 在设置中提供 WebRTC IP 处理策略,可选择仅使用默认公网接口或禁用非代理 UDP。选择更严格的选项可防止 WebRTC 泄露代理或 VPN 路径之外的地址。

      VPN 客户端

      许多 VPN 应用带有 WebRTC 或泄漏保护选项,部分还有在隧道断开时切断流量的终止开关。查看客户端设置和文档。如果没有此类控制,请在浏览器中限制 WebRTC。

      IPv6 泄漏

      只处理 IPv4 的 VPN 会让 IPv6 流量留在原路径上。如果网络可用 IPv6,支持它的站点在你 IPv4 走隧道时仍可通过运营商访问,两个地址指向不同网络。

      当 IPv4 与 IPv6 地址属于不同网络时,隐私摘要会指出这一点。解决办法取决于客户端:在 VPN 设置中寻找 IPv6 选项,或当隧道不承载 IPv6 时在连接上禁用 IPv6。完全屏蔽 IPv6 是一种取舍,因为纯 IPv6 服务将无法访问。

      DNS 泄漏

      DNS 是把名称转换为地址的系统。打开网站时,设备会向解析器查询该名称对应的地址。如果这些查询发往运营商的解析器而不是经过隧道,即便网页流量已加密,运营商也能看到你查询的每个名称。

      使用 DNS-over-HTTPS 或 DNS-over-TLS 的加密 DNS 保护设备与解析器之间的查询,但本身不能避免你选择的解析器与所用隧道不一致。配置良好的 VPN 会让 DNS 走隧道,配置不当则可能泄漏。

      本站尚未运行 DNS 泄漏测试。要正确实现需要查询专用测试域名并观察由哪个解析器应答,这已列为独立功能。目前泄漏页面只报告 WebRTC、IPv6 和时区不一致,并如实说明而不做猜测。

      时区与语言不一致

      浏览器会报告时区和语言列表,网站可以把它们与从 IP 地址推断的国家比较。位于他国的 VPN 出口往往不改变浏览器时区和语言,因此这种不一致本身就可能暴露隧道的使用。

      这不同于地址被暴露意义上的泄漏,因为这些值本就对所有页面开放。它是有用的背景:若想保持资料一致,可让浏览器时区和语言与出口位置匹配,或接受该组合并不寻常。

      常见问题

      连着 VPN,WebRTC 还会暴露真实 IP 吗?

      有可能。WebRTC 独立于浏览器其余流量收集候选地址,如果 VPN 没有接管那部分流量,STUN 得到的公网地址就可能是你的真实地址。本页测试正是为了显示两者是否一致。

      关闭 WebRTC 会破坏视频通话吗?

      使用 WebRTC 的浏览器内通话和屏幕共享会停止工作,包括许多会议工具。如果只想停止共享本地地址,请选择更窄的设置,例如 Firefox 的 media.peerconnection.ice.no_host 或 Brave 中更严格的 WebRTC IP 处理策略。

      什么是 mDNS 候选地址?

      它是浏览器隐藏在 .local 结尾随机名称后的本地地址,只能在你的网络内解析。Safari 默认使用,其他浏览器在部分情况下使用。看到 mDNS 名称意味着你的私有地址没有以可读形式交出。

      能在本站测试 DNS 泄漏吗?

      尚不能。目前的测试涵盖浏览器中的 WebRTC、IPv6 和时区信号。DNS 泄漏测试需要专用测试域名和不同类型的查询,它已在规划中,而不是被悄悄跳过。

      什么是 IPv6 泄漏?

      隧道保护 IPv4 时,IPv6 流量仍从原连接出去的情况。支持 IPv6 的站点可通过未受保护的地址访问你,因此 WebRTC 或 IPv6 请求看到的网络与 IPv4 看到的网络不同。

      代理和 Tor 能防止 WebRTC 泄漏吗?

      不会自动防止。代理通常只覆盖浏览器普通请求,WebRTC 能像绕过部分 VPN 一样绕过它。Tor Browser 因此默认禁用 WebRTC。无论使用何种工具,之后都应运行测试并确认地址是否一致。