返回博客
CMS 发布2025年6月21日4 分钟阅读

不用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 代理(推荐)。


🚀 总结一下:

  1. 看 v2rayN 底部,确定 HTTP 或 mixed 端口号(如 10809 或 10808)。

  2. 在 ~/.claude/settings.json 中设置:

{
  "env": {
    "HTTP_PROXY": "<http://127.0.0.1>:你的端口号",
    "HTTPS_PROXY": "<http://127.0.0.1>:你的端口号"
  }
}
  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"

这样你还能实时监测用量,避免账单惊喜。


教程到这里就结束了。

如果你成功了,记得告诉我一声;如果有任何问题,欢迎留言讨论。

把这篇文章变成你的下一步行动

如果这篇文章对你有启发,可以继续阅读更多构建笔记,或者订阅下一篇 AI SaaS 创业复盘。

当前版本只保存订阅记录,后续会接入邮件发送。