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服务器。
2024-04-18T16:12:10.png

我在外网搜寻一番后,得出来的结论是,停放在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为止……
屏幕截图 2024-04-19 000429.png

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

https://bluish.cc/archives/2051/

作者

bluish

发布时间

2024-04-19

许可协议

CC BY-SA 4.0

标签: cloudflare, 域名

已有 7 条评论

  1. 在目前环境下,确实是不适合直接使用CF的DNS解析服务

  2. 最后怎么优化?我用CF的CDN,国内访问非常慢。又懒得备案,直接摆烂了。

    1. 如果域名不是在CF注册的,就可以用优选CF节点,还是能显著提效的。我最后是选了其他小众的亚太CDN,可以试试farCDN(farcdn.net)、盾云(ddunyun.com)。

  3. 我的cf解析记录会自动变成 g.ezoic.net 而且我手动改了之后,他也会自动变成上面地址??导致我换回了阿里的域名解析,大佬有听说过我这个情况吗?

    1. 你是不是把什么API泄露了或者用在了什么服务上。

      1. 我记得,好像没用它做过啥别的事,域名解析记录我加上去之后,就没管过了,有一次操作是用cf搞了一个隧道啥的,也不太懂,用在serv00上,不知道是不是因为这个,还是因为我之前用cf搞了一个work吗?其他没做过啥操作了,也好像没用过api啥的

        1. 那不懂了,我会建议你问提个工单问问CF,或者到NodeSeek这个论坛问问(不过要注册门槛)

添加新评论