返回博客

IP 泄露的六条通道:DNS 解析、时区与图形指纹

代理只改出口地址,浏览器还有别的通道在往外说话。DNS 解析、IPv6、时区语言、图形指纹,任何一条对不上都可能让整个环境暴露。

代理配好,检测页面显示在目标地区,账号还是被关联。多数人第一反应是代理不合格,然后换下一家。换了几家问题照旧,说明问题不在出口地址。

代理能改的只是网络请求的出口。浏览器为了让网页正常工作,会主动向外提供大量信息:系统与浏览器版本、时区、语言、屏幕分辨率、图形与音频特征、本地网络状态。这些信息彼此之间一旦对不上,平台看到的就是一个有问题的环境,而不是一个换了 IP 的正常用户。

下面这些通道,多数并不经过代理隧道。

DNS 解析可能没跟着走

流量走了代理,域名解析请求却仍可能由本地网络发起。目标网站看到的是代理地址,DNS 查询记录却指向你所在的网络。

判断方法是用 DNS 泄漏检测确认解析请求从哪里发出。处理方向是让解析请求跟着代理链路走,或者使用与出口地区匹配的解析服务。

IPv6 会绕过代理直连

这是最容易被漏掉的一条。本地网络同时具备 IPv4 和 IPv6,而代理只处理了 IPv4 流量时,浏览器可能直接通过 IPv6 访问目标站点。

这种情况下代理等于没开。检查办法是在检测页面看是否返回了 IPv6 地址;处理方向是在环境层面控制 IPv6 的启用状态,确保流量不会绕开代理。

时区和语言对不上,比暴露更容易被识别

这一条严格说不算 IP 泄露,但后果常常更重,它制造的是地理逻辑上的矛盾。

一个目标地区的 IP,配着本地时区、本地语言界面、本地时间格式,是平台上最典型的破绽。矛盾比单纯暴露更容易触发风控:暴露可能只是漏了一项,矛盾说明整个环境是拼出来的。

检查方式是看出口 IP、时区、语言三项是否成套匹配。处理方向是开启与出口 IP 的自动同步,不要手工指定。

图形和音频指纹标识的是设备

Canvas、WebGL 渲染出的图形特征,以及音频处理的波形差异,反映的是硬件层特征,和网络无关。

IP 换到另一个国家,显卡渲染出的结果还是同一台机器。这一层泄露的不是 IP,是设备身份。

判断方法是拿多个环境互相比对,看图形指纹是否重复;处理方向是每个环境用自己的指纹,不要所有任务共用一套。

代理切换的那一瞬间

代理断开、节点切换、首次连接的过程中,浏览器可能在还没进入隧道的时候就发出了请求。

这一条很难用检测页面捕捉,需要看日志里的请求来源记录。处理方式是代理切换期间先停下浏览器操作,确认状态稳定再开始任务。

WebRTC 也算一条

WebRTC 是最常被提起的一条,它的细节已经有专门的内容展开,这里只作为通道之一计入。

一份可以照着跑的自查清单

DNS、IPv6、地理参数、设备指纹、代理切换与 WebRTC 六条暴露通道的检查项和期望结果

通道看什么期望结果
DNS解析请求的发起位置跟随代理链路
IPv6是否返回 IPv6 地址不暴露
地理参数出口 IP、时区、语言三者成套一致
图形与音频指纹多个环境之间是否重复各自独立
代理稳定性任务期间是否有切换窗口全程稳定
WebRTC返回的地址与代理地址一致

换个思路配置环境

配了代理,解决的只是其中一条通道。环境是一个整体,任何一条通道暴露,都足以让整个环境被识别出来。

所以重点不是换一个更好的代理,而是把环境当成一个需要整体自洽的单元来配置和检查:指纹各自独立、网络出口按环境绑定、地理参数成套匹配。PurpleMark 处理的就是这一层,把同一台设备上的多个环境分开,出口和参数跟着环境走。

需要说明的是,这些手段的用途是让合规账号稳定运行:遵守平台服务条款与 robots 协议,不使用虚假身份信息,不绕过技术保护措施。

以上只作技术原理说明,请在合法合规的前提下使用相关工具。