手动优选Cloudflare最快IP – 得到最快回源IP

  • by

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,实际上链接时间比较久,不知道是怎么得出来的.

发表评论

电子邮件地址不会被公开。 必填项已用*标注