满怀希望就会所向披靡

在Cloudflare托管域名?无法摆脱的CF解析两大坑!

Cloudflare向来备受好评,我对CF好感不错,所以前前后后在CF上注册了三个域名,想着以后国外的域名托管都放在CF平台。

众所周知,CF提供免费的CDN分发,但国内的速度堪忧,于是我尝试着优化速度,便遭遇了接下来的两大重击。

CloudFlare优选IP:无法修改DNS服务器的域名

虽然CF整体在国内的速度不理想,但有部分IP地址相对较优,于是就有了自选IP这一概念。
简单来说,就是通过CF的SaaS服务,借用一个工具人性质的域名,将要使用的域名与它关联,然后在支持分运营商解析的DNS服务商处,将各个运营商的A记录解析IP设置为对应CF中较优的IP,将默认CNAME记录解析到工具人域名。具体方法参照:Cloudflare免费自选IP教程

这个方法具有可行性,需要用的东西实际上就是两个域名、支付验证(银联卡或Paypal)、支持分运营商解析的DNS服务商(华为云、阿里云)。前面提到,我要使用的域名实在CF上注册的,就需要将DNS服务器修改到阿里云上,第一个坑就出现了——Cloudflare无法修改DNS服务器。

我在外网搜寻一番后,得出来的结论是,停放在Cloudflare无法修改DNS服务器,永永远远只能用CF解析,唯一的方法就是迁出它。当然新域名要等60天……

三方CDN之谜:无法关闭的根域名CNAME拉平

抱着要优化速度的执念,既然CF不能用,那就换一个CDN。由于域名没备案,所以国内的CDN都用不了,兜兜转转试了两三个亚太CDN。但令人疑惑的出现了,明明官方的测试站点解析出的都是香港、日本、台湾节点,而我的香港服务器怎么会跑去美国、加拿大呢。或许套餐低了?或许这个服务商有猫腻?于是乎再换一个,仍旧是相同的情形。这就是CF的第二个坑导致的——根域名CNAME自动拉平。

根据RFC1912,域名根目录不得存在CNAME记录,因为根目录下的CNAME记录会使得整个域名的MX邮箱记录、TXT域名验证记录等全部失效。
因此,CloudFlare推出了拉平根目录CNAME的功能,通过CloudFlare的服务器,将CNAME解析为A记录,避免了冲突问题。
但是有一点问题,如果像CDN这样的,会根据请求者的IP而改变的动态CNAME记录,将会被CloudFlare拉平为一个固定的 A 记录。
CloudFlare的主服务器位于境外,即使你的用户主要是在国内,CloudFlare仍然会将其拉平为美国的服务器,使得这个固定的 A 记录经常速度太慢、延迟过高甚至超时。
以上来自——让 CloudFlare 根目录 CNAME 拉平更好用

现在明晰了,CF按照规定,不给根域名提供CNAME解析,而是根据自己的服务器(美国),刺探到CNAME指向的IP地址(对于CF而言当然会在美国),所以这里不再是根据请求者的IP而改变的CNAME,而是成为了一个固定的A记录。

要解决此问题方法有两种:第一,不再使用CF的DNS服务,大部分厂商的DNS并未对根域名的CNAME记录做限制。第二,像我一样域名放在CF出不来,考虑用WWW做站点域名吧(非根域名的CNAME都不会受到拉平),直到我迁出CF为止……

在Cloudflare托管域名?无法摆脱的CF解析两大坑!

https://woolio.cn/archives/2051/

作者

bluish

发布时间

2024-04-19

许可协议

CC BY-SA 4.0

添加新评论