NiceLeeのBlog 用爱发电 bilibili~

【资源】关于Cloudflare CDN 优选IP

2024-07-26
nIceLee

阅读:


最终结论:账号绑卡可以走SaaS回源,不绑卡只能人工设置IP。

基础状况

`客户端`  <---> `Cloudflare边缘服务器`  <--->  `Cloudflare 网络` <--->  `源服务器`
  • Cloudflare公布了其服务器的IP地址范围,理论上不同IP代表着不同的边缘服务器,代表着不同的“线路”。
  • 免费用户可以使用Cloudflare的CDN服务(开启小黄云),但是无法指定分配的边缘服务器(也就是域名实际查询到的IP)。
    一般情况下,“线路”并不好,在国内的访问速度并较慢。
  • 将任意使用了Cloudflare的CDN服务的域名解析到任意Cloudflare边缘服务器,相关流量都能够成功连通到源服务器

朴素的做法

  • 条件:
    • 设备或程序接受控制,可以通过改host(或其它方法)将域名解析到指定IP
    • 已知托管到Cloudflare CDN的测试域名,且测试服务器连通正常
  • 行为:
    • 当前网络,遍历Cloudflare服务器的IP地址
    • 测试域名解析到遍历的IP
    • 客户端访问测试域名服务,记录延迟、丢包率、上下行带宽速率等
    • 获取当前网络下,客户端测试服务器最优Cloudflare边缘服务器
  • 推论:
    • 当前网络下,短时间内,客户端通过最优Cloudflare边缘服务器访问你的域名达到性能最优。
    • 如果对结论存疑,可以将你的域名替换掉测试域名

上述可能使用到的工具:PC端Android端

过时的做法

以前可以使用Cloudflare推出的计划 Cloudflare Parterner。
成为Parterner,或在外包的第三方网站那里指定最佳IP。

绑卡的做法(免费)

想办法使得不使用Cloudflare的CDN服务的域名解析到任意Cloudflare边缘服务器,相关流量也能够成功连通到源服务器

先准备:

  • 一个用来CF CDN到源服务器的域名A
  • 一个给用户访问的域名B(可以不托管到CF)
  • 一个专用的解析到优选IP的域名C(可选,可以抄cloudflare.182682.xyz)
  • 一个和域名A同”根”域名的域名D,用来承接域名B的CNAME

步骤:

  • 在域名A对应的CF里面设置
    • SSL/TLS -> 自定义主机名 -> 启用Cloudflare for SaaS
    • 回退源 域名A
    • 自定义主机 域名B
    • 验证域名
  • 现在,理论上可以将域名B直接解析到CF的服务器上了。
    有条件的话,你可以自己分电信、联通、移动、海外分别找一下最优IP并设置解析。
    偷懒的话,你可以CNAME到域名C上,抄别人的作业。

根据Cloudflare优选IP 这篇文章推测:

现在Cloudflare的SaaS接入会检测CNAME记录,必须指向回退源?

现有两种方案绕过Cloudflare的DNS记录检测:

  • 分别将三网的解析CNAME到上面对应的运营商优选域名,然后境外设置成你默认的回退源(参考上篇引用)
  • 域名BCNAME到域名D,再域名DCNAME到域名C(参考双域名白嫖Cloudflare优选IP)

参考


内容
隐藏