打法
xiaohui
收录

Camofox Browser · 为 AI 代理打造的反检测无头浏览器

> 当 Playwright 被屏蔽、Headless Chrome 被指纹识别、各种隐身插件本身成了特征——Camofox Browser 选择另一种思路:在 C++ 层面伪装浏览器指纹,让 AI 代理像真人一样浏览网页。 Camofox Browser --- 一、背景:AI 代理的浏览困境 AI 代理需要访问真实的网页来完成各种任务——抓取信息、操作后台、自动化工作流。但现实是: - Pla…

正文

当 Playwright 被屏蔽、Headless Chrome 被指纹识别、各种隐身插件本身成了特征——Camofox Browser 选择另一种思路:在 C++ 层面伪装浏览器指纹,让 AI 代理像真人一样浏览网页。

Camofox Browser


一、背景:AI 代理的浏览困境

AI 代理需要访问真实的网页来完成各种任务——抓取信息、操作后台、自动化工作流。但现实是:

  • Playwright/Headless Chrome 被大多数网站通过特征检测屏蔽
  • Stealth 插件 本身的注入行为会成为新的指纹特征
  • Cloudflare 等保护 对自动化浏览器越来越严厉
  • 修改 Headers/WebDriver 标记 已经不足以绕过现代检测

Camofox Browser 的解法是:从一个修改过的浏览器开始——Camoufox,一个在 C++ 层面实现指纹伪装的 Firefox 分支

特征传统无头浏览器Camofox Browser
指纹伪装JS 层面打补丁(可被检测)C++ 层面原生伪装(不可检测)
无障碍快照需要自己转 HTML → 文本原生返回无障碍快照(体积小 90%)
元素引用CSS/XPath 选择器稳定 e1/e2/e3 元素引用
会话隔离需要自己管理 Cookie内建用户级会话隔离 + Cookie 持久化
部署多依赖配置单行 Docker 部署

二、核心能力

2.1 C++ 级反检测引擎

Camoufox 在浏览器引擎的 C++ 实现层面对以下指标进行伪装:

  • navigator.hardwareConcurrency — 逻辑 CPU 核心数
  • WebGL 渲染器 — 返回真实显卡信息而非 null
  • AudioContext — 音频指纹模拟真人设备
  • 屏幕几何信息 — 分辨率、色深等
  • WebRTC — 内外 IP 一致的伪装

所有伪装在 JavaScript 执行之前完成,没有 shim、没有 wrapper、没有任何可检测的修改。

2.2 Token 高效的无障碍快照

传统浏览器自动化返回的是完整 HTML,对 AI 代理来说既消耗上下文又难以解析。Camofox 直接返回 浏览器无障碍树(Accessibility Tree)

curl "<http://localhost:9377/tabs/TAB_ID/snapshot?userId=agent>"
# 返回形如: [button e1] Submit  [link e2] Learn more
  • 比原始 HTML 小约 90%(节省 Token)
  • 自带稳定的 e1/e2/e3 元素引用,点击/输入无需 CSS 选择器
  • 支持大页面 偏移分页(offset=N)
  • 可选附带 base64 截图

2.3 搜索宏(Search Macros)

内置 14+ 搜索宏,让 AI 代理可以直接在特定平台搜索而不需要处理复杂登录和搜索表单:

@google_search · @youtube_search · @amazon_search · @reddit_search · @reddit_subreddit · @wikipedia_search · @twitter_search · @yelp_search · @spotify_search · @netflix_search · @linkedin_search · @instagram_search · @tiktok_search · @twitch_search

Reddit 宏直接返回 JSON,无需解析 HTML。

2.4 Cookie 导入与会话持久化

支持从浏览器导出 Netscape 格式 Cookie 文件,通过 API 导入到 Camofox:

~/.camofox/cookies/linkedin.txt  (Netscape 格式)
        ↓
camofox_import_cookies tool     (解析、过滤域名)
        ↓
POST /sessions/:userId/cookies   (注入 Cookie)
        ↓
Camoufox 浏览器会话              (已认证浏览)

会话状态自动持久化到 ~/.camofox/profiles/,重启后认证状态保持。

2.5 代理 + GeoIP 自动适配

配置代理后,Camoufox 的 内建 GeoIP 自动设置语言、时区、地理位置,使其与代理 IP 所在地一致:

export PROXY_HOST=166.88.179.132
export PROXY_PORT=46040
export PROXY_USERNAME=myuser
export PROXY_PASSWORD=mypass

支持 backconnect 代理(旋转粘滞会话),每个浏览器上下文获得独立的粘滞 IP。

2.6 YouTube 字幕提取

通过内置 yt-dlp 支持,无需 API Key 即可从任意 YouTube 视频提取字幕:

curl -X POST <http://localhost:9377/youtube/transcript> \
  -H 'Content-Type: application/json' \
  -d '{"url": "<https://www.youtube.com/watch?v=dQw4w9WgXcQ>", "languages": ["en"]}'

2.7 资源优化

指标数值
空闲内存~40MB
最大并发会话50(可配置)
每会话最大标签10(可配置)
会话超时30 分钟
浏览器空闲超时5 分钟
处理器超时30 秒
部署要求树莓派 / $5 VPS / 共享机器均可

三、快速开始

Docker(推荐)

git clone <https://github.com/jo-inc/camofox-browser> && cd camofox-browser
make up
# → <http://localhost:9377>

自动检测 CPU 架构(aarch64/x86_64),首次下载约 300MB 的 Camoufox 二进制文件。

npm

npx @askjo/camofox-browser
# → <http://localhost:9377>

基础浏览

# 创建标签页
curl -X POST <http://localhost:9377/tabs> \
  -H 'Content-Type: application/json' \
  -d '{"userId": "agent1", "sessionKey": "task1", "url": "<https://example.com>"}'

# 获取无障碍快照
curl "<http://localhost:9377/tabs/TAB_ID/snapshot?userId=agent1>"

# 点击元素
curl -X POST <http://localhost:9377/tabs/TAB_ID/click> \
  -H 'Content-Type: application/json' \
  -d '{"userId": "agent1", "ref": "e1"}'

# 搜索
curl -X POST <http://localhost:9377/tabs/TAB_ID/navigate> \
  -H 'Content-Type: application/json' \
  -d '{"userId": "agent1", "macro": "@google_search", "query": "best coffee beans"}'

OpenClaw 插件

openclaw plugins install @askjo/camofox-browser

自动注册 9 个工具:camofox_create_tab · camofox_snapshot · camofox_click · camofox_type · camofox_navigate · camofox_scroll · camofox_screenshot · camofox_close_tab · camofox_list_tabs · camofox_import_cookies


四、架构设计

Browser Instance (Camoufox)
\-- User Session (BrowserContext) - 隔离 Cookie/Storage
    |-- Tab Group (sessionKey: "conv1")
    |   |-- Tab (google.com)
    |   \-- Tab (github.com)
    \-- Tab Group (sessionKey: "conv2")
        \-- Tab (amazon.com)
  • 会话自动过期:30 分钟无活动自动销毁
  • 浏览器自动启停:5 分钟无会话自动关闭,下次请求时自动启动
  • 标签页自动回收:达到上限时自动回收最旧/最少使用的标签页

安全模型

维度实现
Cookie 沙箱限制在 ~/.camofox/cookies/,阻止路径穿越
API Key 认证CAMOFOX_API_KEY 控制 Cookie 导入(默认禁用)
全局访问控制CAMOFOX_ACCESS_KEY 保护所有路由
遥测匿名化(私有域名 HMAC 哈希、路径剥离、Token 脱敏)后才发送
无内嵌密钥零凭据打包在包中,全部运行时注入

五、适用场景

  1. AI 代理网页自动化 — 让 AI 代理像真人一样浏览和操作网页
  2. 数据采集与竞争情报 — 绕过 Cloudflare 等保护抓取公开数据
  3. 社交平台运营自动化 — LinkedIn/Reddit/Twitter 等平台内容管理
  4. 电商比价与监控 — Amazon 等电商平台价格监控
  5. YouTube 内容分析 — 批量提取字幕、视频信息
  6. SaaS 后台操作 — 通过 Cookie 导入跳过登录流程

六、部署方案

Docker(自托管)

make up     # 构建并启动
make down   # 停止
make reset  # 强制重构建

Fly.io

fly launch
fly secrets set CAMOFOX_API_KEY="your-generated-key"
fly deploy

Railway

一键部署,railway.toml 已内置,自动映射 PORT 环境变量。


七、开源与许可

  • GitHub: jo-inc/camofox-browser
  • npm: @askjo/camofox-browser
  • 许可证: MIT
  • Stars: 7.4k+ · Forks: 757+
  • 构建者: jo 团队(个人 AI 代理产品)

Camofox Browser 本身是 MIT 开源的。底层 Camoufox 引擎由 daijro 维护,支持请考虑捐赠。

⚠️ 防骗提醒:Camofox 不是加密货币项目,也不会发行任何代币。任何以 Camofox 名义的代币/NFT 与此项目无关。


本文收录于 C456 AI 工具知识库,为 AI 开发者和代理提供反检测浏览器解决方案参考。

与其它条目的关联

信号、工具、渠道、打法可互相引用;点各卡片右上角加号可弹窗录入,未登录时会提示登录。补全后此处会显示可点链接。

信号

暂无关联的信号。请点右上角加号快速录入;未登录时会提示先登录。补全后在此显示可点链接。

工具

暂无关联的工具。请点右上角加号快速录入;未登录时会提示先登录。补全后在此显示可点链接。

渠道

暂无关联的渠道。请点右上角加号快速录入;未登录时会提示先登录。补全后在此显示可点链接。

打法

暂无关联的打法。请点右上角加号快速录入;未登录时会提示先登录。补全后在此显示可点链接。