问题和目标

腾讯云境外CDN包贵,CF境内访问慢。

如果能实现境内使用腾讯云的CDN,境外使用CF就完美了。

大致步骤

腾讯云新建CDN,拿到CNAME。

CF通过自定义主机名+中转域名实现CDN功能,拿到CNAME。

DNSPod使用分区域解析功能,分别创建默认+境内两条解析记录,默认给CF境内给腾讯CDN。

默认给CF是为了防止因IP属地识别出错,导致腾讯云CDN跑境外流量造成欠费。

详细步骤

假设,
IP为:12.34.56.78,
域名为:example.com,
CF中转用域名(已绑到CF)为:ba.example-proxy.com

腾讯CDN

这个跳过,域名[example.com]绑上,源站IP[12.34.56.78]填上,记下分配到CNAME,没啥可讲的。

CloudFlare

需要绑定Paypal(Paypal需要绑了银行卡/信用卡,可以在开通SaaS后解绑)开通 Cloudflare for SaaS 服务。

先上一个大致原理图

境外Client访问example.com
-> DNSPod一看非境内IP,返回默认记录(CNAME example.com ba.example-proxy.com)
-> 继续执行DNS查询,查到(A ba.example-proxy.com [CF的泛播IP])
-> 境外Client带着ba.example-proxy.com的SNI访问返回的[CF的泛播IP]
-> CF收到请求,查到SNI==某自定义主机名,根据该自定义主机名设置的回退源(ba.example-proxy.com)的IP(12.34.56.78),给这个IP发送请求。

简而言之,CF设置的ba.example-proxy.com等价于腾讯CDN给的CNAME域名。
CF绑定的example-proxy.com设置的IP等价于腾讯CDN设置里的源站地址

设置中转域名,开启代理

绑定一个域名到CF,作为中转。

像.top等就好,免费域名.ml都行,只要能绑到CF。

设置一条A记录:

主机名随便设置,反正不是公开给人看的,长点也没关系,当然用@也可以。
记录类型主机名代理其他
Aba12.34.56.78默认

企业微信截图_16653347867261.png

设置自定义主机名

如图,进入设置项,设置好自定义主机名(准备添加CDN的域名example.com)、回退源(中转域名ba.example-proxy.com)

企业微信截图_16653354038543.png

第三步添加完自定义主机名后,要根据提示到DNSPod里给目标域名添加对应的TXT记录,验证域名所有权。

也就是到example.com添加TXT记录

企业微信截图_1665336230931.png

DNSPod设置分区域解析

给example.com添加两条解析

记录类型主机名记录值线路
CNAME@ba.example-proxy.com默认
CNAME@腾讯云CDN给的CNAME境内

等生效

唯一有延迟的就是CF验证自定义主机名那里。
如果没有自动通过验证,可以手动点击刷新手动检测让他生效。

右上角的刷新

最后修改:2022 年 10 月 15 日
如果觉得我的文章对你有用,请随意赞赏