Skip to main content
cac 应用多层独立的防护机制。每层独立运作——组合在一起提供纵深防御。

概览

第 0 层:代理路由

配置代理时。 claude 的所有出站流量都通过你的代理。
  • HTTPS_PROXYHTTP_PROXYALL_PROXY 设置为代理 URL
  • NO_PROXY 设置为 localhost,127.0.0.1
  • 检测到 TUN 时自动中继
未配置代理时。 不设置代理环境变量。流量直连。保留 ANTHROPIC_API_KEY

第 1 层:设备指纹伪装

每个环境生成唯一的设备标识符: 在两个层面进行伪装:Shell 代理脚本(用于命令行工具)和 Node.js 钩子(用于编程访问)。

第 2 层:遥测环境变量

第 3 层:HOSTALIASES

通过 HOSTALIASES 环境变量将遥测域名映射到 0.0.0.0
gethostbyname() 层面生效——作为 DNS 守卫的备用方案。

第 4 层:DNS 守卫 + fetch 拦截

cac-dns-guard.js 通过 NODE_OPTIONS --require 加载:
  • 拦截 dns.lookup()dns.resolve() 以阻止遥测域名
  • 替换 global.fetch 以阻止/重定向遥测请求
  • 管理 NO_PROXY 以配合健康检查绕过的时序

第 5 层:健康检查绕过

Claude Code 在启动时 ping api.anthropic.com/api/hello。通过代理时,Cloudflare 返回 403。 cac 的 dns-guard.js 在进程内拦截对该 URL 的 https.requestfetch 调用,直接返回伪造的 HTTP 200 响应。无需本地 HTTPS 服务器,无需修改 /etc/hosts,无需 root 权限。拦截完全透明,在 Node.js 进程内完成。 仅在配置了代理时激活。

第 6 层:mTLS 证书

每个环境都有一个由 cac CA(~/.cac/ca/ca_cert.pem)签发的客户端证书。通过以下方式注入:
  • CAC_MTLS_CERT / CAC_MTLS_KEY — 证书路径
  • NODE_EXTRA_CA_CERTS — CA 信任

第 7 层:配置隔离

CLAUDE_CONFIG_DIR 指向 ~/.cac/envs/<name>/.claude/ 而非 ~/.claude/。这隔离了:
  • 认证令牌(OAuth / 会话)
  • 设置(settings.json
  • 项目记忆
  • 会话历史
  • Statsig 状态