Cloudflare到国内速度真的是不敢恭维,很多人说了很多种优选IP的方法,实际上ICMP时间短不代表速度优,而且CF都是Anycast的IP,虽然每个IP都对应那么一些节点(相对固定),但是不同的IP回源是不一样的.有些IP回源速度比较好,有些比较慢,而且和源站所在的位置,机房,线路也有关系,所以实际上最好的方法是自己优选.
Cloudflare CDN的IP范围是公开的,至于1.1.1.1和1.0.0.1就不做讨论,这两个比较特殊,实际上全时段速度都不太好,在优选之前,要先说明几个概念.
- IP是Anycast的,并没有地域性质,但是每个IP总是分配到那么几个地域,变化不大.
- IP可能会失效,这是正常现象,Cloudflare不会保证哪个是可用IP.
- 延迟低不一定回源快.
- 丢包高不一定下载慢.
- 某些节点丢包不高,延迟很大,但是回源很快,甚至可以当优化线路看待.(就类似于CN2 GIA的欧洲延迟很大,但是速度可能快过丢包很多延迟很低的日本)
第一步选出所有提供了Web服务的IP,这里给代码不给列表,因为各地扫描结果有差异,有些IP对于你的环境又是被屏蔽的:
https://gist.github.com/nickfox-taterli/519cba299741e6af167b9918acd6e4cc
我扫描了所有CF网段,能得到接近80万个IP.
第二步,在你的VPS上放置一个测试文件,不要太小,我设置了1GB.(如果你可以指向Looking glass文件,也是没问题的,但是不能用页面规则方式指向,因为这样测不出回源性能.)
第三步,设置Cloudflare的DNS解释,指向你的VPS,并设置页面规则,缓存级别为绕过,这样CF无论如何都会回源拉取文件.
第四步,修改我提供的测速代码中Host部分为你的域名,cf_ips.txt为第一步中扫到的IP结果.
https://gist.github.com/nickfox-taterli/8057e061b89f8c5873e7666da3df72f9
第五步,测试结果,然后人工选出比较快的节点,值得注意,如果同时测试线程数高,则成绩偏低,同时测试线程数少,则测试所需时间长.最好就是高峰时间段,跑满带宽测一下.
第六步,从刚才测试结果找到速度比较稳定的节点使用,或者选出可用节点进行多次反复测试直到满意,但是这个IP可能随时变的.测速也需要占用大量资源,我用的是腾讯云服务器测(5Mbps上行/100Mbps下行),如果是某些VPS小心被查水表.
优选结果(服务器源在欧洲罗马尼亚,基本不需要怎么缓冲.):
speedtest表现(本地千兆对等网,公司商宽,分享链接 => https://www.speedtest.net/result/9645803339):
注意:此处PING 27,指的不是TTFB,实际上链接时间比较久,不知道是怎么得出来的.
大佬你好,获取到了优选IP之后要怎么食用才能加速YouTube呢?
第一个py不写入文件哪来的ip?
@ls 执行管道至tee~
自荐一个我写的 CloudflareSpeedTest(Go语言,全平台/系统支持,不需要任何依赖)。
– 测试 Cloudflare CDN 延迟和速度,获取最快 IP (IPv4+IPv6)!
https://github.com/XIU2/CloudflareSpeedTest
直接运行就能自动延迟测速+下载测速,并列出速度最快的 IP。
当然还有进阶使用方法,自行搭配各种参数来获得更个性化的测速结果!
@XIU2 确实更方便,就是anycast IP其实每个人结果都不太一样,有人效果好有人效果差,最好还是自己测.
@XIU2 能定时跑吗?
@XIU2 你这个有木马病毒
@XIU2 你搞木马是把?
请问下配置dns解析之后,需要开启cdn吗?