最终结论:账号绑卡可以走SaaS回源,不绑卡只能人工设置IP。
基础状况
`客户端` <---> `Cloudflare边缘服务器` <---> `Cloudflare 网络` <---> `源服务器`
- Cloudflare公布了其服务器的IP地址范围,理论上不同IP代表着不同的边缘服务器,代表着不同的“线路”。
- 免费用户可以使用Cloudflare的CDN服务(开启小黄云),但是无法指定分配的边缘服务器(也就是域名实际查询到的IP)。
一般情况下,“线路”并不好,在国内的访问速度并较慢。 - 将任意
使用了Cloudflare的CDN服务的域名
解析到任意Cloudflare边缘服务器
,相关流量都能够成功连通到源服务器
。
朴素的做法
- 条件:
- 设备或程序接受控制,可以通过改host(或其它方法)将域名解析到指定IP
- 已知托管到Cloudflare CDN的
测试域名
,且测试服务器
连通正常
- 行为:
- 在当前网络,遍历Cloudflare服务器的IP地址
- 将
测试域名
解析到遍历的IP - 客户端访问
测试域名
服务,记录延迟、丢包率、上下行带宽速率等 - 获取当前网络下,
客户端
到测试服务器
的最优Cloudflare边缘服务器
- 推论:
- 当前网络下,短时间内,
客户端
通过最优Cloudflare边缘服务器
访问你的域名
达到性能最优。 - 如果对结论存疑,可以将
你的域名
替换掉测试域名
- 当前网络下,短时间内,
过时的做法
以前可以使用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到上面对应的运营商优选域名,然后境外设置成你默认的回退源(参考上篇引用)
域名B
CNAME到域名D
,再域名D
CNAME到域名C
(参考双域名白嫖Cloudflare优选IP)