跳到正文
代理 · geoip · WebRTC · SOCKS5

让代理与身份相匹配

浏览器设置的是 Europe/Amsterdam,用的却是美国住宅 IP——一行代码就能查出来,而这种不匹配很容易一不小心就出现。给 Clearcote 一个开启了 geoip 的代理,它会查询出口 IP,并在第一个页面加载之前,把时区、语言和 WebRTC 地址设置得与之相符。

代理支持和 geoip 在所有套餐中都可用。

一个选项,全部对齐

import { launch } from "clearcote";

const browser = await launch({
  fingerprint: "account-42",
  proxy: { server: "http://gateway:8080", username: "u", password: "p" },
  geoip: true, // timezone + languages + WebRTC follow the exit IP
});

亮点

一个选项搞定 geoip

出口 IP 会在离线的 geoip-all-in-one 数据库中查询,然后为该地区设置时区、首选语言、Accept-Language 和 WebRTC 地址。

处处统一的区域设置

Accept-Language、navigator.language、Intl.DateTimeFormat 和 toLocaleString 在页面和 worker 中都跟随同一种语言。

带凭据的 SOCKS5

原版 Chromium 无法向 SOCKS5 代理认证。授权版构建在引擎中实现了用户名密码握手(RFC 1929),所以不需要本地中继。凭据可以作为独立字段传入,或在 SDK 0.31.1 及更高版本中直接写在代理地址里。

不泄露地址的 WebRTC

默认情况下,WebRTC 无法绕开代理发送流量,所以你自己的地址不会暴露。开启 geoip(或 webrtcIp)后,它会改为上报代理的地址,就像一个真正位于代理后面的浏览器那样。即便如此,授权版构建也不会让 WebRTC 流量走你自己的网络连接;开源版构建则不然,页面选定的中继仍可能看到你的地址。

地理位置也对得上

--fingerprint-location 会在时区之外再固定一组相应的坐标,让 Geolocation API 与时钟保持一致。

或者干脆不用买代理

托管浏览器自带住宅代理,支持按国家、州和城市定位,以及粘性会话。

为什么位置信息必须对齐

位置信息会出现在好几个互相独立的地方:IP 地址、时区、语言请求头、数字和日期格式、WebRTC,以及(获得授权时的)地理位置。检测方不需要知道你在哪里,只要发现其中两项对不上就够了。

geoip 让出口 IP 成为唯一的事实来源。启动时,SDK 解析代理的出口地址,在离线数据库中查询,并据此设置其余各项,所以第一个页面看到的就已经是一致的区域设置。

在信任一个会话之前,务必先检查出口。一个静默失效、直接放行的代理会用你自己的 IP 发送流量,其他所有防护措施都将失去意义。启动时向一个回显 IP 地址的服务发一次请求就足够了。

典型用途

特定地区的结果

按该国访客看到的样子查看价格、搜索结果和供货情况。

绑定地区的账号

让账号每次会话的 IP、时区和语言都保持不变。

广告与内容核查

查看某个城市的访客看到的广告、页面或优惠。

本地化 QA

按当地访客实际看到的样子,检查日期、货币和翻译。

Clearcote 专为隐私保护、测试、研究和合法自动化而打造。你须对自己的使用方式负责,并遵守所访问网站的条款。

哪些套餐包含此功能

代理支持、时区与语言自动匹配,以及上报代理地址的 WebRTC,在所有套餐中都可用。在此基础上让 WebRTC 流量不走你自己的网络连接,以及带凭据的 SOCKS5,则需要授权版构建(GitHub 免费版即可使用)。

对比套餐

常见问题

geoip 具体做了什么?

它会解析代理的出口 IP,在离线的 geoip-all-in-one 数据库中查询,然后为该地区设置匹配的时区、语言列表(Accept-Language、navigator.languages)、地理位置和 WebRTC IP。如果无法解析出地区,启动会报错终止,而不是用你本机的时钟和语言启动。

Clearcote 支持带认证的 SOCKS5 代理吗?

支持,需要授权版构建。把用户名和密码作为独立的代理字段传入,或者在 SDK 0.31.1 及更高版本中直接写在地址里(socks5://user:pass@host:port);旧版 SDK 会在凭据到达浏览器之前,把写在地址里的凭据丢掉。Clearcote 在引擎中实现了 SOCKS5 用户名密码认证(原版 Chromium 没有),所以你不需要本地中继。

WebRTC 会泄露我的真实 IP 吗?

默认不会。SDK 对 WebRTC 做了设置,使其无法在代理之外发送 UDP,从而保护你自己的地址。开启 geoip(或 webrtcIp)后,它会改为上报代理的地址,就像一个位于该 IP 后面的浏览器那样。授权版构建依然不会在你自己的网络连接上发送任何 WebRTC 流量;开源版构建在开启 geoip 后则会发送,因此页面选定的中继可能读到你的真实地址。参见什么是 WebRTC 泄露。

支持哪些代理类型?

HTTP 和 SOCKS5 代理,带不带凭据都可以(SOCKS5 凭据需要授权版构建)。住宅或移动网络出口与普通用户的浏览器最为匹配;托管浏览器已包含住宅出口。

时区需要我自己设置吗?

用 geoip 就不需要。如果你更想手动设置,传入 timezone 和 acceptLanguage(Python:accept_language)即可,Intl 和 toLocaleString 也会跟随该语言。

在文档中深入了解

相关功能

试用 Clearcote

可直接接入 Playwright 与 Puppeteer,一直到 TLS 握手都保持一致,并提供开源构建作为起点。

通过 GitHub 可免费使用一个浏览器。无需信用卡。