Camofox Browser · 为 AI 代理打造的反检测无头浏览器
> 当 Playwright 被屏蔽、Headless Chrome 被指纹识别、各种隐身插件本身成了特征——Camofox Browser 选择另一种思路:在 C++ 层面伪装浏览器指纹,让 AI 代理像真人一样浏览网页。 Camofox Browser --- 一、背景:AI 代理的浏览困境 AI 代理需要访问真实的网页来完成各种任务——抓取信息、操作后台、自动化工作流。但现实是: - Pla…
正文
当 Playwright 被屏蔽、Headless Chrome 被指纹识别、各种隐身插件本身成了特征——Camofox Browser 选择另一种思路:在 C++ 层面伪装浏览器指纹,让 AI 代理像真人一样浏览网页。
一、背景: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 脱敏)后才发送 |
| 无内嵌密钥 | 零凭据打包在包中,全部运行时注入 |
五、适用场景
- AI 代理网页自动化 — 让 AI 代理像真人一样浏览和操作网页
- 数据采集与竞争情报 — 绕过 Cloudflare 等保护抓取公开数据
- 社交平台运营自动化 — LinkedIn/Reddit/Twitter 等平台内容管理
- 电商比价与监控 — Amazon 等电商平台价格监控
- YouTube 内容分析 — 批量提取字幕、视频信息
- 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 开发者和代理提供反检测浏览器解决方案参考。
与其它条目的关联
信号、工具、渠道、打法可互相引用;点各卡片右上角加号可弹窗录入,未登录时会提示登录。补全后此处会显示可点链接。
信号
暂无关联的信号。请点右上角加号快速录入;未登录时会提示先登录。补全后在此显示可点链接。
工具
暂无关联的工具。请点右上角加号快速录入;未登录时会提示先登录。补全后在此显示可点链接。
渠道
暂无关联的渠道。请点右上角加号快速录入;未登录时会提示先登录。补全后在此显示可点链接。
打法
暂无关联的打法。请点右上角加号快速录入;未登录时会提示先登录。补全后在此显示可点链接。