核心结论
Gemini CLI 运行在终端里,默认不走浏览器的系统代理,所以浏览器能用 Gemini、终端却连不上。在启动 gemini 之前设置 HTTPS_PROXY 和 HTTP_PROXY 指向代理客户端的本地端口(如 http://127.0.0.1:7897),或直接开启 TUN 模式,再用 curl 验证出口地区,大多数连接问题都能解决。
问题现象
Gemini CLI 是在终端中使用 Gemini 的命令行工具,安装后执行 gemini 启动。它连不上服务时,常见提示如:
fetch failed;connect ETIMEDOUT或ECONNRESET;- 浏览器中授权登录已完成,终端却一直停在等待登录;
User location is not supported for the API use。
具体文案以实际输出为准。前三类通常说明终端没有走代理或节点不通,最后一类说明请求已经到达服务端,但出口地区不在支持范围内。
为什么会出现
| 原因 | 判断方法 | 解决方法 |
|---|---|---|
| 终端没有走代理 | 浏览器正常,终端 curl 超时 | 设置 HTTPS_PROXY 或开启 TUN 模式 |
| 代理端口或协议写错 | 带同样地址的 curl 也失败 | 核对客户端端口,使用 http:// 地址 |
| 变量只在别的窗口生效 | 新开窗口后 echo 为空 | 在当前窗口重新设置,或写入配置文件 |
| 出口地区不支持 | trace 显示 HK、CN,或报地区不支持 | 换到支持地区节点 |
| 登录换取凭证时超时 | 浏览器授权成功,终端卡住 | 确认终端走代理后重新登录 |
| Node.js 版本过低 | 启动时报语法或版本错误 | 按官方要求升级 Node.js |
快速自查(2 分钟)
- 确认代理客户端已开启,并记下端口。Clash Verge Rev 的混合端口默认通常为
7897,可在“设置 → 端口设置”中查看。 - 在运行 gemini 的终端中检查变量:PowerShell 执行
echo $env:HTTPS_PROXY,bash 或 zsh 执行echo $HTTPS_PROXY。 - 执行
node -v,确认 Node.js 版本符合 Gemini CLI 官方说明的要求。 - 用下文的 curl 命令确认出口地区不是 HK 或 CN。
逐步排查
1. 设置代理环境变量
代理客户端开启“系统代理”后,修改的是操作系统的代理设置,浏览器会主动读取它;而大多数终端程序并不查询这项设置,而是看当前进程的环境变量。这就是浏览器正常、终端超时的根本原因。多数命令行工具会读取 HTTPS_PROXY、HTTP_PROXY 这类环境变量,Gemini CLI 的具体支持方式以其官方文档为准。以下端口以 7897 为例,请替换为你客户端中的实际端口。
Windows PowerShell:
$env:HTTPS_PROXY = "http://127.0.0.1:7897"
$env:HTTP_PROXY = "http://127.0.0.1:7897"
$env:NO_PROXY = "localhost,127.0.0.1"
gemini
Windows 命令提示符(cmd):
set HTTPS_PROXY=http://127.0.0.1:7897
set HTTP_PROXY=http://127.0.0.1:7897
gemini
macOS 或 Linux:
export HTTPS_PROXY=http://127.0.0.1:7897
export HTTP_PROXY=http://127.0.0.1:7897
export https_proxy=$HTTPS_PROXY http_proxy=$HTTP_PROXY
export NO_PROXY=localhost,127.0.0.1
gemini
部分工具只识别小写变量名,所以 macOS 和 Linux 下建议大小写都设置。NO_PROXY 让本机地址不经过代理,避免本地回调等请求被错误转发。
设置时有几个容易出错的细节:地址开头要带 http://;端口必须与客户端当前使用的端口一致,修改过客户端端口后记得同步更新;变量需要在启动 gemini 的同一个窗口中设置,在另一个窗口设置不会生效。编辑器内置的终端同样遵循这个规则。
这些设置只对当前窗口有效。需要长期生效时,PowerShell 可执行 notepad $PROFILE 把前几行写入配置文件;macOS、Linux 写入 ~/.zshrc 或 ~/.bashrc。
2. 用 curl 验证连通性
先用 -x 明确指定代理,确认节点本身可用:
curl -x http://127.0.0.1:7897 https://www.cloudflare.com/cdn-cgi/trace
curl -x http://127.0.0.1:7897 -I https://generativelanguage.googleapis.com
Windows PowerShell 中的 curl 是另一个命令的别名,请写成 curl.exe。第一条命令看 loc= 字段,应为日本、新加坡、美国等支持地区;第二条只要返回 HTTP 状态行(例如 404),就说明网络已连通,状态码本身不重要。
再去掉 -x 执行一次。curl 同样会读取代理环境变量,结果一致说明变量已经生效;如果去掉 -x 后超时,说明变量没有设置到当前窗口。
3. 用 TUN 模式兜底
如果环境变量设置正确但仍然失败,可能是某些子进程或依赖没有读取这些变量。此时可在代理客户端中开启 TUN 模式,它通过虚拟网卡接管系统流量,终端、编辑器中的所有程序都会自动走代理。开启方法见 Clash Verge 使用教程。排查阶段建议环境变量与 TUN 模式二选一测试,更容易判断是哪一种方式在起作用。
4. 重新完成登录
使用 Google 账号登录时,Gemini CLI 会打开浏览器完成授权,随后由终端向 Google 服务换取凭证。浏览器和终端都需要走代理,且最好使用同一地区的出口。确认终端连通后,退出 gemini 并重新执行登录流程。使用 API Key 方式时,Key 来自 Google AI Studio,同样受其可用地区限制。
5. 处理地区不支持
出现地区不支持的提示,说明网络已通但出口不符合要求。换到支持地区的节点并固定下来,避免自动测速组选中香港节点。如果网络层确认无误,仍提示不可用,还需检查账号关联地区,见 Google 账号地区怎么查看。
6. WSL 与远程开发环境
在 WSL2 中,127.0.0.1 默认指向 WSL 自身。需要在代理客户端中开启“允许局域网连接”,并把代理地址改为 Windows 主机的地址;较新版本的 WSL 也支持镜像网络模式,可直接使用本机地址,具体以 WSL 官方说明为准。远程服务器上运行 Gemini CLI 时,代理需要配置在服务器端,本地电脑的代理设置不会生效。
7. 固定节点,减少长任务中断
Gemini CLI 执行代码分析、批量修改等任务时,一次会话可能持续较长时间,并包含多轮请求。期间如果客户端的自动测速组切换了节点,正在进行的请求就会中断,出口地区也可能随之变化。建议为 Google 相关域名单独设置一个手动选择的策略组,选中一个支持地区、丢包低的节点后不再变动;同时避免在同一台电脑上进行大流量下载,让终端请求不必和下载任务抢占同一条线路。
仍然无法解决
- 长时间任务中途断开,多与丢包或节点自动切换有关,参考节点超时解决方法,并关闭自动测速切换;
- 如需更换订阅,本站收录品牌中 Gemini 在 2026 年 9 月实测可用的有二猫云(专线丢包 0.3%)和宇宙云(全 IEPL 专线)等,上述实测针对 Gemini 服务本身,Gemini CLI 未单独实测;
- 同样运行在终端的 Claude Code 也有类似的代理设置,可对照 Claude Code 网络环境配置指南。
请遵守所在地法律法规以及 Google 的服务条款。
相关问题
常见问题
浏览器能用 Gemini,为什么 Gemini CLI 连不上?
浏览器会自动读取系统代理,而终端程序通常不会。需要在终端中设置 HTTPS_PROXY 等环境变量,或在代理客户端中开启 TUN 模式,让命令行流量也经过代理。
代理地址应该写 http 还是 socks5?
建议使用 http:// 开头的地址,指向客户端的混合端口或 HTTP 端口。部分基于 Node.js 的工具对 socks5 地址的支持有限,写成 socks5 可能不生效。
设置了环境变量为什么还是不行?
常见原因是变量只在另一个终端窗口中设置、端口号与客户端不一致、代理客户端未开启,或者出口节点位于香港等不支持地区。可以用 curl 带同样的代理地址测试,逐项排除。
用浏览器授权登录成功了,终端却一直在等待怎么办?
授权完成后,Gemini CLI 还需要从终端向 Google 服务换取登录凭证。如果终端没有走代理,这一步会超时。确认环境变量已在运行 gemini 的同一个窗口中设置,或开启 TUN 模式后重新登录。
在 WSL 中怎么让 Gemini CLI 走代理?
WSL2 中的 127.0.0.1 默认指向 WSL 自身而不是 Windows 主机。需要在代理客户端中开启允许局域网连接,并把代理地址设置为 Windows 主机的地址;较新版本的 WSL 也可以启用镜像网络模式,具体以 WSL 官方说明为准。
本文最后更新于 。网络服务与 AI 平台政策变化较快,如发现信息过时,欢迎通过联系我们反馈。