不用TUN,一样可以在终端使用Claude Code
前几天用Claude code遇到的问题,终于解决了!具体问题如下: 在用Claude code时一个很奇怪的想象:在家里用总是偶发报API Error: 403 {"error":{"type":"forbidden","message":"Request not allowed"}}这个错误,似乎是网络问题,宽带、手机卡网络都试过了,宽带完全不能用,手机
王马扎
AI SaaS 创业者 / 独立开发者
前几天用Claude code遇到的问题,终于解决了!具体问题如下:
在用Claude code时一个很奇怪的想象:在家里用总是偶发报API Error: 403 {"error":{"type":"forbidden","message":"Request not allowed"}}这个错误,似乎是网络问题,宽带、手机卡网络都试过了,宽带完全不能用,手机热点用起来断断续续的。 但是在办公室却从来没有这个问题。
但是在办公室却从来没有这个问题。
昨天才知道,原来可以不开TUN模型,也可以正常使用Claude code,
这篇教程的目标只有一个:
让你不需要开启 TUN 模式,Claude Code 也能顺利通过VPN( 以v2rayN为例,其他类似 )实现代理访问。
看完本文,保证你能快速设置成功,不再为网络代理问题烦恼。
🛠️ 前置条件
-
已安装并正常使用 v2rayN或clash verge等其他类似软件。
-
已安装好 Claude Code CLI(Anthropic 提供的命令行工具)。
📌 第一步:确定本地代理端口
打开你的 v2rayN 客户端,查看最下面状态栏:
情况通常有以下两种:
- 情况 A(推荐):
- 本地: [http:10809] [socks:10808]
- 这里明确提供了 HTTP 代理端口 10809,记住它(大部分人都是这种情况)。
本地: [http:10809] [socks:10808]
这里明确提供了 HTTP 代理端口 10809,记住它(大部分人都是这种情况)。
- 情况 B:
- 本地: [mixed:10808]
- 只有 mixed 端口,端口号通常是 10808,也记下来,这个也可以用作 HTTP 代理。
本地: [mixed:10808]
只有 mixed 端口,端口号通常是 10808,也记下来,这个也可以用作 HTTP 代理。
简单来说:
-
有 [http:端口号],就用这个 HTTP 端口。
-
没有,就直接用 mixed 端口(通常 10808)。
📌 第二步:修改 Claude Code 的配置文件
打开你电脑的用户目录,比如 macOS 或 Linux 一般都是:
~/.claude/settings.json
Windows 则是:
%USERPROFILE%\\.claude\\settings.json
如果文件不存在,直接新建即可。
把下面的内容写进去(端口一定要换成你刚才记下的端口号!):
{
"env": {
"HTTP_PROXY": "<http://127.0.0.1:10809>",
"HTTPS_PROXY": "<http://127.0.0.1:10809>"
}
}
比如你用的是 mixed 端口 10808,那么就改成:
{
"env": {
"HTTP_PROXY": "<http://127.0.0.1:10808>",
"HTTPS_PROXY": "<http://127.0.0.1:10808>"
}
}
📌 第三步:重新启动终端并测试
设置完上面的配置后,请关掉你当前打开的终端窗口,然后重新打开一个全新的终端窗口,执行下面的测试命令:
claude whoami
或者用 curl 命令进行测试:
curl -x <http://127.0.0.1:10809> <https://api.anthropic.com/v1/versions>
-
如果你看到正常返回的信息,表示 Claude Code 已经成功通过代理访问互联网了。
-
如果提示错误,请继续往下看常见问题排查。
❓ 常见问题排查(看这里就够了)
1. 端口填错或未启动 v2rayN
现象:
- Claude Code 提示连接失败(connection refused)。
排查方法:
-
仔细核对你填写的端口号和 v2rayN 底部状态栏是否一致。
-
检查 v2rayN 客户端是否运行正常。
2. 节点故障或超时
现象:
- curl 命令返回 503 错误或连接超时。
排查方法:
- 更换 v2rayN 的节点(服务器),或用浏览器通过 v2rayN 测试一下是否能正常打开 Google 等外网网站。
3. 开了 TUN 模式反而失效
现象:
- 明明配置正确,但 Claude Code 就是不走代理。
排查方法:
-
关闭 v2rayN 的 TUN 模式(在 v2rayN 界面左下角取消勾选「启用TUN」)。
-
使用纯 HTTP 代理方式更稳定。
4. 只有 SOCKS 没有 HTTP 代理
现象:
- v2rayN 状态栏只显示 [socks:10808],没有 [http:端口号]。
解决方法:
-
打开 v2rayN 设置 → 本地代理设置 → 勾选「启用 HTTP 代理」,重启 v2rayN 即可。
-
或者直接使用 mixed 端口(比如 10808)作为 HTTP 代理(推荐)。
🚀 总结一下:
-
看 v2rayN 底部,确定 HTTP 或 mixed 端口号(如 10809 或 10808)。
-
在 ~/.claude/settings.json 中设置:
{
"env": {
"HTTP_PROXY": "<http://127.0.0.1>:你的端口号",
"HTTPS_PROXY": "<http://127.0.0.1>:你的端口号"
}
}
- 重启终端,测试 claude whoami,确认连接成功。
完成以上操作,不需要开启 TUN 模式,Claude Code 就能稳定通过 v2rayN 的代理访问外网。
💡 写在最后:
- 为啥推荐这种方式?
- 系统级代理(TUN)虽然能覆盖所有流量,但容易掉线或出问题。单独为 Claude Code 配置 HTTP 代理,更简单、更稳定,也更安全。
系统级代理(TUN)虽然能覆盖所有流量,但容易掉线或出问题。单独为 Claude Code 配置 HTTP 代理,更简单、更稳定,也更安全。
- 可选进阶玩法
- 如果想监控 Claude Code 的用量(Token),可以在配置文件额外加上:
如果想监控 Claude Code 的用量(Token),可以在配置文件额外加上:
"CLAUDE_CODE_ENABLE_TELEMETRY": "1",
"OTEL_METRICS_EXPORTER": "otlp"
这样你还能实时监测用量,避免账单惊喜。
教程到这里就结束了。
如果你成功了,记得告诉我一声;如果有任何问题,欢迎留言讨论。
