身份
多账户浏览器隔离:运行独立身份
了解如何使用 BotBrowser 运行具有独立指纹、代理和会话的多个隔离浏览器身份。
BotBrowser 的按上下文隔离
BotBrowser 提供真正的按上下文隔离。每个浏览器上下文可以拥有自己的:
- 指纹配置:不同的 Canvas、WebGL、音频和 navigator 信号
- 代理:不同的 IP 地址和网络路径
- 时区:匹配代理的地理位置
- 区域和语言:与地理身份一致
- Cookie 和存储:按上下文完全隔离
Playwright 多上下文设置
const { chromium } = require('playwright-core');
const browser = await chromium.launch({
executablePath: '/path/to/botbrowser/chrome',
args: [
'--bot-profile=/path/to/profile.enc',
],
headless: true,
});
// 上下文 1:美国身份
const context1 = await browser.newContext({
proxy: { server: 'socks5://us-proxy:1080' },
locale: 'en-US',
timezoneId: 'America/New_York',
});
// 上下文 2:英国身份
const context2 = await browser.newContext({
proxy: { server: 'socks5://uk-proxy:1080' },
locale: 'en-GB',
timezoneId: 'Europe/London',
});
const page1 = await context1.newPage();
const page2 = await context2.newPage();
基于 CLI 的多配置
使用不同指纹配置的独立浏览器实例:
# 实例 1:美国身份
chrome --bot-profile="/profiles/us-profile.enc" \
--proxy-server="socks5://us-proxy:1080" \
--bot-config-timezone="America/New_York" \
--bot-config-locale="en-US" \
--user-data-dir="/tmp/session-1"
# 实例 2:英国身份
chrome --bot-profile="/profiles/uk-profile.enc" \
--proxy-server="socks5://uk-proxy:1080" \
--bot-config-timezone="Europe/London" \
--bot-config-locale="en-GB" \
--user-data-dir="/tmp/session-2"
隔离的内容
指纹信号。 每个上下文报告不同的 Canvas 渲染、WebGL 供应商和渲染器、音频处理、navigator 属性、屏幕尺寸和字体可用性值。
网络身份。 每个上下文通过不同的代理路由,具有匹配的时区和区域设置。
存储和 Cookie。 Cookie、localStorage、sessionStorage 和 IndexedDB 在上下文之间完全隔离。
最佳实践
将代理地理位置与身份匹配
始终将时区、区域和语言与代理的地理位置对齐:
--proxy-server="socks5://jp-proxy:1080" \
--bot-config-timezone="Asia/Tokyo" \
--bot-config-locale="ja-JP" \
--bot-config-languages="ja,en"
为不同账户使用不同配置
每个账户应有不同的指纹配置以保持隔离。
分离用户数据目录
每个实例需要自己的 --user-data-dir 以防止配置冲突。
确定性噪声种子
为每个账户使用不同的 --bot-noise-seed 值,获得一致但唯一的指纹噪声。
验证
设置多个上下文后,验证:
- 每个上下文显示不同的 IP 地址
- Canvas 哈希在上下文之间不同
- WebGL 渲染器字符串与每个上下文的配置匹配
- 每个上下文的时区和区域设置正确
- 上下文之间没有 cookie 或存储泄漏
开始使用
- 从 GitHub 下载 BotBrowser
- 准备多个指纹配置
- 为每个身份设置代理
- 每个实例使用单独的
--user-data-dir
#multi-account#isolation#per-context#identity#privacy