本站多数服务都是通过CloudFlare提供的CDN服务实现加减速,默认配置在多数情况下对于我提供的轻量服务也基本够用,一些比较重的资源比如自建图床、静态资源挂在阿里云OSS上,但前几天CloudFlare全球大面积崩溃导致部分服务无法使用(控制台都上不去,想切出来都切不了),在服务恢复后我对现存的几个服务做比较分析,发现之前使用CNAME优选加速的提问箱整体速度要比公告板和分享盘要快很多,而后两者一个是通过CloudFlare Pages的默认CNAME,一个是直接点开小云朵加速,于是我决定花点时间将所有的服务都切换使用CNAME优选加速,在过程中碰到的些许问题在此记录。
通用加速前提
前提就是要有两个域名,一个需要绑定在CloudFlare上,另一个可以放在其他类似腾讯云的平台,方便做分线路解析。以我自己为例,我绑定在CloudFlare上的域名是337845818.best,先在域名下的DNS > 记录下新增一个用作回退源的解析,比如我设置如下:
类型=A
名称=origin
内容=服务器IP
代理状态=已代理
TTL=自动
这样就添加了一个指向服务器IP的源origin.337845818.best。
然后在SSL/TLS > 自定义主机名中设置回退源为origin.337845818.best,刷新等待回退源状态变为有效。
这种情况下就可以通过SSL/TLS > 自定义主机名中的添加自定义主机名实现解析到服务器IP上的服务。比如添加一个提问箱的自定义服务,首先需要在DNS > 记录中新增一个解析,比如box.337845818.best,这个A记录直接指向服务器并点开小黄云,然后在SSL/TLS > 自定义主机名中的添加自定义主机名内设置:
自定义主机名=box.tama.guru
最低TLS版本=TLS1.0(默认)
证书类型=由CloudFlare提供
证书验证方法=TXT验证(推荐)
自定义源服务器=box.337845818.best
然后会得到两组TXT用于域名核验,我的tama.guru域名绑定的是DNSPOD,所以需要在DNSPOD上把这两组TXT添加到解析,并等待刷新提示证书状态为有效且主机名状态为有效,然后就可以在DNSPOD添加两组CNAME解析:
主机记录=box
记录类型=CNAME
线路类型=默认
记录值=box.337845818.best
TTL=600
主机记录=box
记录类型=CNAME
线路类型=境内
记录值=tamabox.cloudflare.182682.xyz
TTL=600
这里的visa.cn即为优选域名,网上有很多可以自己找找适合自己的。这样设置之后一段时间后可以通过dig命令查询是否生效:
~$ dig box.tama.guru
; <<>> DiG 9.18.33-1~deb12u2-Debian <<>> box.tama.guru
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48864
;; flags: qr rd ra; QUERY: 1, ANSWER: 7, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;box.tama.guru. IN A
;; ANSWER SECTION:
box.tama.guru. 539 IN CNAME tamabox.cloudflare.182682.xyz.
tamabox.cloudflare.182682.xyz. 9 IN CNAME 我爱学习壹.cloudflare.182682.xyz.
...
...
;; Query time: 63 msec
;; SERVER: 223.5.5.5#53(223.5.5.5) (UDP)
;; WHEN: Fri Nov 21 10:51:58 CST 2025
;; MSG SIZE rcvd: 410
可以看到应答结果叽里咕噜叽里咕噜添加一堆东西,然后通过ping.cn之类的工具查询域名box.tama.guru,全国都很绿了。
Pages加速
在设置好的Pages下找到自定义域,比如我把公告板服务解析到blog.tama.guru,然后到DNSPOD一样添加两组CNAME解析,一组指向默认的***.pages.dev,另一组设置区域为境内,指向优选CNAME,这样就实现了分流。
Worker加速
比如我有一个worker名称设定为60S,先在域名下的DNS > 记录下新增一个CNAME解析,指向优选域名,比如:
类型=CNAME
名称=60s-cname
内容=cloudflare-proxy.cloudflare.182682.xyz
代理状态=**仅DNS**
TTL=自动
注意代理状态是仅DNS,这样可以得到一个60s-cname.337845818.best的加速域名。然后在域名下的Workers路由新增一条HTTP路由 ,路由为60s-cname.337845818.best/*,worker选择60S,保存生效后就可以通过60s-cname.337845818.best这个域名加速访问到这个Worker。当然,这样只适用于域名绑定在CloudFlare上的情况。
QA
Q:通用加速可以让多个服务器使用吗?
A:不能,因为只有一个回退源,而这个源指向的是单独的IP,就算添加了自定义主机名也只能指向这个服务器IP提供的服务,如果有多个服务器IP就要有多个CloudFlare账号来操作。
Q:自定义主机名提示custom hostname does not CNAME to this zone.
A:到DNSPOD检查一下是否有增加目标域名解析,比如自定义主机名设置了share.tama.guru->share.337845818.best,则在DNSPOD添加名为share指向share.337845818.best的CNAME解析。
Q:自定义主机名提示The custom origin hostname you specified is a gray clouded DNS record. Please update the record to be proxied.
A:CloudFlare不支持没有代理的目标域名做自定义主机源,需要到CloudFlare的DNS解析中找到对应的域名把仅DNS改成代理。
Q:访问代理网站提示ERR_TOO_MANY_REDIRECTS
A:检查CloudFlare上域名的SSL/TLS > 概览中SSL/TLS加密方式,确保为自动SSL/TLS(默认)或者完全模式。
