
最近很多小伙伴在公司内网开发时,想要使用强大的claude-code工具,但却遇到了一个棘手的问题:
公司内网机器完全隔离,无法访问外网。 虽然我们知道可以通过设置 ANTHROPIC_BASE_URL 环境变量来指向内网的 DeepSeek 等服务,但 claude-code 仍然会报错 "request time" 或连接失败。
经过分析和测试,发现根本原因是:**claude-code 在启动时会进行网络连通性检查,即使你配置了内网 API 地址,这个预检查失败也会导致程序无法正常使用。**
既然claude-code一定要检查网络,那我们就"欺骗"它一下:
在本地启动一个 HTTP 代理,让claude-code的网络检查请求通过这个代理,但实际上代理会将请求重定向到我们的内网 API 服务。
这样:
claude-code 认为自己有网络(因为检查通过了)在开始之前,请确保你已经准备好:
claude-code 已安装这里我们使用 pproxy 作为代理工具,你也可以使用其他任何 HTTP 代理。
# 安装 pproxy (如果尚未安装) pip install pproxy # 启动一个本地 HTTP 代理,端口 8899 pproxy -l http://127.0.0.1:8899 这个代理会监听本地的 8899 端口,将所有经过它的请求转发到目标地址。
使用以下完整的启动命令:
export ANTHROPIC_BASE_URL=http://localhost:3456 \ && export ANTHROPIC_AUTH_TOKEN=1 \ && export CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000 \ && export HTTPS_PROXY=http://127.0.0.1:8899 \ && export HTTP_PROXY=http://127.0.0.1:8899 \ && export NO_PROXY="localhost example.com .example.com" \ && claude 让我们逐个分析这些环境变量的作用:
ANTHROPIC_BASE_URL=http://localhost:3456
指定 Claude Code 实际要连接的内网 API 地址(这里假设你的内网服务在 3456 端口)
ANTHROPIC_AUTH_TOKEN=1
认证令牌,根据你的内网服务要求设置
CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000
设置最大输出 token 数,可根据需要调整
HTTPS_PROXY=http://127.0.0.1:8899
设置 HTTPS 流量走我们的本地代理
HTTP_PROXY=http://127.0.0.1:8899
设置 HTTP 流量走我们的本地代理
NO_PROXY="localhost example.com .example.com"
设置不需要代理的地址,避免代理循环
claude-code ↓ (请求经过代理) HTTP 代理 (localhost:8899) ↓ (请求被重定向) 内网 API 服务 (localhost:3456 或你的内网地址) ↓ DeepSeek 等 AI 服务 首先启动代理服务:
# 终端 1 - 启动代理 pproxy -l http://127.0.0.1:8899 然后在新终端中启动 Claude Code:
# 终端 2 - 启动 Claude Code export ANTHROPIC_BASE_URL=http://你的内网 API 地址:端口 \ && export ANTHROPIC_AUTH_TOKEN=你的令牌 \ && export HTTPS_PROXY=http://127.0.0.1:8899 \ && export HTTP_PROXY=http://127.0.0.1:8899 \ && claude 验证是否正常工作:
如果你有更复杂的代理需求,可以使用 squid:
# 安装 squid sudo apt-get install squid # 配置 squid (/etc/squid/squid.conf ) http_port 3128 visible_hostname squid-proxy # 启动 squid sudo systemctl start squid # 然后设置环境变量 export HTTP_PROXY=http://localhost:3128 export HTTPS_PROXY=http://localhost:3128 为了方便使用,可以创建一个启动脚本 start_claude.sh:
#!/bin/bash # 设置环境变量 export ANTHROPIC_BASE_URL=http://localhost:3456 export ANTHROPIC_AUTH_TOKEN=1 export CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000 export HTTPS_PROXY=http://127.0.0.1:8899 export HTTP_PROXY=http://127.0.0.1:8899 export NO_PROXY="localhost,127.0.0.1" echo "启动 Claude Code (内网模式)..." claude 给脚本执行权限:
chmod +x start_claude.sh ./start_claude.sh Q1: 仍然提示网络错误
curl -x http://127.0.0.1:8899 http://www.example.comQ2: 连接超时
ANTHROPIC_BASE_URL 是否正确指向可用的内网服务Q3: 认证失败
ANTHROPIC_AUTH_TOKEN 是否设置正确启用详细日志输出:
export DEBUG=* export NODE_DEBUG=net,http,https 然后重新启动 Claude Code 查看详细日志。
通过这种"欺骗"网络检查的方法,我们成功在纯内网环境中使用了 Claude Code 。这种方法的关键在于:
这种方法不仅适用于 Claude Code ,对于其他有类似网络检查需求的工具也同样有效。
希望这篇文档能帮助到在内网环境下奋斗的开发者们!如果有任何问题,欢迎在评论区讨论。
标签: #内网开发 #ClaudeCode #HTTP 代理 #DeepSeek #开发工具技巧
1 jaff 5 天前 感谢分享,deepseek + claude code 效果怎么样? 与 sonet 4.5 thinking 比? |
2 alwayslan 5 天前 div class="sep5"> 收藏备用 |
3 siweipancc 4 天前 via iPhone 备用,回国用这套 |