最近
哎呀被刷流量了,这绝对不是鸽的理由好吧。这篇选题都新建文件夹一个月了,还是选择记录一下吧,以免遗忘。
前言
Cloudflare 是一家总部位于旧金山的美国跨国科技企业,专注于提供网络安全和性能优化服务。其主要业务包括内容分发网络(CDN)、网站安全管理、分布式域名解析以及反向代理等。通过强大的边缘网络,Cloudflare 能够加速网站访问并提高其安全性,同时防止 DDoS 攻击和其他网络威胁。
——秘塔 AI 搜索
CloudFlare 的赛博大爹作风在此不必多说,直接进入正题,众所周知 CloudFlare 在国内的节点是不对免费订阅开放的[1]。所以想在国内的网络环境下优雅的用上 CloudFlare 就需要做一些简单的筛选。通过优选出面向国内线路的优质节点 IP,通过 A 记录等强制用户从该节点连接进入 CloudFlare,就可以得到一个比较不错的效果。
准备工作
由于 CloudFlare 不直接提供二级域名供 CNAME 使用,所以需要用户自行准备 至少两个域名 供解析使用。
优质的 CloudFlare 优选 IP
CloudFlare 账号一个
VISA 信用卡一张 / PayPal 账号一个
本文中使用的域名均为化名,请按实际情况替换。
CDN 优选 IP
原理
CloudFlare 支持使用 SaaS 接入 CDN [2],相当于我们传统的 CNAME 接入,只是需要我们自己准备需要 CNAME 的域名。
配置 CDN
这里我们把准备的域名,一个在 CloudFlare 解析,我们假设这个域名是 cf-cdn.anye.in
,用于 回源,一个在 非 CloudFlare 解析 (CloudFlare 不允许把域名解析到它的 CDN 节点,会报 1000 错误),假设为 www.anye.xyz
用于实际访问。
在 CloudFlare
DNS
-记录
中添加cf-cdn.anye.in
,解析到服务器 IP,并开启小云朵。
在 CloudFlare
SSL/TLS
-自定义主机名
中添加回退源
,填写刚才添加的域名cf-cdn.anye.in
。
就是这里好像要用信用卡 / PayPal 激活来着,这里只要不超过它的免费额度就不会产生扣费。[3]
此时我们就可以拿
cf-cdn.anye.in
该域名当作服务器的 CDN CNAME指向来使用,当然由于免费计划不能上传自己的证书使用,指向它的域名需要在自定义主机名
中进行添加,添加我们最终用于访问的域名www.anye.xyz
。
添加成功后,按照要求在
anye.xyz
域名的 DNS 服务商添加解析记录,用于证书申请和域名认证。
先按顺序填写 TXT 记录,待 CloudFlare 页面上显示 有效 后,即可删除,生效过程中不要刷新页面,会导致要求解析的 TXT 记录发生变化,使用页面上的 刷新 按钮即可。
若提示未 CNAME 解析到域名,则可以把 www
先解析到 cf-cdn.anye.in
上,待生效后可以修改为优选。
优选前后对比
Workers 优选 IP
本节不再叙述如何使用 CloudFlare Workers[4]。
原理
使用 Workers 路由 将指向 CloudFlare 节点的流量路由到 Workers 处理。
配置
在部署好 CloudFlare Workers 之后,如本例中的 Workers-Test ,不要使用 Workers 自带的
添加自定义域
功能,点击添加路由
,填写我们最终需要访问的地址加上/*
,如此处workers-test.anye.in/*
,区域选择所使用的域名(两者需要对应)。
在该域名的 DNS 解析记录中添加 A / CNAME 记录指向优选 IP / 域名,关闭小云朵,即可从指定的优选 IP 访问。
Page 优选 IP
本节不再叙述如何使用 CloudFlare Page[5]。
原理
同 CDN 优选 IP,不过此时 CloudFlare 会提供用户 CNAME 的回源域名供使用。
配置
正常部署完成 CloudFlare Page 后,在该 Page 项目中点击
自定义域
-设置自定义域
填写最终访问使用的域名,例如此处
page.anye.in
,根据要求配置 DNS 解析,点击激活域
,不要将该域名托管在 CloudFlare,否则会被 CloudFlare 识别而暂停访问。
手动访问
https://page.anye.in
可以打开,确保配置生效,证书已下发后,手动修改 DNS 解析为优选 IP / 域名即可。
优选前后对比
后记
距离发文已经过去了半个月,增加一些常见问题的解决办法吧
自定义主机名为中文域名
CloudFlare 在添加中文的自定义主机名时,应该使用转码后的域名,即 中文域名转码,例如,阿里云.com
转换成punycode 格式为 xn--9kqx25nv1c.com
,然而使用该编码 CloudFlare 前端验证似乎不通过,所以我们可以通过采用抓包替换请求的方式直接请求 API 来实现强制添加。
参考资料
[3]
[4]
[5]
[7] ddgth/cf2dns