一文搞懂 CloudFlare CDN/Page/Workers 优选

Anye
Anye
发布于 2024-07-25 / 613 阅读
8
1

一文搞懂 CloudFlare CDN/Page/Workers 优选

最近

哎呀被刷流量了,这绝对不是鸽的理由好吧。这篇选题都新建文件夹一个月了,还是选择记录一下吧,以免遗忘。

前言

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

image-v4fu.png

  • 添加成功后,按照要求在 anye.xyz 域名的 DNS 服务商添加解析记录,用于证书申请和域名认证。

主机记录

记录类型

记录值

用途

_acme-challenge

TXT

证书验证 TXT 值

用于签发证书

_cf-custom-hostname

TXT

主机名预验证 TXT 值

用于 CF 认证域名

www

CNAME / A

优选 IP / 域名

访问网站

先按顺序填写 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/* ,区域选择所使用的域名(两者需要对应)。

image-cuiw.png

  • 在该域名的 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 / 域名即可。

image-ppzb.png

优选前后对比

优选前

优选后

后记

距离发文已经过去了半个月,增加一些常见问题的解决办法吧

自定义主机名为中文域名

CloudFlare 在添加中文的自定义主机名时,应该使用转码后的域名,即 中文域名转码,例如,阿里云.com 转换成punycode 格式为 xn--9kqx25nv1c.com ,然而使用该编码 CloudFlare 前端验证似乎不通过,所以我们可以通过采用抓包替换请求的方式直接请求 API 来实现强制添加。

参考资料

[1] https://www.cloudflare.com/zh-cn/plans/#:~:text=%E4%B8%AD%E5%9B%BD%E7%BD%91%E7%BB%9C%E8%AE%BF%E9%97%AE-,%E5%AE%9A%E5%88%B6%E4%BB%B7%E6%A0%BC,-Cloudflare%20for%20SaaS

[2] https://developers.cloudflare.com/cloudflare-for-platforms/cloudflare-for-saas/start/getting-started/

[3] https://developers.cloudflare.com/cloudflare-for-platforms/cloudflare-for-saas/plans/

[4] https://developers.cloudflare.com/workers/get-started/

[5] https://developers.cloudflare.com/pages/

[6] XIU2/CloudflareSpeedTest

[7] ddgth/cf2dns


评论