我手上只有阿里云的域名,所以这里我将使用阿里云的域名,作为cloudflare接管的域名;并将演示如何设置代理Worker
1、接管域名
登录:https://dash.cloudflare.com/
添加站点
添加后,选择计划,这里个人开发者选免费的就行,企业开发者自行抉择

会自动扫描你设置的域名解析

扫描结束后,继续
提示修改名称服务器
,并提供了修改的服务器地址
darl.ns.cloudflare.com
eloise.ns.cloudflare.com

阿里云设置域名DNS服务器
进入阿里云,进入域名控制台
点击域名管理
,修改DNS服务器地址为
darl.ns.cloudflare.com
eloise.ns.cloudflare.com
如图所示:
进入cloudflare,点击完成,检查域名服务器
,此过程可能耗时10-30分钟

2.创建Workers,代理openai
本次代理openai的接口需要用到Workers
点击创建服务
其代码来源于
const TELEGRAPH_URL = 'https://api.openai.com';
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
const url = new URL(request.url);
url.host = TELEGRAPH_URL.replace(/^https?:\/\//, '');
const modifiedRequest = new Request(url.toString(), {
headers: request.headers,
method: request.method,
body: request.body,
redirect: 'follow'
});
const response = await fetch(modifiedRequest);
const modifiedResponse = new Response(response.body, response);
// 添加允许跨域访问的响应头
modifiedResponse.headers.set('Access-Control-Allow-Origin', '*');
return modifiedResponse;
}
将上述代码复制到Worker中,并点击保存并部署
这时我们点击这个Worker的触发器,可以得到一个地址
https://openai.xuux.workers.dev/
workers.dev
在中国大陆区域已经被污染无法访问,所以需要自有域名进行解析
3.自有域名解析
Workers路由
点击网站
,可以看我们添加的站点已经解析成功,说明已经被CloudFlare
接管了

选择Workers路由

添加一条记录,结果如下图
DNS解析
添加一条CNAME记录

解析成功
PS C:\Windows\system32> ping openai.tenma.work
正在 Ping openai.tenma.work [2606:4700:3032::ac43:aa6a] 具有 32 字节的数据:
来自 2606:4700:3032::ac43:aa6a 的回复: 时间=179ms
来自 2606:4700:3032::ac43:aa6a 的回复: 时间=179ms
来自 2606:4700:3032::ac43:aa6a 的回复: 时间=179ms
来自 2606:4700:3032::ac43:aa6a 的回复: 时间=177ms
2606:4700:3032::ac43:aa6a 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 177ms,最长 = 179ms,平均 = 178ms