当前位置: 首页 > news >正文

Gemini CLI 代理问题解决[API Error: exception TypeError: fetch failed sending request]

Gemini CLI 安装与代理问题解决教程

在中国大陆环境下,Gemini CLI 安装和使用常常会遇到网络连接问题,出现如下报错:

[API Error: exception TypeError: fetch failed sending request]

通常这是因为无法直接访问 Google 的 API 服务器,ping 216.239.36.223 不通。这也是众所周知的网络原因。

解决方案:手动为 Gemini CLI 设置代理

Gemini CLI 默认不支持代理,但我们可以通过修改其主文件,强制走本地代理

1. 找到 Gemini CLI 的主文件

  • Windows:
    C:\Users\你的用户名\AppData\Roaming\npm\node_modules\@google\gemini-cli\dist\index.js
    
  • macOS (Homebrew 安装):
    /opt/homebrew/lib/node_modules/@google/gemini-cli/dist/index.js
    
  • Linux (全局 npm 安装):
    /usr/local/lib/node_modules/@google/gemini-cli/dist/index.js
    

2. 安装 undici 依赖

在终端执行:

npm install -g undici

3. 修改 index.js 文件

index.js 文件的开头加入如下三行代码(放在所有 import 之后,更靠前越好):

import { setGlobalDispatcher, ProxyAgent } from "undici";
const dispatcher = new ProxyAgent({ uri: new URL('http://127.0.0.1:7890').toString() }); // 7890 是你本地代理端口,按需修改
setGlobalDispatcher(dispatcher);

请根据自己的代理软件实际端口填写。

4. 完整的 index.js 示例

修改后的入口文件示例(重点内容已高亮):

#!/usr/bin/env node
/*** @license* Copyright 2025 Google LLC* SPDX-License-Identifier: Apache-2.0*/
import './src/gemini.js';
import { main } from './src/gemini.js';// === 加入如下三行代码 ===
import { setGlobalDispatcher, ProxyAgent } from "undici";
const dispatcher = new ProxyAgent({ uri: new URL('http://127.0.0.1:7890').toString() }); // 端口务必对应你的代理端口
setGlobalDispatcher(dispatcher);
// =======================// --- Global Entry Point ---
main().catch((error) => {console.error('An unexpected critical error occurred:');if (error instanceof Error) {console.error(error.stack);}else {console.error(String(error));}process.exit(1);
});
//# sourceMappingURL=index.js.map

5. 保存并重新运行 Gemini CLI

此时你再运行 Gemini CLI,应该就可以正常联网了。


注意事项

  • 升级 Gemini-CLI 后可能需要重新修改!
  • 这种做法适用于大部分需要全局代理的 Node.js CLI 工具。
  • 如果你用的是 PAC/全局模式,请确保端口和协议正确。

小结:通过为 Gemini CLI 强制设置 HTTP 代理,即可解决 “fetch failed” 的网络连通性问题,

http://www.dtcms.com/a/275436.html

相关文章:

  • 【Linux-云原生-笔记】数据库操作基础
  • 【机器学习|学习笔记】详解决策树CART算法,并对比ID3 C4.5和CART算法
  • 系统分析师-计算机系统-计算机系统概述存储系统
  • 内网穿透系列九:开源的网络穿透与组网工具 EasyTier,支持多种数据传输通道,去中心化,兼具高效与安全
  • 【Java八股文总结 — 包学会】(二)计算机网络
  • PyTorch的计算图是什么?为什么绘图前要detach?
  • 【设计模式】单例模式 饿汉式单例与懒汉式单例
  • 人工智能自动化编程:传统软件开发vs AI驱动开发对比分析
  • 云原生技术与应用-生产环境构建高可用Harbor私有镜像仓库
  • ​BRPC核心架构解析:高并发RPC框架的设计哲学
  • Whistle抓包
  • 【设计模式】桥接模式(柄体模式,接口模式)
  • 为什么有些PDF无法复制文字?原理分析与解决方案
  • Oxygen XML Editor 26.0编辑器
  • 闲庭信步使用图像验证平台加速FPGA的开发:第十课——图像gamma矫正的FPGA实现
  • 定长子串中元音的最大数目
  • 大数据在UI前端的应用深化研究:用户行为数据的时序模式挖掘
  • 基于开源AI智能名片链动2+1模式S2B2C商城小程序的营销直播质量提升策略研究
  • 【世纪龙科技】新能源汽车结构原理体感教学软件-比亚迪E5
  • HTTP 状态码详解
  • Apache HTTP Server 从安装到配置
  • 使用python 实现一个http server
  • 搭建云手机教程
  • 力扣面试150题--括号生成
  • S7-200 SMART CPU 密码清除全指南:从已知密码到忘记密码的解决方法
  • AI产品经理面试宝典第11天:传统软件流程解析与AI产品创新对比面试题与答法
  • MongoDB数据库入门到集群部署企业级实战
  • linux使用lsof恢复误删的nginx日志文件——筑梦之路
  • (C++)STL:list认识与使用全解析
  • Kafka Schema Registry:数据契约管理的利器