跳至正文

自选节点来改善 Cloudflare CDN 的性能表现

  •  

Cloudflare 是优秀的网络服务提供商之一,其免费的套餐在小站站长圈子里广受好评。可是由于一些特殊的原因,Cloudflare 免费套餐的 CDN 服务在国内网络环境下的性能表现一直都不是很好,这是因为 Cloudflare 的特殊网络结构产生了次优路由选择的问题,这时候自选节点的优势就体现出来了。本文我会根据我自己配置自选节点的过程来介绍如何配置自选节点。

写在前面

Cloudflare 的节点采用的是 Anycast (泛播)技术,这个技术简单来说就像域名可以解析到不同的IP上一样,泛播 IP 也会根据本地网络来自动设置不同的接入点,从而达到减少延迟的效果。这个技术听起来是不是挺不错的,自动匹配最佳的接入点。但是在国内的网络下,Cloudflare 所采用的泛播技术对我们的网站性能只会产生负优化效果。这种负优化效果和国内运营商的出口网络有关,三大运营商均有不同程度的访问问题。根据实测,移动的访问速度最快,这可能是因为移动拥有 HKG 香港直连线路,经过自选节点后延迟基本可以做到低于50ms。而电信和联通的访问速度就要慢很多了,根据测试,这两家运营商自选节点后能做到的最低延迟也高于150ms,这可能因为这两家的基本出口线路的拓扑关系较复杂,泛播的 CF 节点基本都在美国本土,产生了次优路由选择。但是不管怎么说,自选节点后的访问延迟与加载速度都大幅优于自选前。

在国内备受诟病的 Cloudflare

之前网络上有很多的自选节点教程,但是那些基本都是利用 CF 的漏洞做到的,至今(2022.12)大多都已经被官方封杀。而本文介绍的这种方法均为官方提供的合法渠道,只要合理使用基本就不会有被封杀的风险,大可放心上车。

开始 准备工作 前的“准备工作”

  • 两个域名(除了你要自选节点的网站域名,你还需要有一个域名作为之后的回源域。)提示:需要自选节点的域名需接入一个可以自选运营商的 DNS 解析提供商。(DNSPod、青云、华为云等)
  • PayPal 账户或信用卡(这是使用 Cloudflare 自选节点的必须条件,需要一个有效的支付方式但是整个过程都是免费的。)

配置回源域

将你的回源域添加进 CF,然后设置一个便于记忆的 A 类解析,指向你的源服务器 IP。然后打开 CF 的代理。例如我的服务器 IP 是 192.168.1.1,我的回退域名为 cdn.wljay.xyz,我可以设置为如下的 DNS 解析。

注意“代理状态”需要为“已代理”

设置后,记住设置的这个域名,之后会经常用到。

随后,进入面板中“SSL/TLS”模块中的“自定义主机名”选项卡,验证支付方式后在界面中的“回退源”文本框中输入你刚刚设置的回源域名。

待回源域加载完成后,单击页面上方的“添加自定义主机名”。输入你需要自选节点的网址,然后下一步。例如我想给”https://test.wljay.cn/”这个网址自选节点,就直接输入“test.wljay.cn”即可。

配置主机证书验证

之后会出现类似下图的页面,现在进入你要自选节点的域名所接入的 DNS 解析平台。我这里以提供商为青云,网址为“https://test.wljay.cn/”为例。

进入解析提供商的控制台,进行添加 DNS 解析记录操作。这里有一个点要注意,Cloudflare 上提供的“证书验证 TXT 名称”和“主机名预验证 TXT 名称”都是完整的名称,而大部分的解析提供商在添加解析记录时都不需要输入根域名,例如“test.wljay.cn”在添加解析记录时,只需要添加“test”即可。同理,这里 Cloudflare 提供的两个 TXT 名称在设置解析时只需填写你的根域名前的字段即可。如果你在这一步出现了错误,可以考虑是上面这个原因导致的。

可能需要将 Cloudflare 里提供的两个 TXT 名称中的根域名删除

两个 TXT 验证解析都添加后,再次添加你要自选节点的域名的自选节点前的解析。添加 CNAME 解析,指向你在 CF 设置的的回源域名,如图所示。

到现在,你已经成功完成了一个网站在自选 Cloudflare 节点前的所有的准备工作。接下来,我们可以正式开始节点的选择。

自选最佳节点

自选的节点 IP 来源有三个。分别是大佬或者前人的分享、Cloudflare 官网公布的 IP 段以及自己从各类接入 Cloudflare 的网站手动解析而来。本文将着重介绍第二种方式,因为第一种和第三种都是要靠自己平常的上网冲浪的经验才能知道,而第二种是有相应的工具可以直接获取。

Cloudflare 公布节点 IP 的网站为 https://www.cloudflare.com/ips-v4 这里为 Cloudflare 主动公布的 IP 段,你可以使用 CloudflareST 这款测速工具来对每个 IP 进行测试,单击这里可以下载 Releases · XIU2/CloudflareSpeedTest · GitHub,下载后解压,将上面的 Cloudflare 网站中的 IP 段全部复制到目录下的“ip.txt”中。打开“CloudflareST.exe”即可自动开始测试。测试结束后的结果会在程序中直接展示,也会输出到目录下的“result.csv”文件中。

直接把这个网页里的 IP 段添加到后面就行
测试ing

你可以用三种运营商的网络环境分别测试一遍,然后得到三种结果。在解析提供商的面板中你刚刚已经做好准备工作的网址中添加对应运营商 A 类解析,指向刚刚测速优选的 IP 结果,如图所示。

我在这里推荐你开启解析的“智能模式”或类似模式,然后每种运营商选择2~3个最优的 IP,然后第四个添加“www.cloudflare.com” 这个网站解析的 IP,这是 Cloudflare 的官网,一般都是比较稳的。

智能解析模式

证明已配置完成

Windows 环境下,打开命令提示符,输入:

nslookup test.wljay.cn #自选节点的网站

如果返回的结果为:

非权威应答:
名称:    cdn.wljay.xyz #之前 CF 设置的回源域
Addresses:  ***.***.***.*** #自选的节点 IP
Aliases:  test.wljay.cn #自选节点的网站

即能说明已经配置完毕。

分享几个较好的节点 IP,具有较强的时效性,仅供参考。

电信:

104.29.64.7
104.29.64.15

移动:

104.29.64.7
104.29.64.28

联通:

104.29.64.7
104.29.64.28
104.29.64.29

写在后面

自选完成后不代表就一劳永逸了。日常要定期检测节点状态,如果节点抽风了就要再次择优更换。

国内高峰期测速结果

在此发布你的想法