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 零日漏洞利用

参考资源

相关推荐
亥时科技2 小时前
一套流媒体架构,如何打通 Web、移动端和指挥大屏?
开源·无人机·ai巡检
a1117763 小时前
细胞结构实验室(react 开源)
前端·javascript·开源·html
容器魔方3 小时前
Kthena Router ScorePlugin 架构与基准测试分析
人工智能·云原生·容器·架构·开源
xmdy58664 小时前
Flutter+开源鸿蒙实战|企业级工具APP Day2 全局网络封装与 Dio 拦截器实战(鸿蒙兼容版)
flutter·开源·harmonyos
xmdy58664 小时前
Flutter+开源鸿蒙实战:企业级工具类APP开发教程(含第三方库适配)
flutter·开源·harmonyos
lularible4 小时前
PTP协议精讲(3.13):故障处理与诊断——PTP的“健康卫士“
网络·网络协议·开源·嵌入式·ptp
还好还好不是吗5 小时前
我用 Puppeteer 把发掘金文章这步也自动化了——附 CLI 和 MCP 接口
electron·开源
lularible5 小时前
PTP协议精讲(4.4):从时钟程序实现——时间的“追随者“
网络·网络协议·开源·嵌入式·ptp
切糕师学AI6 小时前
深入解析 gRPC:高性能开源 RPC 框架的原理与实战
网络协议·rpc·开源·grpc