优选高速IP地址提升CloudFlare CDN速度

CloudFlare 是一个非常优秀的 CDN 服务,国外很多网站都在使用 Cloudflare CDN,但是 CloudFlare 也有一个大的毛病——访问速度很慢,分配给中国内地访客的 IP 并不友好(延迟高、丢包多、速度慢)。好在 CloudFlare 的 IP 地址非常地多,不同的 IP 地址所在的 CDN 节点服务器访问速度也会不同,由于 CloudFlare 采用的是 Anycast IP,只要访问到一个 IP 就相当于访问到 CloudFlare CDN 了,这样给我们另一个可选方案:优选 CloudFlare IP 地址,让那些本地访问速度快的 IP 地址变成我们网站的 CloudFlare CDN 地址。

虽然 Cloudflare 公开了所有 IP 段( https://www.cloudflare.com/zh-cn/ips/ ),但想要在这么多 IP 中找到适合自己的,怕是要累死,那么今天就推荐一个自动优选 CloudFlare IP 的软件CloudflareSpeedTest ,用来测试 Cloudflare CDN 延迟和速度,获取最快 IP (IPv4+IPv6)

快速使用方法

1、根据所使用的系统在 https://github.com/XIU2/CloudflareSpeedTest/releases/ 下载编译好的可执行文件并解压。

[!tip]
脚本cfst_host.bat的作用是CloudflareSpeedTest测速后获取最快 IP 并替换 Hosts 中的 Cloudflare CDN IP。

2、双击运行CloudflareST.exe文件(Windows 系统),等待测速完成。测速完毕后,默认会显示最快的 10 个 IP。默认下载测速地址的文件大小只有 200MB,如果你速度太快的话,测速结果可能会低于实际速度。因为每次测速都是在每个 IP 段中随机 IP,所以每次的测速结果都不可能相同,这是正常的!

  • 如果平均延迟非常低(如 0.xx),则说明 CloudflareST 测速时走了代理,请先关闭代理软件后再测速。
  • 如果在路由器上运行,请先关闭路由器内的代理(或将其排除),否则测速结果可能会不准确/无法使用。
  • 因为每次测速都是在每个 IP 段中随机 IP,所以每次的测速结果都不可能相同,这是正常的!
  • 注意!我发现电脑开机后第一次测速延迟会明显偏高(手动 TCPing 也一样),后续测速都正常
  • 因此建议大家开机后第一次正式测速前,先随便测几个 IP(无需等待延迟测速完成,只要进度条动了就可以直接关了)
  • 软件默认参数下的整个流程大概步骤:
    1. 延迟测速(默认 TCPing 模式,HTTPing 模式需要手动加上参数)
    2. 延迟排序(延迟从低到高排序并按条件过滤,不同丢包率会分开排序,因此可能会有一些延迟低但丢包的 IP 排到后面)
    3. 下载测速(从延迟最低的 IP 开始依次下载测速,默认测够 10 个就会停止)
    4. 速度排序(速度从高到低排序)
    5. 输出结果(通过参数控制是否输出到命令行(-p 0)或输出到文件(-o “”))

[!important]
本软件仅适用于网站,不支持给使用 UDP 协议的 Cloudflare WARP 优选 IP

3、完整结果保存在当前目录下的result.csv文件中,用记事本/表格软件打开。

[!info]
输出的结果文件result.csv通过微软 Excel 表格打开会中文乱码,这是正常的;其他表格软件/记事本都显示正常。

进阶使用方法

直接运行CloudflareST.exe使用的是默认参数,如果想要测速结果更全面、更符合自己的要求,可以用CloudflareST.exe -自定义参数的方式运行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
CloudflareSpeedTest 参数列表:

-n 200
延迟测速线程;越多延迟测速越快,性能弱的设备 (如路由器) 请勿太高;(默认 200 最多 1000)

-t 4
延迟测速次数;单个 IP 延迟测速的次数;(默认 4 次)

-dn 10
下载测速数量;延迟测速并排序后,从最低延迟起下载测速的数量;(默认 10 个)

-dt 10
下载测速时间;单个 IP 下载测速最长时间,不能太短;(默认 10 秒)

-tp 443
指定测速端口;延迟测速/下载测速时使用的端口;(默认 443 端口)

-url https://cf.xiu2.xyz/url
指定测速地址;延迟测速(HTTPing)/下载测速时使用的地址,默认地址不保证可用性,建议自建;

-httping
切换测速模式;延迟测速模式改为 HTTP 协议,所用测试地址为 [-url] 参数;(默认 TCPing)
注意:HTTPing 本质上也算一种 网络扫描 行为,因此如果你在服务器上面运行,需要降低并发(-n),否则可能会被一些严格的商家暂停服务。
如果你遇到 HTTPing 首次测速可用 IP 数量正常,后续测速越来越少甚至直接为 0,但停一段时间后又恢复了的情况,那么也可能是被 运营商、Cloudflare CDN 认为你在网络扫描而 触发临时限制机制,因此才会过一会儿就恢复了,建议降低并发(-n)减少这种情况的发生。

-httping-code 200
有效状态代码;HTTPing 延迟测速时网页返回的有效 HTTP 状态码,仅限一个;(默认 200 301 302)

-cfcolo HKG,KHH,NRT,LAX,SEA,SJC,FRA,MAD
匹配指定地区;地区名为当地机场三字码,英文逗号分隔,支持小写,支持 Cloudflare、AWS CloudFront,仅 HTTPing 模式可用;(默认 所有地区)

-tl 200
平均延迟上限;只输出低于指定平均延迟的 IP,各上下限条件可搭配使用;(默认 9999 ms)

-tll 40
平均延迟下限;只输出高于指定平均延迟的 IP;(默认 0 ms)

-tlr 0.2
丢包几率上限;只输出低于/等于指定丢包率的 IP,范围 0.00~1.000 过滤掉任何丢包的 IP;(默认 1.00)

-sl 5
下载速度下限;只输出高于指定下载速度的 IP,凑够指定数量 [-dn] 才会停止测速;(默认 0.00 MB/s)

-p 10
显示结果数量;测速后直接显示指定数量的结果,为 0 时不显示结果直接退出;(默认 10 个)

-f ip.txt
IP段数据文件;如路径含有空格请加上引号;支持其他 CDN IP段;(默认 ip.txt)

-ip 1.1.1.1,2.2.2.2/24,2606:4700::/32
指定IP段数据;直接通过参数指定要测速的 IP 段数据,英文逗号分隔;(默认 空)

-o result.csv
写入结果文件;如路径含有空格请加上引号;值为空时不写入文件 [-o ""];(默认 result.csv)

-dd
禁用下载测速;禁用后测速结果会按延迟排序 (默认按下载速度排序);(默认 启用)

-allip
测速全部的IP;对 IP 段中的每个 IP (仅支持 IPv4) 进行测速;(默认 每个 /24 段随机测速一个 IP)

-v
打印程序版本 + 检查版本更新

-h
打印帮助说明

更多使用方法参见 CloudflareSpeedTest Github项目地址: https://github.com/XIU2/CloudflareSpeedTest/