Cloudflare国内访问慢的原因和解决方法

null-qwerty

减速 CDN

虽然 Cloudflare 提供全球 CDN 服务,但是在国内访问的速度非常慢,常被戏称为“减速 CDN”。原因在于,对来自中国大陆的访问,Cloudflare 会将其路由到位于美国的服务器,导致访问速度异常的慢。

至于为什么路由到美国而不是更近的新加坡、日本、中国香港等地,大概是因为亚洲的网络线路的费用更贵吧()

实际上 Cloudflare 和百度云(后面好像换成了京东云)有合作,在中国有 CDN 服务器的,但这是一种定制服务,作为个人是无法使用的。

Cloudflare中国网络访问

不过我们可以使用别的一些方法自选服务器地址使在中国大陆的访问更快。

CloudflareSpeedTest

在查阅资料时笔者发现了 CloudflareSpeedTest 这个仓库,他可以返回当前网络连接下,延迟最低的 Cloudflare 服务器。

既然我已经有了 CDN 服务器的 IP,那么我就可以选择这个 CDN 服务器提供服务。

配置自选 IP

网上查到的方法

首先使用 CloudflareSpeedTest 测速,找到延迟最低的 Cloudflare CDN 服务器 IP。例如,笔者在杭州移动网络下测到的 IP 如下:

cdn延迟

之后,将域名的 DNS 服务器改成非 Cloudflare 的 DNS 服务器,如笔者改回了阿里云分配的万网 DNS:

1
2
dns27.hichina.com
dns28.hichina.com

并在解析中添加 A 记录指向上面测出的低延迟服务器 IP 即可。

阿里云dns记录

当然也可以只加一部分。

但是,一段时间过后会收到 Cloudflare 发送的邮件:

xxx 的名称服务器不再指向 Cloudflare。它们现在指向:

dns27.hichina.com
dns28.hichina.com
[not set]

此更改意味着 xxx 不再使用 Cloudflare……

也就是你没有使用 Cloudflare 的 DNS,需要把 DNS 服务器换到它给你的那两个重新开启 Cloudflare 服务。但这么做太麻烦了。
笔者尝试过将 Cloudflare 的 DNS 和万网 DNS 同时设置,以及在 DNS 解析中添加 NS 记录指向 Cloudflare DNS,都无法解决这个问题。

修改后的方法

考虑到这个博客的访问几乎都来自国内,实际上不用考虑来自国外的访问。所以做出以下改动。

前两步与上面相同,测速并添加 A 记录,但是 DNS 不动,保持使用 Cloudflare DNS。

随后,在 Cloudflare 的 DNS 解析记录中添加 NS 记录:

Cloudflare记录

对于普通的网站上面方法是可行的,但需要加非常多条 NS 记录,需要把所有子域名都添加 NS 记录指向万网 DNS。但由于笔者使用过 Cloudflare Worker,导致部分子域名无法指向万网 DNS,后续便换回前一种方法。

  • 标题: Cloudflare国内访问慢的原因和解决方法
  • 作者: null-qwerty
  • 创建于 : 2024-01-31 22:16:13
  • 更新于 : 2024-08-16 17:50:42
  • 链接: https://www.null-qwerty.top/2024/01/31/Cloudflare国内访问慢的原因和解决方法/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论