前言

Gemini API 在国内无法直接访问,借助 Cloudflare Workers 做反向代理即可解决,免费额度足够个人使用。

创建 Worker

  1. 登录 Cloudflare Dashboard
  2. 左侧进入 Workers & Pages,点击 Create
  3. 选择 Create Worker,名称随意,点击 Deploy

转发代码

点击 Edit Code,将默认代码替换为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
export default {
async fetch(request, env, ctx) {
// 添加跨域支持
let corsHeaders = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET,HEAD,POST,OPTIONS',
'Access-Control-Allow-Headers': request.headers.get('Access-Control-Request-Headers'),
}

// 如果是预检请求,直接返回跨域头
if (request.method === 'OPTIONS') {
return new Response(null, { headers: corsHeaders })
}

const url = new URL(request.url)

// 大模型代理
let targetURL = new URL('https://generativelanguage.googleapis.com')
targetURL.pathname=url.pathname
targetURL.search=url.search

let newRequest = new Request(targetURL, {
method: request.method,
headers: request.headers,
body: request.body
})

let response = await fetch(newRequest)

// 复制响应以添加新的头
let responseHeaders = new Headers(response.headers)
for (let [key, value] of Object.entries(corsHeaders)) {
if (value) responseHeaders.set(key, value)
}

return new Response(response.body, {
status: response.status,
statusText: response.statusText,
headers: responseHeaders
})
}
};

粘贴后点击右上角 Deploy 部署。

使用

将请求地址 https://generativelanguage.googleapis.com 替换为 Worker 的域名(https://xxx.workers.dev)即可,其余参数不变。

绑定自定义域名

*.workers.dev 域名在国内无法直接访问,需要绑定自己的域名。

获取域名

免费域名:

  • DigitalPlat FreeDomain:GitHub 账号即可免费注册 us.kg、dpdns.org 等域名
  • eu.org:老牌免费域名,人工审核,等待周期较长(数周甚至数月)

低价域名(首年 1~3 元):

  • .top、.icu、.xyz 等后缀在西部数码、腾讯云、阿里云常有首年促销活动
  • 注意:国内注册商需实名认证;促销价仅限首年,续费按原价

绑定步骤

  1. 在 Cloudflare Dashboard 点击 Add a domain,填入你的域名,选择免费 plan
  2. 到域名注册商处,把 NS 服务器改为 Cloudflare 分配的两个地址,等待生效(几分钟到几小时)
  3. 进入 Worker 的 Settings → Domains & Routes → Add → Custom domain,填入子域名(如 gemini.example.com),确认后 DNS 记录会自动添加

域名解析到 Cloudflare 海外节点,无需备案。

注意事项

  • Workers 免费版每天有请求次数限制
  • 低价域名的促销价一般仅限首年,续费按原价