想在国内使用 Claude Code 进行 AI 编程,真正需要解决的通常不是“把节点导入客户端”这么简单,而是让终端进程能够通过正确的本地代理访问服务,同时避免系统代理、终端变量和分流规则互相冲突。v2rayN 负责建立本地代理入口,Claude Code 负责发起 HTTPS 请求,二者之间还要经过操作系统的环境变量传递。
本文面向第一次配置终端代理的开发者,按“选择 v2rayN 版本—导入订阅—确认本地端口—设置终端变量—验证请求—排查分流”的顺序操作。示例以 Windows 11、v2rayN 7.x、Xray 内核和 PowerShell 为主,同时给出 macOS、Linux 终端的变量写法。文中只讨论客户端与网络配置,不提供账号获取或服务绕过方案。
先理解 Claude Code 与 v2rayN 的关系
Claude Code 是运行在终端中的命令行工具。它访问模型服务时,通常使用 HTTPS 连接;v2rayN 并不会直接“接管”某个命令,而是在本机监听 HTTP、SOCKS 或其他代理端口。只有当终端程序读取到这些端口,或者请求经过系统代理设置时,流量才会进入 v2rayN。
因此,浏览器能够打开网页,并不代表 Claude Code 一定能连接。浏览器可能自动读取 Windows 系统代理,终端程序却只读取 HTTP_PROXY、HTTPS_PROXY 或 ALL_PROXY 等环境变量。反过来,如果终端变量仍然指向旧端口,即使 v2rayN 当前节点正常,Claude Code 也可能报连接超时。
还要区分“网络可达”和“账号可用”两个层次。代理只能改变请求到达服务端的路径,不能替代有效的账户、授权令牌、套餐权限或服务条款。完成代理配置后,如果返回 401、403 或账户相关提示,应转向检查认证信息和账户状态,而不是继续更换节点。
先判断请求由谁发起
如果你是在终端运行 Claude Code,优先检查终端环境变量;如果是编辑器内置终端,变量还可能受到编辑器启动方式影响。建议先关闭旧终端窗口,再从已经确认代理正常的环境中打开新终端,避免旧进程继续使用过期变量。
准备 v2rayN 与节点配置
建议从本站前往下载页面获取适合当前 Windows 架构的 v2rayN 安装包或压缩包。首次使用时不要同时运行多个代理客户端,也不要把 v2rayN、其他终端代理工具和系统 VPN 叠加到一起。多个程序同时监听 10808 或 10809 时,最常见结果是端口占用、请求走错代理,或者关闭一个客户端后另一个程序仍保留旧状态。
启动 v2rayN 后,先导入服务提供方给出的订阅链接。在主界面找到“订阅分组”或同等入口,新增订阅地址并执行更新。节点列表出现后,选择一个延迟较低、最近测试可用的节点。不要只根据延迟数字判断 Claude Code 是否能用,因为延迟测试往往只验证 TCP 或 ICMP,不能完整代表 HTTPS 握手与长连接质量。
确认客户端版本
启动 v2rayN,在“设置”或“关于”区域记录版本号与当前 Core 类型。本文以 v2rayN 7.x、Xray 内核为例;界面名称可能因小版本不同略有变化,但本地端口和系统代理逻辑相同。
添加订阅分组
进入“订阅分组”→“订阅设置”→“添加”,粘贴完整订阅链接并保存。随后执行“更新全部订阅”,确认返回节点列表,而不是登录页、错误页面或空白内容。
选择可用节点
在节点列表中选择一条近期测试成功的线路,右键执行延迟测试或连接测试。测试期间记录节点名称和时间,后面排查时不要频繁更换多个变量。
开启系统代理
在 v2rayN 主界面打开“系统代理”,选择全局、规则或与当前版本对应的代理模式。首次配置建议先用全局模式验证终端链路,确认成功后再切回规则模式。
检查本地监听
进入“设置”→“参数设置”→“核心基础设置”或“本地端口”区域,记录 HTTP 端口和 SOCKS 端口。若端口不是 10809、10808,后续环境变量必须替换为实际数字。
HTTP 代理变量
- 地址
- 127.0.0.1
- 端口
- 10809
- 协议
- http://
适合多数读取 HTTP_PROXY 与 HTTPS_PROXY 的命令行程序。
SOCKS 代理变量
- 地址
- 127.0.0.1
- 端口
- 10808
- 协议
- socks5://
只有程序明确支持 SOCKS 环境变量时才优先使用。
设置终端代理变量
在 Windows 上,推荐先使用 PowerShell 做一次临时配置。临时变量只对当前窗口及其启动的子进程生效,不会修改系统全局设置,适合测试。假设 v2rayN 的 HTTP 代理端口为 10809,可执行以下命令:
$env:HTTP_PROXY="http://127.0.0.1:10809"
$env:HTTPS_PROXY="http://127.0.0.1:10809"
$env:NO_PROXY="localhost,127.0.0.1"
claude
如果你的 v2rayN 使用其他端口,把两处 10809 一起替换。NO_PROXY 用于让本机地址不经过代理,避免开发服务器、localhost 调试接口或本地 API 因代理绕行而变慢。不要把订阅链接、访问令牌或密码直接写进公开脚本和项目仓库。
在 Windows CMD 中,临时变量写法是:
set HTTP_PROXY=http://127.0.0.1:10809
set HTTPS_PROXY=http://127.0.0.1:10809
set NO_PROXY=localhost,127.0.0.1
claude
macOS 或 Linux 终端可使用 shell 的 export 写法。虽然本文重点介绍 v2rayN,但只要桌面端客户端提供一个可访问的本地 HTTP 代理端口,变量格式通常不变:
export HTTP_PROXY="http://127.0.0.1:10809"
export HTTPS_PROXY="http://127.0.0.1:10809"
export NO_PROXY="localhost,127.0.0.1"
claude
如果 Claude Code 或其依赖程序明确要求 SOCKS,可以额外设置 ALL_PROXY,但不要在 HTTP 代理和 SOCKS 代理之间反复切换。常见写法如下:
$env:ALL_PROXY="socks5://127.0.0.1:10808"
某些程序只识别大写变量,另一些程序只读取小写变量。遇到“终端测试正常、工具仍超时”的情况,可以在当前会话同时设置小写版本,但应先确认没有旧值覆盖新值:
$env:http_proxy=$env:HTTP_PROXY
$env:https_proxy=$env:HTTPS_PROXY
不要把代理变量永久写入项目配置
项目目录中的 .env、构建脚本和 shell 历史记录可能被提交或同步。代理地址本身通常不是敏感信息,但认证令牌属于凭据。建议先用临时变量验证,确认稳定后再按个人设备的 shell 配置文件管理,并把敏感字段排除在版本控制之外。
验证 Claude Code 的连接链路
设置变量后,先不要立即进行大型代码分析。验证应分成三层:第一层确认 v2rayN 的节点连接正常;第二层确认终端能够通过本地端口建立 HTTPS 连接;第三层才是确认 Claude Code 的认证请求可以完成。每一层只解决一个问题,定位会比直接反复登录更快。
- 客户端层:查看 v2rayN 状态栏是否显示已运行,确认当前节点没有持续重连,并观察核心日志中是否出现连接失败。
- 端口层:在 PowerShell 中用
Test-NetConnection 127.0.0.1 -Port 10809检查本地 HTTP 端口是否处于监听状态。返回端口不可达时,先修复 v2rayN,而不是修改 Claude Code。 - 变量层:执行
Get-ChildItem Env:HTTP_PROXY,Env:HTTPS_PROXY,确认当前窗口中的值与 v2rayN 实际端口一致。 - 应用层:启动 Claude Code,观察是连接超时、TLS 错误、认证失败,还是请求已经到达但权限不足。不同提示对应不同处理方向。
结论:先验证本地端口,再验证远端服务
如果 127.0.0.1:10809 根本没有监听,修改域名分流、重新登录或更换账户都没有意义。只有本地端口可达、节点稳定、环境变量正确后,才值得继续判断远端服务或授权问题。
调整分流与终端使用范围
首次配置时使用全局模式,目的是排除规则误判。全局模式下,如果 Claude Code 能够正常完成登录和一次简单请求,说明终端变量与节点链路基本成立。之后可以切回规则模式,并确认相关服务域名、认证域名和依赖接口没有被错误地判定为直连。
规则模式下常见现象是“主页能打开,但登录失败”或“登录完成后请求超时”。这通常不是单一域名的问题:认证页面、接口域名、静态资源和模型请求可能由不同主机提供。不要凭猜测把大量域名加入规则;应结合 v2rayN 日志查看目标域名和出站结果,再针对实际请求调整。
| 现象 | 优先检查 | 建议操作 |
|---|---|---|
| 终端提示连接超时 | HTTP_PROXY、HTTPS_PROXY 和本地端口 | 确认端口监听,再用全局模式重试 |
| 登录页反复跳转 | 认证相关域名是否被直连 | 查看 v2rayN 日志,按实际域名调整规则 |
| 返回 401 或 403 | 认证令牌、账户状态、权限 | 重新检查合法凭据,不要把它误判成节点故障 |
| 请求成功但速度很慢 | 节点丢包、出口拥塞和 DNS | 固定变量测试另一条稳定节点,比较响应时间 |
| 编辑器终端与独立终端结果不同 | 编辑器启动时是否继承环境变量 | 完全退出编辑器后重新打开,再检查变量 |
如果电脑上同时运行本地开发服务器,建议将 localhost、127.0.0.1 和必要的内网地址加入 NO_PROXY。代理只应承担需要访问远端服务的请求,不要让本地调试接口经过远端节点。使用 TUN 或更复杂的透明代理模式时,也要留意 Docker、虚拟机和局域网服务的访问是否受到路由规则影响。
常见报错与稳定性处理
v2rayN 已连接,Claude Code 仍然超时怎么办?
先在同一个终端执行环境变量查看命令,确认 HTTPS_PROXY 指向当前 HTTP 端口。然后关闭并重新打开终端,再用全局模式测试;如果本地端口不可达,优先检查 v2rayN 是否被防火墙或其他程序关闭。
应该使用 10808 还是 10809?
优先使用 v2rayN 实际显示的 HTTP 端口设置 HTTP_PROXY 和 HTTPS_PROXY。10808 通常是 SOCKS 端口,只有程序明确支持 SOCKS 时才设置 ALL_PROXY。
为什么 PowerShell 可以用,编辑器终端不行?
编辑器可能在设置代理变量之前已经启动,内置终端继承的是旧环境。完全退出编辑器后,在 v2rayN 已运行的状态下重新打开,再检查编辑器终端中的变量值。
登录失败是不是一定要换节点?
不是。401、403 或明确的授权提示通常指向凭据、账户或权限;只有 DNS 失败、连接超时、TLS 握手失败等网络错误,才适合继续检查节点和分流。
稳定性测试建议固定一条节点、一个终端窗口和一组环境变量,连续观察 10 至 15 分钟。若核心日志每几秒出现一次重连,说明线路质量、远端地址或时间同步存在问题;若只有大型请求耗时增加,则应比较节点带宽、丢包和服务端响应时间。不要在同一轮测试中同时切换客户端、内核、节点和规则,否则无法判断哪一个改动产生了影响。