公司代理后面让 Claude Code 找到聚合站 base URL
本文介绍在公司代理环境下配置 Claude Code 以访问 LLM API 聚合站的方法。涵盖代理环境变量设置、TLS 拦截问题的排查与解决,以及覆盖 base URL 以使用 OpenAI 兼容端点的具体步骤。
理解代理环境
在公司网络中,所有外部请求通常需要经过代理服务器。Claude Code 作为命令行工具,会遵循标准的代理环境变量。因此,正确设置这些变量是第一步。
设置代理环境变量
Claude Code 使用 HTTPPROXY、HTTPSPROXY 和 NO_PROXY 环境变量。请根据公司代理的地址和端口进行设置。
- 在 Linux/macOS 的 shell 中,可以临时导出变量:
- 在 Windows 上,可以通过系统属性或命令行设置。
```bash
export HTTPS_PROXY=http://proxy.example.com:8080
export HTTP_PROXY=http://proxy.example.com:8080
export NO_PROXY=localhost,127.0.0.1,.internal
```
注意:代理地址需替换为公司实际提供的地址。如果代理需要认证,请在 URL 中包含用户名和密码,例如 http://user:pass@proxy.example.com:8080。
处理 TLS 拦截
许多公司代理会进行 TLS 拦截(中间人解密),这会导致 Claude Code 在连接 HTTPS 端点时证书验证失败。常见错误包括 UNABLETOVERIFYLEAFSIGNATURE 或 SELFSIGNEDCERTINCHAIN。
解决方法有两种:
- 将公司根证书加入信任链(推荐)。请联系 IT 部门获取根证书(通常是
.crt或.pem文件),并配置系统或 Node.js 信任该证书。
- 对于 Node.js,可以设置
NODEEXTRACA_CERTS环境变量指向证书文件: - 确保该变量在启动 Claude Code 的终端中生效。
```bash
export NODEEXTRACA_CERTS=/path/to/company-root.crt
```
- 临时跳过 TLS 验证(不推荐,仅用于测试)。可以设置
NODETLSREJECT_UNAUTHORIZED=0,但这会降低安全性,不应在生产环境使用。
覆盖 base URL 以使用 OpenAI 兼容端点
LLM API 聚合站通常提供 OpenAI 兼容的端点。Claude Code 默认连接 Anthropic 的 API,但可以通过环境变量覆盖 base URL。
- 设置
ANTHROPICBASEURL为聚合站的端点地址,例如:
```bash
export ANTHROPICBASEURL=https://api.example.com/v1
```
注意:具体路径请参考聚合站文档。
- 同时需要设置 API key:
```bash
export ANTHROPICAPIKEY=yourapikey
```
如果聚合站要求使用 OpenAI 格式的路径,可能需要额外设置 OPENAIBASEURL 或类似变量,但 Claude Code 主要识别 ANTHROPICBASEURL。请确保端点路径正确,通常以 /v1 结尾。
验证连接
配置完成后,运行一个简单命令测试连通性,例如 claude --version 或发起一个测试请求。如果遇到连接问题,请检查代理设置、证书信任和 base URL 是否正确。
常见问题排查
- 代理连接失败:确认代理地址和端口,检查
NO_PROXY是否意外包含了目标域名。 - 证书错误:确保
NODEEXTRACA_CERTS指向正确的根证书,并重启终端。 - 404 或 401 错误:检查 base URL 是否包含
/v1,以及 API key 是否有效。 - 超时:可能是代理需要认证或网络策略限制,联系网络管理员。
通过以上步骤,你可以在公司代理环境下顺利使用 Claude Code 访问聚合站。