Claude Code 能启动,但请求超时
检查 代理变量对这个进程不可见,或者地址只在 Windows 上有效。
处理 运行 /status 看 Proxy 一行。如果是空的,就在 claude 运行的地方设变量;如果有值,就在同一个终端里用 curl 测同一个 URL。
停止条件 curl 也失败,就先修代理:问题不在 Claude Code。
Claude Code 不走代理,多半是变量设错了地方,而不是代理有问题。本文讲在 Windows 和 WSL 里该设在哪,以及每一步怎么验证。
原因 1:变量设错了地方。在 WSL 终端里启动的 Claude Code 是 Linux 进程,在 Windows PowerShell 里设的变量传不到它,除非用 WSLENV 传过去;反过来也一样。在 shell 里 export 的变量只在启动时读一次,后台代理又由同一个守护进程启动,所以 settings.json 是最稳妥的位置。
原因 2:地址只在 Windows 上有效。WSL 默认是 NAT 模式,WSL 里的 127.0.0.1 指的是 WSL 自己,所以跑在 Windows 上、监听 127.0.0.1 的代理客户端它够不到。要用 Windows 主机的 IP,或者把 WSL 切到镜像模式,这时 127.0.0.1 就能访问 Windows 上的服务。
原因 3:URL 不是 Claude Code 接受的写法。它不支持 SOCKS,而且 URL 少了 http:// 会让启动报错,并指出是哪个变量。
| 项目 | 变量设在哪 | 怎么连 Windows 上的代理客户端 |
|---|---|---|
| 原生 Windows(PowerShell) | 单次会话用 $env:HTTPS_PROXY,长期用 %USERPROFILE%\.claude\settings.json 的 env 块 | 用 127.0.0.1 加代理客户端的端口 |
| WSL,NAT 模式(默认) | 在 WSL 终端里 export,或写进该发行版里 ~/.claude/settings.json 的 env 块 | 127.0.0.1 是 WSL 自己;用 Windows 主机 IP,并让客户端接受来自它的连接 |
| WSL,镜像模式 | 同上 | 127.0.0.1 可访问 Windows 上的服务(Windows 11 22H2 及以上) |
| 把 Windows 的值带进 WSL | 用 WSLENV,或设 autoProxy=true 复制 Windows 的 HTTP 代理信息 | 代理主机在外网时不需要 |
来自 Claude Code 的网络和设置页面,以及 Microsoft 的 WSL 网络页面,2026 年 11 月 15 日阅读。新版本的行为可能变化。
在你启动 claude 的同一个终端里,用 curl -x 加代理 URL 请求 https://ipinfo.io/json。这一步失败,说明地址、端口、协议或账号密码有问题,Claude Code 也一定连不上。
写成 http://USERNAME:PASSWORD@HOST:PORT。Claude Code 不支持 SOCKS。密码里有特殊字符时,要做百分号编码。
按下面的命令,WSL 用 bash,Windows 用 PowerShell。再加上 NO_PROXY,写上你的工具会访问的本地地址,比如 localhost 和 127.0.0.1。
把同样的值写进那个系统里 settings.json 的 env 块。如果启动环境里已经设置了同名变量,settings 里的值会被忽略,所以别在两处设不同的值。
启动 claude,运行 /status:Proxy 一行显示正在使用的代理 URL。想看更多细节,用 claude --debug 启动再读日志。
# Inside the WSL terminal, before you start claude
export HTTPS_PROXY="http://USERNAME:PASSWORD@HOST:PORT"
export HTTP_PROXY="$HTTPS_PROXY"
export NO_PROXY="localhost,127.0.0.1"
# What does the proxy show? (a wrong login or port fails here, not in Claude Code)
curl -sS -x "$HTTPS_PROXY" https://ipinfo.io/json
claude
仅为示例。把 USERNAME、PASSWORD、HOST、PORT 换成你自己的。
# Windows PowerShell, native Claude Code on Windows
$env:HTTPS_PROXY = "http://USERNAME:PASSWORD@HOST:PORT"
$env:HTTP_PROXY = $env:HTTPS_PROXY
$env:NO_PROXY = "localhost,127.0.0.1"
claude
仅为示例。只对当前 PowerShell 窗口有效。
{
"env": {
"HTTPS_PROXY": "http://USERNAME:PASSWORD@HOST:PORT",
"HTTP_PROXY": "http://USERNAME:PASSWORD@HOST:PORT",
"NO_PROXY": "localhost,127.0.0.1"
}
}
仅为示例。文件是 ~/.claude/settings.json;在 Windows 上是 %USERPROFILE%\.claude\settings.json。
# C:\Users\<you>\.wslconfig (Windows 11 22H2 or later)
[wsl2]
networkingMode=mirrored
autoProxy=true
仅为示例,来自 Microsoft 的 WSL 页面。修改后重启 WSL。
# PowerShell: pass variables from Windows into a WSL process
$env:HTTPS_PROXY = "http://USERNAME:PASSWORD@HOST:PORT"
$env:NO_PROXY = "localhost,127.0.0.1"
$env:WSLENV = "HTTPS_PROXY:NO_PROXY"
wsl claude
# WSL in the default NAT mode: the Windows host as seen from WSL
ip route show | grep -i default | awk '{ print $3}'
示意代码。最后一行是 Microsoft 给出的、在 WSL 里查 Windows 主机 IP 的命令。
检查 代理变量对这个进程不可见,或者地址只在 Windows 上有效。
处理 运行 /status 看 Proxy 一行。如果是空的,就在 claude 运行的地方设变量;如果有值,就在同一个终端里用 curl 测同一个 URL。
停止条件 curl 也失败,就先修代理:问题不在 Claude Code。
检查 代理 URL 解析不了,比如开头没有 http://。
处理 写完整的 URL:协议、账号、密码、主机、端口。
停止条件 别试 socks5:// 的写法:Claude Code 不支持 SOCKS。
检查 变量根本没传进 WSL。
处理 在 WSL 终端里设,或写进该发行版里的 settings.json,或用 WSLENV 传。
停止条件 检查有没有在两个地方设了同名但值不同的变量。
检查 访问本地服务的请求也被送去了代理。
处理 把本地主机加进 NO_PROXY,例如 localhost,127.0.0.1。
停止条件 * 表示所有请求都不走代理,只有你确实想这样才用。
Claude Code 需要的是 HTTP 代理 URL,Proxy302 的 HTTP 代理可以提供:主机 proxy.proxy302.com,端口 2222,账号密码在「我的资产」里。静态 ISP IP 在整个租期内固定不变、不轮换,一个账号就一直用同一个地址。代理不会改变 Anthropic 的条款:请只在 Claude 支持的地区使用,因为政策限制人员在不受支持的地区实际所在时使用。如果出现验证,请如实完成;页面打不开,先检查网络和 IP 本身,再带订单号提交工单。
静态 ISP IP 一天 US$0.50,30 天 US$7.99,所有国家价格相同,协议在购买时按每个 IP 选择。自动续费是可选的,可以在「我的资产」里关闭。没有免费试用,最小购买单位是一个 IP 一天。
不支持。Claude Code 的网络文档写明它不支持 SOCKS 代理,请使用 HTTP 代理 URL。
从 claude 所在发行版 Linux 主目录里的 ~/.claude/settings.json 读。Windows 版用 %USERPROFILE%\.claude\settings.json。
通常是变量设在了和运行 claude 的不同的 shell 或系统里,或者启动环境里已有同名变量,导致 settings 里的值被忽略。
不用。它让 WSL 里的 127.0.0.1 能访问 Windows,需要 Windows 11 22H2 或更高版本。不用它,就用 Windows 主机 IP。
产品观察 · 确认日期:
站点的产品信息文件(数值于 2026 年 10 月 18-19 日对照控制台、后端和价格表核对):以美元计价(1 PTC = 1 美元)、租期、协议和端口、没有免费试用。
官方文档 · 确认日期:
2026 年 11 月 15 日阅读:Claude Code 读取 HTTPS_PROXY、HTTP_PROXY 和 NO_PROXY(空格或逗号分隔,* 表示全部)及其小写形式;不支持 SOCKS 代理;账号密码写在代理 URL 里;在 shell 里 export 的变量只在启动时读取一次;同样的变量也可以写进 settings.json;后台代理由同一个守护进程托管,所以变量要写进 ~/.claude/settings.json 的 env;/status 有 Proxy 一行;无法解析的代理 URL(比如缺少 http://)会让启动报错;启动环境里已设置的变量会让 settings 里的同名值被忽略。
官方文档 · 确认日期:
2026 年 11 月 15 日阅读:用户级设置文件是 ~/.claude/settings.json;在 Windows 上 ~/.claude 指 %USERPROFILE%\.claude;/status 会列出加载了哪些设置文件;settings 里的 env 块是普通键。
官方文档 · 确认日期:
2026 年 11 月 15 日阅读:WSL 默认是 NAT 网络;从 Linux 访问 Windows 要用主机 IP,可用 ip route show | grep -i default | awk '{ print $3}' 查到;设 networkingMode=mirrored(Windows 11 22H2 及以上)后,Linux 可用 127.0.0.1 访问 Windows 上的服务;autoProxy=true 让 WSL 使用 Windows 的 HTTP 代理信息。
官方文档 · 确认日期:
2026 年 11 月 15 日阅读:WSLENV 是用冒号分隔的变量名列表,列出的变量会在 Windows 和 WSL 进程之间传递;/u(仅从 Windows 启动 WSL 时)、/w 等标记改变方向。
官方文档 · 确认日期:
2026 年 11 月 15 日阅读:政策限制人员在不受支持的地区实际所在时使用。
注册账号、充值一次,就能选动态住宅、静态 ISP 或数据中心 IP,几分钟配进你的浏览器。