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” 的网络连通性问题,

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐