CloakBrowser

项目概述

CloakBrowser 是一个隐形 Chromium 浏览器(Stealth Chromium Browser),通过在 C++ 源码级别修改浏览器指纹,实现对反机器人检测系统(Anti-Bot Systems)的绕过。它作为 Playwright 和 Puppeteer 自动化框架的直接替代品,无需修改代码即可实现隐形浏览。

属性 信息
GitHub https://github.com/CloakHQ/CloakBrowser
官方网站 https://cloakbrowser.dev
当前版本 v0.3.26 (Chromium 146.0.7680.177.4)
许可证 MIT(封装代码),自定义(二进制文件免费使用,禁止再分发)
Stars 5,256+

核心理念 :真正的 Chromium 二进制文件,指纹在 C++ 源码级别修改。反机器人系统将其评分为正常浏览器------因为它就是一个正常浏览器。


核心架构

技术栈

复制代码
用户代码 (Playwright/Puppeteer API)
         ↓
CloakBrowser 封装层 (Python/JavaScript)
         ↓
定制 Chromium 二进制文件 (57 个 C++ 补丁)
         ↓
目标网站 (反机器人系统看到的是正常浏览器)
组件 技术
浏览器引擎 Chromium 146(定制编译)
Python 封装 Playwright 兼容 API
JavaScript 封装 TypeScript,完整类型定义,支持 Playwright 和 Puppeteer
分发渠道 PyPI、npm、Docker Hub
指纹系统 49-57 个 C++ 源码级补丁

平台支持

平台 Chromium 版本 补丁数量 状态
Linux x86_64 146 57 最新
Linux arm64 (RPi, Graviton) 146 57 最新
macOS arm64 (Apple Silicon) 145 26 已发布
macOS x86_64 (Intel) 145 26 已发布
Windows x86_64 146 57 最新

核心技术特性

1. C++ 源码级指纹补丁

CloakBrowser 包含 49-57 个 C++ 源码级补丁,覆盖以下指纹维度:

指纹类型 修改内容
Canvas 指纹 噪声注入,消除独特画布特征
WebGL 指纹 GPU Vendor/Renderer 伪装
音频指纹 AudioContext 噪声处理
字体指纹 字体渲染特征修改
GPU/硬件报告 硬件并发数、设备内存伪装
屏幕属性 屏幕尺寸、分辨率伪装
WebRTC IP 泄露 ICE 候选 IP 替换,防止真实 IP 泄露
网络时间 DNS/连接/SSL 时间归零
自动化信号 navigator.webdriver = false
CDP 行为 Chrome DevTools Protocol 输入行为修复

2. TLS 指纹

CloakBrowser 的 TLS 指纹与真实 Chrome 完全匹配:

检测方法 Stock Playwright CloakBrowser
ja3n 不匹配 与 Chrome 一致
ja4 不匹配 与 Chrome 一致
Akamai 不匹配 与 Chrome 一致

3. 人性化行为模拟 (humanize=True)

行为类型 实现方式
鼠标移动 贝塞尔曲线(Bézier Curve)+ 缓动函数
键盘输入 每字符延迟 + 思考停顿
滚动行为 加速 → 匀速 → 减速模式
错误模拟 5% 打字错误率 + 自动纠正
空闲微动作 点击之间的微小移动

检测测试结果

检测服务 Stock Playwright CloakBrowser 备注
reCAPTCHA v3 0.1(机器人) 0.9(人类) 服务端验证
Cloudflare Turnstile(非交互) FAIL PASS 自动解决
Cloudflare Turnstile(托管) FAIL PASS 单击通过
ShieldSquare BLOCKED PASS 生产环境测试
FingerprintJS 机器人检测 DETECTED PASS
BrowserScan 机器人检测 DETECTED NORMAL (4/4)
bot.incolumitas.com 13 个失败 1 个失败 仅 WEBDRIVER 规范
navigator.webdriver true false 源码级补丁
TLS 指纹 不匹配 与 Chrome 一致

安装与配置

Python 安装

bash 复制代码
# 基础安装
pip install cloakbrowser

# GeoIP 支持(自动从代理 IP 检测时区/语言区域)
pip install cloakbrowser[geoip]

# Patchright 后端(抑制额外 CDP 自动化信号)
pip install cloakbrowser[patchright]

JavaScript/Node.js 安装

bash 复制代码
# Playwright
npm install cloakbrowser playwright-core

# Puppeteer
npm install cloakbrowser puppeteer-core

系统要求

要求 详情
Python >= 3.9 (支持 3.9-3.13)
Playwright >= 1.40
httpx >= 0.24
二进制大小 ~200MB(首次运行自动下载)

环境变量配置

环境变量 默认值 说明
CLOAKBROWSER_BINARY_PATH --- 跳过下载,使用本地 Chromium 二进制文件
CLOAKBROWSER_CACHE_DIR ~/.cloakbrowser 二进制缓存目录
CLOAKBROWSER_DOWNLOAD_URL cloakbrowser.dev 自定义下载 URL
CLOAKBROWSER_AUTO_UPDATE true 设为 false 禁用后台更新检查
CLOAKBROWSER_SKIP_CHECKSUM false 设为 true 跳过 SHA-256 校验
CLOAKBROWSER_BACKEND playwright 设为 patchright 使用替代后端

使用方法

Python API

基础启动
python 复制代码
from cloakbrowser import launch

browser = launch()
page = browser.new_page()
page.goto("https://protected-site.com")
browser.close()
高级配置
python 复制代码
browser = launch(
    headless=False,                       # 有头模式(可见浏览器)
    proxy="http://user:pass@proxy:8080",  # HTTP 代理
    proxy="socks5://user:pass@proxy:1080",# SOCKS5 代理
    geoip=True,                           # 自动从代理 IP 检测时区/语言区域
    humanize=True,                        # 人性化交互
    timezone="America/New_York",
    locale="en-US",
    args=["--fingerprint=12345"]          # 固定指纹种子
)
异步模式
python 复制代码
import asyncio
from cloakbrowser import launch_async

async def main():
    browser = await launch_async()
    page = await browser.new_page()
    await page.goto("https://example.com")
    await browser.close()

asyncio.run(main())
持久化上下文(保留 cookies/session)
python 复制代码
from cloakbrowser import launch_persistent_context

ctx = launch_persistent_context("./my-profile", headless=False)
page = ctx.new_page()
page.goto("https://protected-site.com")
ctx.close()  # profile 已保存
人性化配置
python 复制代码
browser = launch(humanize=True, human_config={
    "mistype_chance": 0.05,              # 5% 打字错误率 + 自动纠正
    "typing_delay": 100,                 # 每字符延迟(毫秒)
    "idle_between_actions": True,        # 点击之间的微动作
    "idle_between_duration": [0.3, 0.8], # 空闲持续时间范围(秒)
})

JavaScript/Node.js API

Playwright
javascript 复制代码
import { launch, launchContext, launchPersistentContext } from 'cloakbrowser';

// 基础
const browser = await launch();

// 高级配置
const browser = await launch({
  headless: false,
  proxy: 'http://user:pass@proxy:8080',
  timezone: 'America/New_York',
  locale: 'en-US',
  humanize: true,
});

// 便捷方法:浏览器 + 上下文一次调用
const context = await launchContext({
  userAgent: 'Custom UA',
  viewport: { width: 1920, height: 1080 },
});
Puppeteer
javascript 复制代码
import { launch } from 'cloakbrowser/puppeteer';

const browser = await launch({ headless: true });
const page = await browser.newPage();
await page.goto('https://example.com');
await browser.close();

CLI 命令

bash 复制代码
python -m cloakbrowser install      # 下载二进制文件(显示进度)
python -m cloakbrowser info         # 显示版本、路径、平台信息
python -m cloakbrowser update       # 检查并下载更新的二进制文件
python -m cloakbrowser clear-cache  # 清除缓存的二进制文件

指纹管理

二进制级指纹标志

标志 控制内容
--fingerprint=seed 主种子:canvas、WebGL、音频、字体、client rects
--fingerprint-platform navigator.platform、User-Agent OS、GPU 池(windows/macos/linux
--fingerprint-gpu-vendor WebGL UNMASKED_VENDOR_WEBGL
--fingerprint-gpu-renderer WebGL UNMASKED_RENDERER_WEBGL
--fingerprint-hardware-concurrency navigator.hardwareConcurrency
--fingerprint-device-memory navigator.deviceMemory(GB)
--fingerprint-screen-width 屏幕宽度
--fingerprint-screen-height 屏幕高度
--fingerprint-brand 浏览器品牌:Chrome/Edge/Opera/Vivaldi
--fingerprint-timezone 时区(如 America/New_York
--fingerprint-locale 语言区域(如 en-US
--fingerprint-webrtc-ip WebRTC ICE 候选 IP 替换(auto 或显式 IP)
--fingerprint-storage-quota 存储配额覆盖(MB)
--fingerprint-fonts-dir 目标平台字体目录路径
--fingerprint-noise=false 禁用噪声注入(保持指纹种子)

Docker 部署

快速测试

bash 复制代码
docker run --rm cloakhq/cloakbrowser cloaktest

运行脚本

bash 复制代码
# 内联脚本
docker run --rm cloakhq/cloakbrowser python -c "
from cloakbrowser import launch
browser = launch()
page = browser.new_page()
page.goto('https://example.com')
print(page.title())
browser.close()
"

# 挂载自定义脚本
docker run --rm -v ./my_script.py:/app/my_script.py cloakhq/cloakbrowser python my_script.py

CDP 服务器模式(远程浏览器)

bash 复制代码
docker run -d --name cloak -p 127.0.0.1:9222:9222 cloakhq/cloakbrowser cloakserve

连接示例:

python 复制代码
from playwright.sync_api import sync_playwright

pw = sync_playwright().start()
browser = pw.chromium.connect_over_cdp("http://localhost:9222")
page = browser.new_page()
page.goto("https://example.com")

Docker Compose

yaml 复制代码
services:
  cloakbrowser:
    image: cloakhq/cloakbrowser
    command: cloakserve
    restart: unless-stopped
    ports:
      - "127.0.0.1:9222:9222"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9222/json/version"]
      interval: 30s
      timeout: 5s
      retries: 3

资源使用

资源 使用量
RAM 空闲 ~190MB
RAM 3 个标签页 ~280MB
每增加一个标签页 ~30MB

框架集成

框架 Stars 语言 示例文件
browser-use 70K Python examples/integrations/browser_use_example.py
Crawl4AI 58K Python examples/integrations/crawl4ai_example.py
Crawlee 8.6K Python examples/integrations/crawlee_example.py
Scrapling 21K Python examples/integrations/scrapling_example.py
Stagehand 21K TypeScript js/examples/stagehand.ts
LangChain 100K+ Python examples/integrations/langchain_loader.py
Selenium --- Python examples/integrations/selenium_example.py
undetected-chromedriver 12K Python examples/integrations/undetected_chromedriver.py

适用场景

主要用途

场景 说明
网络爬虫/数据采集 绕过 Cloudflare、reCAPTCHA 等反爬虫系统
自动化测试 在受保护网站上进行功能测试
社交媒体营销 多账号管理,避免平台检测
电商运营 多店铺运营、价格监控
广告验证 跨地区广告投放效果验证

最佳实践配置

针对高强度反机器人网站(DataDome、Kasada):

python 复制代码
browser = launch(
    proxy="http://residential-proxy:port",  # 住宅代理 IP
    geoip=True,                             # 自动时区/语言区域
    headless=False,                         # 有头模式
    humanize=True,                          # 人性化行为
)

与浏览器隔离安全产品的区别

重要说明 :CloakBrowser 不是浏览器隔离安全产品(Remote Browser Isolation, RBI)。

特性 CloakBrowser 企业 RBI(Menlo Security、Cisco 等)
定位 反检测浏览器 安全隔离技术
目的 绕过机器人检测 防止恶意软件、钓鱼攻击
沙箱隔离 ❌ 无 ✅ 远程渲染/容器隔离
威胁隔离 ❌ 无 ✅ 内容与端点分离
钓鱼防护 ❌ 无(标准浏览器级别) ✅ 主动防护
恶意软件防护 ❌ 无 ✅ Drive-by Download 阻止

如需企业级浏览器隔离安全解决方案,请考虑:

  • Menlo Security
  • Cisco Secure RBI
  • Cloudflare Browser Isolation
  • Authentic8 Silo

专业术语对照表

英文术语 中文翻译
Stealth Chromium Browser 隐形 Chromium 浏览器 / 反检测浏览器
Bot Detection 机器人检测 / 反爬虫检测
Browser Fingerprint 浏览器指纹
C++ Source-Level Patches C++ 源码级补丁
Anti-Bot Systems 反机器人系统 / 反自动化系统
Canvas Fingerprint Canvas 指纹(画布指纹)
WebGL Fingerprint WebGL 指纹(图形库指纹)
TLS Fingerprint (ja3/ja4) TLS 指纹
WebRTC ICE Candidates WebRTC ICE 候选
CDP (Chrome DevTools Protocol) Chrome 开发工具协议
Headless Browser 无头浏览器
Drop-in Replacement 直接替换(无需修改代码)
Humanize 人性化行为模拟
Bézier Curve 贝塞尔曲线(鼠标轨迹)
Persistent Context 持久化上下文(保留 cookies/session)
Residential Proxy 住宅代理
GeoIP 地理位置 IP
Hardware Concurrency 硬件并发数(CPU 核心数)
Device Memory 设备内存
GPU Renderer GPU 渲染器
Storage Quota 存储配额
navigator.webdriver navigator.webdriver 属性
reCAPTCHA v3 Score reCAPTCHA v3 评分
Cloudflare Turnstile Cloudflare Turnstile 验证
Browser Isolation (RBI) 浏览器隔离 / 远程浏览器隔离
Zero Trust Architecture 零信任架构
Data Exfiltration 数据泄露
Drive-by Download 挂马下载
Zero-day Exploit 零日漏洞利用

参考资源

相关推荐
DO_Community9 小时前
DigitalOcean 的 AI 推理路由器是如何构建的
人工智能·开源·agent·claude·deepseek
冬奇Lab10 小时前
每日一个开源项目(第121篇):tiktoken - OpenAI 出品的极速 BPE 分词器
人工智能·开源·openai
幽络源小助理15 小时前
Vue3视频播放网站源码 纯前端Vite项目 影视站模板 – 幽络源源码
开源·源码
山川而川-R17 小时前
调用微信开源二维码模型
微信·开源
许彰午19 小时前
Git实战——从零到团队协作以一个开源项目为例
git·开源
好好风格21 小时前
这个开源项目,把本地大模型做成会说话的 Live2D 桌宠
人工智能·python·开源
X54先生(人文科技)21 小时前
《元创力》纪实录·卷宗2.1 关联观察孤岛的回归:当一座“反AI叙事飞地”成为最后的堡垒
人工智能·架构·开源·ai写作·零知识证明
该昵称用户已存在1 天前
碳数据治理开源底座:MyEMS 能源中台的资产化架构与价值释放设计思路
架构·开源·能源
爱学习的鱼佬1 天前
告别内网模型接入烦恼!ModelStandardization:让 Open WebUI等工具无缝对接私有大模型
rust·开源·大模型·openai·openwebui·model api代理·内网部署
Real-Staok1 天前
开源多模态大模型全景对比:你的电脑,已经是 AI 工作站
人工智能·开源·电脑