HRouter

环境变量与配置文件不生效怎么排查

改了 Key、Base URL 或模型,工具却还是用旧的,或者干脆不走 HRouter。这是最让人困惑的一类问题,原因几乎都是:配置写在了错的地方、被别处的配置覆盖,或者进程没有重新读取。按下面的顺序排查。

先做一次对照测试

用 curl 绕过所有工具,直接验证 Key 和地址本身:

curl -i https://hrouter.net/v1/models \
  -H "Authorization: Bearer $HROUTER_API_KEY"
  • 返回 200:Key 和网络没问题,问题出在工具的配置上,继续往下看。
  • 返回 401:Key 本身有问题,见 API 401 报错。

1. 必须重启进程

环境变量和配置文件只在进程启动时读取:

  • 终端里改了环境变量:关闭这个终端窗口,重新打开。
  • 改了 settings.json、config.toml、auth.json:重新启动 claude 或 codex。
  • 在 VSCode、JetBrains 里:完全退出并重新打开 IDE,只重新加载窗口不一定够。

2. 检查环境变量到底有没有值

macOS / Linux:

echo $ANTHROPIC_BASE_URL
echo $OPENAI_BASE_URL

Windows PowerShell:

echo $env:ANTHROPIC_BASE_URL
echo $env:OPENAI_BASE_URL

输出为空,说明这个终端里没有设置。注意 Windows 上用 setx 或系统环境变量设置后,只对之后新开的终端生效。

3. 多处配置互相覆盖

同一个设置写在多个地方时,优先级不一样,旧的值可能在起作用:

工具 可能的配置位置
Claude Code ~/.claude/settings.json 的 env、系统环境变量、项目目录下的 .claude/settings.json
Codex ~/.codex/config.toml、~/.codex/auth.json、项目里的配置
Gemini CLI 三个环境变量 GOOGLE_GEMINI_BASE_URL、GEMINI_API_KEY、GEMINI_MODEL

处理办法:只保留一处。排查时先把其他位置的同名配置注释掉或删除,确认生效后再整理。用 HRouter Desktop 配置时,它会统一写入,不容易出现冲突。

4. 路径写错

系统 Claude Code Codex
Windows C:\Users\你的用户名\.claude\ C:\Users\你的用户名\.codex\
Mac / Linux ~/.claude/ ~/.codex/
  • 文件夹名以点开头,Windows 资源管理器里需要显示隐藏项目才看得到。
  • 文件名要精确:Claude Code 编辑器集成需要的是 config.json,CLI 配置是 settings.json,不要混淆,见 Claude Code VSCode。

5. 格式错误

  • settings.json、auth.json 必须是合法 JSON:引号是半角双引号,不能有多余的逗号,不能有注释。
  • config.toml 的节名要一致:model_provider = "hrouter" 对应 [model_providers.hrouter],见 Codex 安装与配置。
  • 复制粘贴时,聊天软件或文档工具可能把引号替换成中文引号,粘贴后检查一下。

6. claude 或 codex 命令不存在

npm 的全局目录没有加入 PATH:

npm config get prefix

确认输出路径下的 bin 目录(Windows 是该目录本身)在 PATH 里。加入后重新打开终端。

7. IDE 终端和系统终端不一致

IDE 可能没有继承你 shell 里设置的环境变量。在 IDE 自带终端里重新执行 echo 检查,或者改用配置文件(settings.json、config.toml)而不是环境变量,见 Claude Code JetBrains、Codex JetBrains。

8. 确认请求真的发给了 HRouter

到 使用记录 看有没有刚才的请求:

  • 有:配置生效了,问题是别的(模型、额度等),按报错码排查。
  • 没有:请求没有到达 HRouter,说明还在走旧地址,回到上面的步骤检查。

相关阅读