使用 Cloudflare Workers 作为 OpenAI API 的透明代理的方法详解
› 社区话题 › Linux/macOS 与自动化运维 › 使用 Cloudflare Workers 作为 OpenAI API 的透明代理的方法详解
标签: cloudflare, openai
- 该话题为空。

- 作者帖子
- 2026年3月9日 - 下午9:31 #1428

追光管理员使用 Cloudflare Workers 作为 OpenAI API 的透明代理,是目前解决国内无法直接访问 OpenAI 接口最稳定、最推荐的方法。它不仅省去了本地维护 Clash 等代理软件的麻烦,还极大地提升了接口调用的稳定性。
以下是完整的部署与使用教程:
第一步:部署 Cloudflare Worker
1. 登录控制台:访问 [Cloudflare 仪表盘](https://dash.cloudflare.com/),点击左侧的 Workers & Pages。
2. 创建应用:点击 Create application – Create Worker,给它起个名字(例如 openai-proxy),点击 Deploy。
3. 编辑代码:
点击 Edit code。
删除原有代码,粘贴以下简洁且高效的转发脚本:export default { async fetch(request, env, ctx) { const url = new URL(request.url); // 强制将所有请求的目标域名指向 OpenAI 官方 API url.hostname = \'api.openai.com\'; // 构建新的请求 const newRequest = new Request(url, { method: request.method, headers: request.headers, body: request.body, }); // 转发请求并返回响应 return fetch(newRequest); }, };4. 保存并发布:点击右上角的 Deploy。此时,你会获得一个类似 https://openai-proxy.yourname.workers.dev 的 URL。
第二步:在你的程序中调用
现在,你的 Worker 已经成了一个“全球中转站”。调用方式非常简单,无需再设置任何本地代理(Clash/Shadowrocket等)。
PHP 调用示例:
php
第三步:安全增强(进阶必读)
由于你的 Worker URL 是公开的,为了防止他人恶意调用盗刷你的额度,建议进行简单的鉴权防护:
1. 设置 Secret:在 Cloudflare Worker 的 Settings – Variables 中,点击 Add variable,名称设为 MYSECRETKEY,值为一个复杂的随机字符串(如 mysupersecretpassword)。
2. 修改代码:
export default { async fetch(request, env, ctx) { // 检查 Header 中是否携带了正确的密码 const authHeader = request.headers.get(\"Authorization\"); if (authHeader !== Bearer ${env.MYSECRETKEY}) { return new Response(\"Unauthorized\", { status: 401 }); } // 如果校验通过,则继续转发请求 const url = new URL(request.url); url.hostname = \'api.openai.com\'; return fetch(new Request(url, { ...request })); }, };3. 调用时携带密码:在 PHP 的 CURLOPTHTTPHEADER 中,你需要传入你的 MYSECRETKEY 而不是 OpenAI 的原始 Key。
⚠️ 重要安全提醒
1. Key 泄露风险:如果你之前在对话中贴出的 sk-proj-… Key 仍在正常使用,请务必立即在 [OpenAI API 管理后台](https://platform.openai.com/api-keys) 撤销 (Revoke) 该 Key,并生成新的。
2. 硬编码警示:永远不要把 API Key 直接写在上传到 GitHub 等公开平台的 PHP 代码里。建议使用 .env 文件或服务器环境变量来存储它们。你想让我帮你写一个更稳健、包含错误重试逻辑的 PHP 请求类吗?
- 作者帖子
- 在下方一键注册,登录后就可以回复啦。