Gemini
中国国内访问 Google Gemini AI API 的三种方案全攻略
作者: Corwen // 2026-01-13
随着 Google Gemini 模型的不断迭代,越来越多的开发者希望将其集成到自己的应用中。然而,对于中国国内的开发者来说,直接调用 generativelanguage.googleapis.com 往往面临网络阻断或 IP 限制的问题。
本文将为你详细介绍三种主流的解决方案,无论你是追求零成本的个人开发者,还是拥有自有服务器的团队,都能找到适合你的路径。
方案一:Cloudflare Workers 搭建 Serverless 代理(🌟 最推荐)
这是最轻量、成本最低(通常免费)且对开发者最友好的方案。利用 Cloudflare 遍布全球的边缘网络,我们可以部署一段简单的代码,将请求转发给 Google。
为什么选择它?
- 免费:每天 10 万次请求额度,个人使用绰绰有余。
- 无服务器:无需维护 VPS,无需关心系统运维。
- 解决跨域:在代码层面直接解决 Web 前端的 CORS 问题。
操作步骤
-
准备工作
- 获取 Google AI API Key。
- 注册 Cloudflare 账号。
- 一个托管在 Cloudflare 上的自定义域名(关键:默认的
workers.dev域名在国内无法访问)。
-
创建 Worker
- 登录 Cloudflare 后台 -> Workers & Pages -> Create Application -> Create Worker -> Deploy。
-
部署代码
- 点击 Edit code,粘贴以下支持跨域的代理代码:
// 设置 Google Gemini API 的基础地址
const UPSTREAM_URL = 'https://generativelanguage.googleapis.com';
// 定义允许跨域的来源,"*" 代表允许所有,生产环境建议换成你的具体前端域名
const CORS_HEADERS = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
'Access-Control-Allow-Headers': 'Content-Type, Authorization, x-goog-api-client, x-goog-api-key',
};
export default {
async fetch(request, env, ctx) {
// 1. 处理 OPTIONS 预检请求 (浏览器跨域必须)
if (request.method === 'OPTIONS') {
return new Response(null, {
headers: CORS_HEADERS,
});
}
// 2. 解析请求 URL
const url = new URL(request.url);
// 3. 构造新的目标 URL
// 保持路径 (pathname) 和查询参数 (search) 不变,只替换域名
const newUrl = UPSTREAM_URL + url.pathname + url.search;
// 4. 创建新的 Request 对象
// 注意:我们需要复制原始请求的方法、头信息和主体
const newRequest = new Request(newUrl, {
method: request.method,
headers: request.headers,
body: request.body,
});
// 5. 可以在这里强制添加 API Key (可选,如果不想在前端暴露 Key)
// if (!newRequest.headers.has('x-goog-api-key')) {
// newRequest.headers.set('x-goog-api-key', env.GEMINI_API_KEY);
// }
try {
// 6. 发送请求给 Google
const response = await fetch(newRequest);
// 7. 处理响应
// 创建一个新的 Response 对象,以便我们可以修改响应头 (添加 CORS)
const newResponse = new Response(response.body, response);
// 8. 设置 CORS 响应头
Object.keys(CORS_HEADERS).forEach((key) => {
newResponse.headers.set(key, CORS_HEADERS[key]);
});
return newResponse;
} catch (e) {
return new Response(JSON.stringify({ error: e.message }), {
status: 500,
headers: { ...CORS_HEADERS, 'Content-Type': 'application/json' },
});
}
},
};
-
绑定域名
- 在 Worker 的 Settings -> Triggers -> Custom Domains 中,绑定你的二级域名(如
ai.yourdomain.com)。
- 在 Worker 的 Settings -> Triggers -> Custom Domains 中,绑定你的二级域名(如
-
使用
- 将你代码或工具中的 Base URL 替换为
https://ai.yourdomain.com即可。
- 将你代码或工具中的 Base URL 替换为
方案二:使用海外 VPS 搭建 Nginx 反向代理(🛡️ 最稳健)
如果你已经拥有一台位于香港、新加坡、美国等地的海外 VPS,这是一个非常稳健的选择。它完全掌握在你手中,且可以灵活配置缓存、日志和访问控制。
为什么选择它?
- 完全可控:数据流向清晰,不受第三方 Serverless 平台限制。
- 高性能:Nginx 处理高并发连接的能力极强。
- 资源复用:如果你已有海外服务器,无需额外支出。
Nginx 配置示例
编辑 Nginx 配置文件(通常位于 /etc/nginx/conf.d/),添加一个 server 块:
server {
listen 443 ssl;
server_name api.yourdomain.com; # 你的域名
# SSL 证书配置 (建议使用 Certbot 自动签发)
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
location / {
# 代理到 Google API
proxy_pass https://generativelanguage.googleapis.com;
# 关键配置:必须开启 SSL Server Name,否则 Google 会拒绝连接
proxy_ssl_server_name on;
proxy_set_header Host generativelanguage.googleapis.com;
# 传递客户端原本的 Authorization 或 API Key
proxy_pass_header Authorization;
proxy_pass_header x-goog-api-key;
# 优化设置
proxy_buffering off; # 处理流式输出 (Stream) 必开
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
配置完成后,使用 nginx -t 测试并 nginx -s reload 重载即可生效。
方案三:使用第三方 API 聚合/中转平台(⚡ 最省事)
如果你不想写代码,也不想维护服务器,只想立刻上手,那么使用第三方的 API 聚合服务(如 OpenRouter 或国内知名中转站)是最快的路径。
为什么选择它?
- 开箱即用:无需任何网络配置,注册账号即可。
- 多模型集成:通常一个 Key 即可调用 GPT-4, Claude 3, Gemini 等多种模型。
潜在风险与缺点
- 数据隐私:API Key 和对话内容会经过第三方服务器,存在泄露风险(不建议用于处理敏感业务数据)。
- 稳定性:服务的稳定性完全依赖于第三方,存在“跑路”或宕机风险。
- 额外成本:除了 API 原生费用,通常还需支付中转溢价。
使用方法
在 SDK 初始化时,将 base_url 指向第三方提供的地址:
# 示例:使用 OpenRouter 或其他中转商
from openai import OpenAI
client = OpenAI(
api_key="第三方平台的_KEY",
base_url="https://第三方平台地址/v1"
)
总结与对比
| 方案 | 部署难度 | 成本 | 隐私安全 | 稳定性 | 适用场景 |
|---|---|---|---|---|---|
| Cloudflare Workers | 中 | 免费/极低 | 高 | 高 | 个人开发、初创产品、Demo 演示 |
| VPS + Nginx | 高 | 服务器费用 | 最高 | 极高 | 团队项目、对可控性要求高的应用 |
| 第三方聚合平台 | 低 | 较高 (含溢价) | 低 | 中 | 快速测试、不想折腾技术的用户 |
最终建议
对于大多数独立开发者和程序员(如 Corwen 你),方案一 (Cloudflare Workers) 是性价比最高的选择。它既保护了数据隐私(代码自持),又无需支付服务器费用,且维护成本极低。
评论区
正在加载评论系统...