关于我博客域名被Cloudflare Pages屏蔽那档子事

这档子事多的都给人整无语了

前情提要

由于在不久前我改用 Hexo 做博客,按照传统,我应该整一个 Pages 服务做博客(笑)

由于 GitHub 免费用户的 Private 仓库无法开启 Pages 服务(万恶的资本家
我选择了 Cloudflare 下的 Pages 服务

具体怎么搭建的就略过了,这类教程 💯°🍺⭐百度就行抽象版

在进行搭建之后,我想要绑定我的博客域名时,出大问题了

问题描述

表现为自定义域名无法激活,始终显示 Inactive (Error)

在许多社区问了以后,大概是得出了两个结论(不一定正确)

1.域名被 Cloudflare 认定为滥用导致无法绑定
2.由于域名之前绑定过百度云加速,可能是由于百度云加速和 Cloudflare 共用一套系统导致的

但无论最终结论是哪个,都导致我无法将我的域名绑定 Cloudflare Pages 了

简言之,我域名被 Cloudflare Pages 屏蔽了(域名本身可以添加到 Cloudflare 面板,但是无法绑定 Cloudflare Pages 服务)

解决思路

通过之前搭建 GitHub 来的灵感,我可以通过反代 Pages 服务曲线救国,实现自定义域名。

大概思路是:通过 Worker 反代 Pages 服务提供的 URL,Worker 绑定自定义的域名,域名在 DNS 提供商那里解析到 Worker 上。

上手解决

首先,先新建一个 Worker 服务,在这个 Worker 服务的管理页面,选择 Quick edit

然后,输入这段 js,自行修改其中一些内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
addEventListener("fetch", (event) => {
event.respondWith(handleRequest(event.request));
});

async function handleRequest(request) {
// Cloudflare Workers 分配的域名
const cf_worker_host = "host.workers.dev";
// 自定义的域名
const origin_host = "www.baidu.com";
// 反代地址
const proxy_host = "leao9203.pages.dev";
const proxy = request.url
.replace(cf_worker_host, proxy_host)
.replace(origin_host, proxy_host);
return fetch(proxy);
}

改完之后,Save and Deploy一下,访问 Workers 分配的域名,验证反代是否正常。
如果成功反代,返回 Worker 服务的管理页面。

Triggers下,Add route

语法为 .example.com/
例如:blog.ascn.site/*

确认之后再点击一次 Add route

修改/添加 DNS 记录(Cloudflare的)

在 Cloudflare 上添加一个记录,CNAME 类型的,名称正常填,注意值为你的 Workers 分配的域名,建议开启 CDN 加速。

CNAME 方式接入也是一样的操作,只不过 DNS 记录那一步是需要去托管方的控制面板上改。

完结撒花

之后,就可以愉快地享受由 Cloudflare, Inc. 提供的优质网络服务辣