全部文章

工具选型

代理、VPN、指纹浏览器:你到底需要哪一个?

三者解决的是不同问题,常常要搭配使用。直白地讲清各自改变了什么、没改变什么,以及怎么组合才不会互相抵消。

作者 Mango Team发布于 4 分钟阅读

这三样工具经常被拿来当对手比较,其实它们不是对手。代理改变的是某一路流量从哪里来,VPN 改变的是整台电脑从哪里来,指纹浏览器改变的是浏览器本身长什么样,而它需要前两者之一来改变自己从哪里来。你需要哪一个,取决于一个问题:网站需要看到多少个身份,每个身份又有多少部分必须不同?

各自改变了什么

代理VPN指纹浏览器
改变你的 IP只对使用它的应用或环境整台设备只通过你绑定的代理
在本地网络上加密流量本身不加密加密到 VPN 服务器取决于下层的代理或 VPN
改变你的指纹否否是,按环境
分隔 Cookie 和存储否否是,按环境
保持 WebRTC 与时区一致否,要你自己处理部分,且只针对一个身份是,按环境
身份数量一个代理一个一个一个环境一个

代理:一路流量一个出口

代理是替你转发请求的服务器,网站看到的是代理的地址而不是你的。代理按应用或按浏览器环境配置,这正是它的意义:你可以给不同的东西不同的出口。

实践中有两个细节要紧。第一是协议:HTTP 和 HTTPS 代理通过 TCP 承载网页流量;SOCKS5(RFC 1928)与协议无关,原则上也能承载 UDP。第二是地址的出身:机房 IP 便宜,也容易被网站识别为机房;住宅和移动 IP 属于普通消费者的连接,看起来像正常访客。

代理对你的指纹什么都不做,也不会自动覆盖浏览器发出的所有东西。WebRTC 的 STUN 请求走 UDP,会绕过 HTTP 代理,这就是经典的 WebRTC 泄漏。时区还是操作系统说了算。代理给你一个出口,让浏览器的其余部分和这个出口保持一致,是你自己的活。

VPN:整台机器一个出口

VPN 从你的电脑到一台服务器建立一条加密隧道,所有东西都从那台服务器出去:每个浏览器、每个应用、每个环境。对于它为之设计的问题,这正合适:在咖啡馆的 Wi-Fi 上,它把你的流量藏起来不让所在网络看到;在国外,它把你的祖国还给你的那一个账号。

对于多个身份,它的形状就不对了。机器上的每个环境得到同一个出口,VPN 把你和家里的 IP 隔开了,却没有把环境彼此隔开。VPN 的地址段众所周知,也被广泛标记,所以 VPN 后面的「住宅」身份往往并不住宅。会自动轮换服务器的 VPN 应用还会在会话中途改变你的位置故事,那正是时区那篇警告的那种不一致。

指纹浏览器:一个环境一个浏览器身份

指纹浏览器给每个环境一个自己的浏览器身份:独立的存储目录、自己的指纹(User-Agent、Client Hints、屏幕、显卡、Canvas、字体、音频、时区、语言)和自己的代理绑定。身份在生成时就做到内部一致,所以环境看起来像一台合理的机器,而不是一堆随机数值的集合。

它不做的事是提供网络出口。每个环境仍然需要一个代理,而代理的质量决定了整个环境的上限。浏览器的工作是让其他一切与出口一致:WebRTC 报告代理的地址,时区跟随代理的位置,语言与之相配,并且这些都不会泄漏到另一个环境。

一句话记住。

代理:改变一样东西从哪里来。VPN:改变所有东西从哪里来。指纹浏览器:改变每样东西长什么样,并给每样东西一个自己的来处。

按场景选

  1. 在不信任的网络上保护隐私。 VPN。加密到一台你信任的服务器是重点,出口在哪几乎无所谓。
  2. 一个账号,出差时需要看起来还在家里。 固定服务器的 VPN,或者一个代理。把操作系统时区和语言对齐到出口。
  3. 同一个平台上的几个账号,在同一台电脑上查看。 独立环境配独立代理,再加一个能把指纹也分开的浏览器。光靠 Cookie 做不到,隔离清单解释了原因。
  4. 很多账号、一个团队,或者脚本。 同上,再加模板保证一致,角色权限防止有人打开错误的环境,以及一个 API 让自动化跑在正规环境里,而不是裸的无头浏览器。
  5. 抓取公开页面。 代理最重要,最好是轮换的住宅代理;一致的浏览器身份让抓取程序不会只因指纹就被拦。

怎么组合才不会互相抵消

系统上开 VPN、浏览器环境里配代理,是合理的搭配:VPN 把「你在用代理」这件事藏起来不让本地网络看到,每个环境仍然从自己的代理出去。之后要检查两件事。第一,每个环境里的 WebRTC 报告的是该环境的代理,而不是 VPN 的出口,环境不管 UDP 时就会出现后者。第二,IPv6 没有借道 VPN 绕过代理。

系统代理再加环境代理是串联,不是叠加:网站看到的是最后一个。串联让一切变慢,除了让你搞不清自己到底在用哪个出口之外,很少带来别的好处。首选一个代理、绑定到环境,然后在实验室里核对。

看看你现在的配置到底显示什么

实验室显示出口 IP、WebRTC 候选地址和浏览器报告的时区,你可以看出在说话的是代理、VPN 还是操作系统。

打开实验室

Mango Browser 在其中的位置

Mango 是指纹浏览器这一层,代理由你来提供。每个环境绑定自己的 HTTP、SOCKS5 或住宅代理,支持导入,并可以在依赖它之前先检测。WebRTC 默认把公网候选地址替换为代理出口,不用额外操作就和 HTTP IP 一致;时区、语言和地理位置可以自动跟随出口。

超出单个环境之后,模板和批量创建让大量环境保持一致,团队角色决定谁能打开什么,Local API 和 MCP 让脚本和 AI 工具在真实环境里工作。VPN 的问题仍然归你:想给所在的网络加一层就加一层,让每个环境保留自己的出口。

参考资料

  1. MDN: 代理服务器
  2. RFC 1928: SOCKS Protocol Version 5
  3. RFC 8828: WebRTC IP Address Handling Requirements

到指纹实验室看看你的浏览器暴露了什么

继续阅读