XIU2/CloudflareSpeedTest

关于下载测速不可用/不稳定 (`0.00 MB/s`) 的 情况说明 及 解决方法...

XIU2 opened this issue · 374 comments

XIU2 commented

为了避免偏离重点,本 Issues 下仅限讨论 下载测速地址 相关,其他问题请新开 Issues 否则可能会被 隐藏(折叠/最小化)

CloudflareST 下载测速地址将不再由我个人自建承担了,改为重定向至大家分享的公益地址,因此不再保证可用性,想要稳定建议自建~


刚刚 Cloudflare 发邮件跟我巴拉巴拉说了一大段,翻译为人话大概意思就是:

发现 cf.xiu2.xyz 最近流量太大,因此暂时限制了速度、流量优先级等,直到流量降低到 "正常" 水平时才会恢复。

我试了下发现还能勉强访问,但已经被限制成龟速了。。。可以说是慢至不可用了,干脆就先暂停了。

以前还有隔壁 better-cloudflare-ip 项目和我互相均摊流量,但是自从关闭后,大量用户涌入本项目,使用人数及下载测速流量直线上升(我算了下大概相当于以平均每秒 1Gb 的速度全天 24 小时的跑),被限制并不出乎我的意料,毕竟只是免费套餐。。。


目前只能建议大家改用其他下载测速地址,当然如果经常使用的话还是建议自建下载测速地址(很简单)更稳定可靠。

# 什么样的 URL 可用作 下载测速地址 ?

  1. 该地址用的是 Cloudflare CDN。
  2. 访问该地址可以直接下载文件。
  3. 文件大小建议不低于 200 MB(建议不高于 512 MB,避免因无法缓存而回源影响下载测速准确度)。

注意:如果下载测速地址大小低于 200MB,建议同时调低下载测速时间(如:-dt 5 ),以提高测速结果准确性。


# 有什么现成可用的 下载测速地址 ?

✨感谢以下分享公益 下载测速地址 的热心网友对本项目的帮助!

-url https://speed.cloudflare.com/__down?bytes=200000000
# 由 Cloudflare 官方提供,200 MB,优点是支持自定义大小(末尾数字),缺点是有 "每日总流量限制"...
-url https://download.parallels.com/desktop/v15/15.1.5-47309/ParallelsDesktop-15.1.5-47309.dmg
-url https://download.parallels.com/desktop/v17/17.1.1-51537/ParallelsDesktop-17.1.1-51537.dmg
# 由 Parallels 提供,200 MB、300 MB
-url https://cloudflare.cdn.openbsd.org/pub/OpenBSD/7.3/src.tar.gz
-url https://cloudflare.cdn.openbsd.org/pub/OpenBSD/7.3/i386/base73.tgz
-url https://cloudflare.cdn.openbsd.org/pub/OpenBSD/7.3/alpha/install73.iso
# 由 Openbsd 提供,200 MB
-url https://cdn.cloudflare.steamstatic.com/steam/apps/256843155/movie_max.mp4
# 由 Steam 提供,200 MB
-url https://speedtest.galgamer.eu.org/200m.png
# 由 @OPPO9008 提供,200 MB
-url https://speedtest.poorhub.pro/cf.7z
# 由 @little-twain 提供,469 MB
-url https://download-proxy.zhaofengying.com/api/download?url=任意文件地址
# 由 @hronro 提供,文件大小取决于指定的目标文件,在末尾的 ?url= 后面加上任意文件 URL(要求:可直接下载且大于 200MB)

# 例如,这样就能当下载测速地址用了(这个文件是 200 MB) :
-url https://download-proxy.zhaofengying.com/api/download?url=https://testfileorg.netwet.net/500MB-CZIPtestfile.org.zip
-url https://cf-speedtest.acfun.win/100mb.test
-url https://cf-speedtest.acfun.win/200mb.test
# 由 @cxw620 提供,100 MB、200 MB
-url https://cfspeed1.kkiyomi.top/200mb.bin
-url https://cfspeed1.kkiyomi.top/300mb.bin
-url https://cfspeed1.kkiyomi.top/500mb.bin
-url https://cfspeed2.kkiyomi.top/200mb.bin
-url https://cfspeed2.kkiyomi.top/300mb.bin
-url https://cfspeed2.kkiyomi.top/500mb.bin
# 由 @holll 提供,200 MB、300MB、500 MB
-url https://t1.geigei.gq
-url https://t2.geigei.gq
# 由 @mx4994 提供,500 MB
-url https://down.heleguo.top/download/100MB.zip
-url https://down.heleguo.top/download/200MB.zip
-url https://down.heleguo.top/download/300MB.zip
-url https://down.heleguo.top/download/400MB.zip
-url https://down.heleguo.top/download/500MB.zip
# 由 @mclk623 提供,100~1000 MB
-url https://music.googleapis.asia/mp3/shi.mp3
-url https://music.googleapis.asia/mp3/wushi.mp3
-url https://music.googleapis.asia/mp3/yibai.mp3
-url https://music.googleapis.asia/mp3/liangbai.mp3
-url https://music.googleapis.asia/mp3/sanbai.mp3
-url https://music.googleapis.asia/mp3/sibai.mp3
-url https://music.googleapis.asia/mp3/wubai.mp3
# 由 @xiaoeyv 提供,10、50、100、200、300、400、500 MB
-url https://pencilfiles.blockly.cf/cloudflarest-100mb.rar
-url https://pencilfiles.blockly.gq/cloudflarest-100mb.rar
-url https://pencilfiles.blockly.tk/cloudflarest-100mb.rar

-url https://pencilfiles.itkyou.cf/cloudflarest-100mb.rar
-url https://pencilfiles.itkyou.gq/cloudflarest-100mb.rar
-url https://pencilfiles.itkyou.tk/cloudflarest-100mb.rar

-url https://pencilfiles.ityou.cf/cloudflarest-100mb.rar
-url https://pencilfiles.ityou.gq/cloudflarest-100mb.rar
-url https://pencilfiles.ityou.tk/cloudflarest-100mb.rar

-url https://pencilfiles.kiring.cf/cloudflarest-100mb.rar
-url https://pencilfiles.kiring.gq/cloudflarest-100mb.rar
-url https://pencilfiles.kiring.tk/cloudflarest-100mb.rar

-url https://pencilfiles.rosmontics.cf/cloudflarest-100mb.rar
-url https://pencilfiles.rosmontics.gq/cloudflarest-100mb.rar
-url https://pencilfiles.rosmontics.tk/cloudflarest-100mb.rar

-url https://pencilfiles.annonymus.cf/cloudflarest-100mb.rar
-url https://pencilfiles.annonymus.gq/cloudflarest-100mb.rar
-url https://pencilfiles.annonymus.tk/cloudflarest-100mb.rar

-url https://pencilfiles.strinkthelink.cf/cloudflarest-100mb.rar
-url https://pencilfiles.strinkthelink.gq/cloudflarest-100mb.rar
-url https://pencilfiles.strinkthelink.tk/cloudflarest-100mb.rar

-url https://pencilfiles.blockly-games.cf/cloudflarest-100mb.rar
-url https://pencilfiles.blockly-games.gq/cloudflarest-100mb.rar
-url https://pencilfiles.blockly-games.tk/cloudflarest-100mb.rar

-url https://pencilfiles.blockly.cf/cloudflarest-200mb.rar
-url https://pencilfiles.blockly.gq/cloudflarest-200mb.rar
-url https://pencilfiles.blockly.tk/cloudflarest-200mb.rar

-url https://pencilfiles.itkyou.cf/cloudflarest-200mb.rar
-url https://pencilfiles.itkyou.gq/cloudflarest-200mb.rar
-url https://pencilfiles.itkyou.tk/cloudflarest-200mb.rar

-url https://pencilfiles.ityou.cf/cloudflarest-200mb.rar
-url https://pencilfiles.ityou.gq/cloudflarest-200mb.rar
-url https://pencilfiles.ityou.tk/cloudflarest-200mb.rar

-url https://pencilfiles.kiring.cf/cloudflarest-200mb.rar
-url https://pencilfiles.kiring.gq/cloudflarest-200mb.rar
-url https://pencilfiles.kiring.tk/cloudflarest-200mb.rar

-url https://pencilfiles.rosmontics.cf/cloudflarest-200mb.rar
-url https://pencilfiles.rosmontics.gq/cloudflarest-200mb.rar
-url https://pencilfiles.rosmontics.tk/cloudflarest-200mb.rar

-url https://pencilfiles.annonymus.cf/cloudflarest-200mb.rar
-url https://pencilfiles.annonymus.gq/cloudflarest-200mb.rar
-url https://pencilfiles.annonymus.tk/cloudflarest-200mb.rar

-url https://pencilfiles.strinkthelink.cf/cloudflarest-200mb.rar
-url https://pencilfiles.strinkthelink.gq/cloudflarest-200mb.rar
-url https://pencilfiles.strinkthelink.tk/cloudflarest-200mb.rar

-url https://pencilfiles.blockly-games.cf/cloudflarest-200mb.rar
-url https://pencilfiles.blockly-games.gq/cloudflarest-200mb.rar
-url https://pencilfiles.blockly-games.tk/cloudflarest-200mb.rar

-url https://pencilfiles.blockly.cf/cloudflarest-300mb.rar
-url https://pencilfiles.blockly.gq/cloudflarest-300mb.rar
-url https://pencilfiles.blockly.tk/cloudflarest-300mb.rar

-url https://pencilfiles.itkyou.cf/cloudflarest-300mb.rar
-url https://pencilfiles.itkyou.gq/cloudflarest-300mb.rar
-url https://pencilfiles.itkyou.tk/cloudflarest-300mb.rar

-url https://pencilfiles.ityou.cf/cloudflarest-300mb.rar
-url https://pencilfiles.ityou.gq/cloudflarest-300mb.rar
-url https://pencilfiles.ityou.tk/cloudflarest-300mb.rar

-url https://pencilfiles.kiring.cf/cloudflarest-300mb.rar
-url https://pencilfiles.kiring.gq/cloudflarest-300mb.rar
-url https://pencilfiles.kiring.tk/cloudflarest-300mb.rar

-url https://pencilfiles.rosmontics.cf/cloudflarest-300mb.rar
-url https://pencilfiles.rosmontics.gq/cloudflarest-300mb.rar
-url https://pencilfiles.rosmontics.tk/cloudflarest-300mb.rar

-url https://pencilfiles.annonymus.cf/cloudflarest-300mb.rar
-url https://pencilfiles.annonymus.gq/cloudflarest-300mb.rar
-url https://pencilfiles.annonymus.tk/cloudflarest-300mb.rar

-url https://pencilfiles.strinkthelink.cf/cloudflarest-300mb.rar
-url https://pencilfiles.strinkthelink.gq/cloudflarest-300mb.rar
-url https://pencilfiles.strinkthelink.tk/cloudflarest-300mb.rar

-url https://pencilfiles.blockly-games.cf/cloudflarest-300mb.rar
-url https://pencilfiles.blockly-games.gq/cloudflarest-300mb.rar
-url https://pencilfiles.blockly-games.tk/cloudflarest-300mb.rar
# 由 @PencilNavigator 提供,100、200 MB

✨感谢以上分享公益 下载测速地址 的热心网友对本项目的帮助!


# 如何使用其他 下载测速地址 ?

要使用其他下载测速地址,只需要在运行 CloudflareST 时加上 -url 参数即可,例如:

# Windows
CloudflareST.exe -url https://speed.cloudflare.com/__down?bytes=200000000

# Linux/Mac
./CloudflareST -url https://speed.cloudflare.com/__down?bytes=200000000

注意:如果下载测速地址大小低于 200MB,建议同时调低下载测速时间(如:-dt 5 ),以提高测速结果准确性。

Windows 用户不知道怎么加参数运行的话,可以看看这个:

XIU2 commented

# 自建下载测速地址(二选一):

1. Cloudflare Workers 文件反代(无需服务器,需要域名)

注意:因为 *.workers.dev 域名被 DNS 污染,所以默认分配的子域名将无法使用,有域名的可以将 Workers 服务路由绑定至自己的域名就能访问了。

可以利用 Cloudflare Workers 服务,这个只限制访问次数不限制流量,免费版每日 10 万次数限制(每天 8 点重置)。
搭建 Workers 文件反代很简单,也就在 Cloudflare 后台点几下就完事了,连服务器都省了。

「 点击展开 查看快速搭建步骤 」

简单来说就是:创建服务、粘贴代码、保存部署,完事~

  1. 打开 Cloudflare Workers,点击中间橙色的 Start building 按钮。
    如果是第一次用,则会让你取个 "专属于你" 的二级子域名,即 YYY.workers.dev,以后可以改...

  1. 点击 创建服务 按钮(如下图所示)

  1. 输入服务名称(三级子域名),选择第二个 HTTP 处理程序,点击 创建服务 按钮(如下图所示)

  1. 点击右下角的 快速编辑 按钮

  1. 清空原内容并粘贴以下代码,点击 保存并部署(通常 10 秒内就完成了,如下图所示)
addEventListener("fetch", event => {
  let url = new URL(event.request.url);
  url.protocol = 'https:'
  url.hostname = "cachefly.cachefly.net";
  let request = new Request(url, event.request);
  event.respondWith(fetch(request));
})

这里是以 https://cachefly.cachefly.net/200mb.test 为反代目标(不建议只照着这一个薅),不过最大只有 200MB,想要更大的请修改反代目标(下面有可用的大文件 URL),另外如果目标是 http 地址则记得将上面代码中的 https: 改为 http:

为了减少回源,提高下载测速准确度。建议反代目标选择文件小于 512MB 且 支持 CDN 缓存的文件后缀


  1. 最后尝试浏览器访问 https://XXX.YYY.workers.dev/200mb.test 如果可以正常下载则代表部署成功

注意:因为 *.workers.dev 域名被 DNS 污染,所以默认分配的子域名将无法使用,有域名的可以将 Workers 服务路由绑定至自己的域名就能访问了。

具体可以看看 #189 这里提到了 Workers 自定义域名。

后续使用 CloudflareST 时,记得加上 -url 参数,例如:

# Windows
CloudflareST.exe -url https://XXX.YYY.workers.dev/200mb.test 

# Linux/Mac
./CloudflareST -url https://XXX.YYY.workers.dev/200mb.test 

访问这个 URL 其实就是在反代 https://cachefly.cachefly.net/200mb.test
如果想要改成其他大文件 URL(下面写的有),只需要修改 Workers 代码中的 cachefly.cachefly.net 域名和协议即可


1.1【可选】自定义 Workers 地址的 URL 路径(简短好记)

「 点击展开 查看简单说明 」

把上面原先的 Workers 代码改成下面这样,即可把原先很长/不好记的 URL 路径改为简短好记:

addEventListener("fetch", event => {
  let url = new URL(event.request.url);
  if (url.pathname == "/test" && url.search == "") {
    url.href="https://cachefly.cachefly.net/200mb.test"
    let request = new Request(url, event.request);
    event.respondWith(fetch(request));
  }
})

其中第 3 行的 /test 就是你可以自定义的 URL 路径,最终下载测速地址为:https://xxx.yyy/test

你可以将其改为 /,这样的话最终下载测速地址为:https://xxx.yyy/ 可省略不写


2. 服务器套 Cloudflare CDN(需要服务器+域名)

「 点击展开 查看简单说明 」

首先你需要有个域名,然后在你的服务器上面创建一个虚拟主机(如 Nginx/Caddy),并在其目录下生成一个空文件即可:

# 以下命令会在 /XXX 目录下,生成一个文件名为 cfst.bin 大小为 300MB 的文件
# (超过 512M 的文件不会被 CDN 缓存,会导致次次回源,即大量消耗服务器流量不说,还会影响下载测速准确度,因为多了个回源环节)
# 记得修改命令中的 /XXX/ 示例路径,否则直接运行会提示找不到文件夹!

dd if=/dev/zero of=/XXX/cfst.bin bs=1M count=0 seek=300

# 因为是空文件,所以 Cloudflare 在缓存时 300MB 就会被压缩为 300KB 了,不占用 Cloudflare 的节点缓存空间,因此 Cloudflare 并没有追究文件正不正常的问题,顶多像我这样因流量太大(每天 10TB)而被域名限速了。。。
# 另外,不建议搞太多不同大小的文件,这样不利于缓存,因此 Cloudflare 的缓存机制还会看文件热度,如果流量分散到几个文件上,可能会导致文件热度不足早早就被清理,从而增加回源次数,消耗服务器流量。

也可以使用其他 Cloudflare CDN 支持缓存的文件后缀,具体见:#default-cached-file-extensions

最后给你的网站套上 Cloudflare CDN 即可。

使用初期的时候,会因为回源而消耗部分服务器流量并缓存到 CDN 节点,后续访问 URL 就直接从 CDN 缓存中读取了。

另外,建议去缓存 - Tiered Cache 中开启 Argo Tiered Cache 功能,这样可以进一步降低回源次数,节省服务器流量。


# 一些可用于 Cloudflare Workers 文件反代 的大文件 URL:

文件反代不知道在哪里找大文件的话,可以去看看各 IDC 的官方测速文件(可以谷歌搜索 VPS looking glasstestfile MB 就能找到很多,建议优先选择美西),建议选择 512MB 以下支持 CDN 缓存的文件后缀,我举几个例子:

# 这几个小于 512 MB,且都是会被 CDN 缓存的 .zip 文件后缀(常见的 文档、图片、音视频、压缩包、安装包、静态文件 后缀)
http://ipv4.download.thinkbroadband.com/200MB.zip
http://ipv4.download.thinkbroadband.com/512MB.zip
https://testfileorg.netwet.net/500MB-CZIPtestfile.org.zip

# 这几个 .test 的后缀是不支持缓存的,可以用但会影响下载测速准确度
https://cachefly.cachefly.net/200mb.test
https://lg-seattle.cloudzy.com/500MB.test
https://lg-miami.cloudzy.com/500MB.test
https://lg-chicago.cloudzy.com/500MB.test
https://lg.my.controlvm.com/500MB.test
http://23.145.48.48/500MB.test
http://speedtest-sfo3.digitalocean.com/1gb.test

注意:这些文件地址是让你 Workers 反代用的,不能直接用于 -url 参数!

我觉得用自己的cf workers反代大文件就很好,用这个优选ip的人肯定都会用cf,自己搭建也不麻烦,在使用教程里写上如何自己用cf搭反代就好了

我觉着这个方案可行

XIU2 commented

@tramsky996 我以前折腾过一个 Workers Github 文件加速的,但毕竟只适用于 Github 的 URL,我记得有那种适用于任何网站的文件加速的(如 xxx.xx/?url=https://yyy 这样的),但我一时半会又找不到。。。

@tramsky996 我以前折腾过一个 Workers Github 文件加速的,但毕竟只适用于 Github 的 URL,我记得有那种适用于任何网站的文件加速的(如 xxx.xx/?url=https://yyy 这样的),但我一时半会又找不到。。。

用过这个jsproxy
访问:https://xxx.子域名.workers.dev/-----http://url

还可以这样,用的v2rayn的测速文件,修改的话把hostname改了就行

addEventListener( 
  "fetch",event => { 
     let url=new URL(event.request.url); 
     url.hostname="cachefly.cachefly.net"; 
     let request=new Request(url,event.request); 
     event. respondWith( 
       fetch(request) 
     ) 
  } 
) 

访问:https://xxx.子域名.workers.dev/200mb.test
cachefly好像只有10mb 100mb 和 200mb

XIU2 commented

@tramsky996 大文件的话,可以直接去找一些 VPS 的官方测速文件,往往都不小。
可以谷歌搜索关键词 VPS looking glass 就能找到很多,建议优先选择美西。

XIU2 commented

@tramsky996 @mingxiaoyu 刚刚在 1L 补充了创建 Workers 的图文教程。

怪不得。下个版本可以增加一个预置动态的测速源的功能,这样当限速了也能获取到最新的不限速源

XIU2 commented

@WangWenBin2017 我还没想好到底怎么处理好,我个人比较咸鱼,不想牵涉过多精力来折腾下载测速地址,我更倾向于让大家自己去寻找或自建,但是这样又多少会影响轻度使用者/初次使用者。。。

另外,目前就能实现类似你说的效果,那就是将当前默认的下载测速地址直接 302 重定向至可用的地址即可,昨天我就尝试指向 Cloudflare 官方下载测速地址发现可以正常测速了,不过考虑到无论指向谁,都无法承受住这么大的下载测速流量(平均每秒 1Gb 速度全天 24 小时不停歇)。。。

就像 Cloudflare Workers 的免费套餐的每日 10 万次访问上限,看着很多,但对我来说远远不够,而我又懒得搞一堆账号,毕竟不仅麻烦而且还违反服务条款,容易翻车。

我想过可以考虑收集一个可用的下载测速地址列表,在服务器上随机/顺序重定向,来实现负载均衡,但我还没去研究,不知道 Nginx 是否能实现这样的功能。。。


目前默认的下载测速地址被 Cloudflare 限速至龟速,几乎不可用,所以我就暂时先将其重定向到该 Issues 问题下,就当成是一种变相通知吧,长时间无法下载测速,大家都会跑过来看看发生了什么。

可惜了,Cloudflare 官方下载测速地址竟然有每日总流量限制,一年前我这个项目还没多少人用的时候,就能把 Cloudflare 官方下载测速地址跑崩(一到晚上网站就会提示流量超限,直到第二天重置)。。。否则哪儿还需要操心这些事情~


虽然我写了这个软件,但实际上我自己只是一个轻度使用者,平均也只是几天用一次,只测延迟不测下载,可能是我是联通的原因,平时除了半夜 12 点高峰期顶峰期间外,其他时间随便找个延迟最低的 IP 速度都慢不到哪里去(白天 150ms,晚上 200ms),所以慢慢的我也就 -dd 禁用下载测速了。

我就说呢,咋测试半天一点速度都没有,还以为跟better-cloudflare-ip作者一样删库了。。

高宽带或者5g测试出来的ip用的更久,我家之前百兆宽带,基本一天得选两三次,用5g选的ip,选到的基本都是三百兆以上的速度,能用好几天

"众筹"行不行?(笑)大家都去worker弄一个地址,, 然后提个issue收集一下

我就说呢,咋测试半天一点速度都没有,还以为跟better-cloudflare-ip作者一样删库了。。

why he del?

大大,按照你的做法自己折腾了半天,还有2个问题不是很懂需要请教。
1.创建Cloudflare Workers反代的粘贴代码,如果用你提供的这套代码,http那到底是填写https:,还是http: ?我填的是http,没有“s“。
2.最后运行命令时,按照你提供的参数修改后,为什么测速不了。我最终是弄成这样: CloudflareST.exe -url https://xxx.xxxx.top/cfst.png才有速度。你的参数不知道该怎么加进来。可否解答。谢谢。
xxx.xxxx.top是我的域名。

XIU2 commented

@boboqiu82
代码中的协议选择 http 还是 https 取决于目标网站用的是什么。
代码示例中的 cachefly.cachefly.net 用的是 https,所以我代码中写的就是 https
如果目标网站用的是 http(如 http://speedtest-sfo3.digitalocean.com/1gb.test),那么你就需要改成 http

没明白你的意思,什么参数?你不是已经加上 url 参数了么?

明白了。
第2点那,是我自己搞混了。再认真看了下cf的地址,自己把自己搞混淆了。谢谢。

自建下载测速地址

  1. Cloudflare Workers 文件反代(推荐,无需服务器/域名)

已经按照这个步骤设置好反代,下一步怎么做? 在代码里修改哪段?

XIU2 commented

@peter2022 做完我写的步骤后(即 Workers 部署完成,手动访问 Workers URL 能正常下载文件),以后运行 CloudflareST 时只需要加上 -url https://xxx/xxx 参数即可,例如:

CloudflareST.exe -url https://xxx/xxx

参数怎么加 小白 看不明

或许可以收集一个可用的下载测速地址列表放在程序本体里, 包括网站的或者workers的. 也可以弄一个服务器配置下发, 找个网站存一个收集到的下载测速地址列表的json, 每次测速下载这个json缓存到本地, 设置一个有效期去更新, 允许在参数指定获取测速链接的json的地址方便大家自建分享. 然后程序加权随机选择一个(毕竟workers有日访问量限制), 不加参数默认文件大小到100MB. 毕竟大多数就直接双击启动懒得加参数, 网速快的选到不是最快不碍事. 所以默认的配置可以保守一点. 测算从开始接收到数据到下载完毕的耗时.

workers就统一用上面提供的代码, 网站就创建一个100MB的png后缀文件并设置cf页面规则确保缓存 .

mark一个我的地址, 如果作者大大需要: CF测速地址(Workers).

XIU2 commented

@cxw620 理想很丰满,现实很骨感。。。
你提出的想法很好,但是放在我这个小体谅的工具上就不太合适的,显得有点繁琐复杂。

我暂时的想法是,将当前默认下载测速地址,临时 302 重定向到可用的下载测速地址(依靠 Cloudflare 页面规则),然后我可以维护一个列表,定期通过 Cloudflare API 去修改该页面规则中的重定向目标,实现多个地址负载均衡

不过不着急,我想先观察一下,Cloudflare 的限速具体什么时候才会解除,模棱两可的也没说个准信。。。


你这个下载测速地址我先给放到 2L 里了,后续可能会加入我前面提到的列表中,如果撑不住了记得联系我移除~

自建测试成功,如何自动写入到pw :P)

XIU2 commented

@peter2022 自动写入到 pw ?什么意思。。。

passwall, :)

XIU2 commented

@peter2022 参考这个脚本 #156 ,修改一下脚本里面的 CloudflareST 运行参数即可

你是这些cf 测试脚本里回复最快最有耐心的 感谢!!!

怎么现在测试速度 用文件哪个链接 只显示IP 延迟 后面都是 都是 0 阿

XIU2 commented

@Rocketnana
2L 有现成的下载测速地址,1L 写的有 -url 参数使用方法。

@Rocketnana 2L 有现成的下载测速地址,1L 写的有 -url 参数使用方法。

1644063404(1)

@Rocketnana 2L 有现成的下载测速地址,1L 写的有 -url 参数使用方法。

这种的 我的笔记本和云电脑 也是这个情况

XIU2 commented

@Rocketnana 你这就是没认真看我写的是什么就直接复制粘贴拿来用了。。。

XIU2 commented

@Rocketnana 我调整了一下 1L 2L 的内容及顺序,这样应该不容易看迷糊了。

隔壁badafans的难民,想知道可以手机curl跑速是怎么做到的,因为有时候就手机看个油管什么的,不想再开电脑。

XIU2 commented

@sound99 手机上安装一个几十 MB 的微型 Linux 虚拟机去运行。
Android 手机运行教程IOS 手机运行教程

@sound99 手机上安装一个几十 MB 的微型 Linux 虚拟机去运行。 Android 手机运行教程IOS 手机运行教程
谢谢,好像是我没认真读说明。现在都设置好了,电脑也可以定时自动测速更换hosts了,很棒。

谢谢作者,问一下官方每日总流量限制是多少 ?
https://speed.cloudflare.com/__down?bytes=300000000 这个

大大,打算用你的软件对aws cloudfront优选出来的ip进行测速。但发现不会弄aws的反向代理。可以赐教下么?
cloudfront优选ip这步我会,软件参数会写,ip文件会建,就是接下来的下载测速卡住了。延迟测试结果正常,测试速度的结果都是0。

cloudfront也已实现资源创建,vps已套上cloudfront的cdn,目前用的是别人分享的IP。担心ip一旦失效后,就没辙了。不想用cloudfront提供的域名,ip到处飞,速度没保障。

XIU2 commented

@Oldming1 我也不清楚,大概一年多以前,我这个项目里的默认下载测速地址还是 Cloudflare 这个(是从 Cloudflare 官方测速网站里叭来的),不过用了一段时间后,发现一到晚上就无法下载测速了,手动一访问结果网页上 Cloudflare 提示流量超限巴拉巴拉的,直到第二天重置(我也忘了是 0 点还是 8 点)才能继续用。

XIU2 commented

@boboqiu82 我没用过 AWS CloudFront CDN,但这个 CDN 与 Cloudflare CDN 好像有所差别。

  • Cloudflare CDN 是除了部分 IP 节点外,用户可以通过任意 CDN IP 去访问网站。
  • 我印象中 CloudFront CDN 则有一些限制,能用的 IP 范围取决于网站掏了多少钱?可能并不能随便指向任意 CDN IP 去访问。
    不过我现在并不确定(可能和 Amazon 记岔了),而一时半会我也找不到什么使用 CloudFront 的域名,也无法验证这点。。。

因此,下载测速都是 0.00 很大可能性就是这些 IP 你的域名没有权限使用,小部分可能是其他配置/使用方面的问题(我不清楚)。

另附 CloudFront CDN IP 段列表:http://d7uri8nf7uskq.cloudfront.net/tools/list-cloudfront-ips


另外,你手动 Hosts 将域名指向自选 IP 时,是否能在浏览器中访问?不能访问的话提示什么?

@XIU2 -dd禁用下载测速的话,根据你的禁用下载测速的使用情况,测出来的ip用来访油管等的速度如何?

大大,cloudflare公布的ip地址跟你文件夹里面提供的地址不一样。用你的还是用官方提供的?是不是你的更全面?^-^

XIU2 commented

@peter2022 不清楚,因为我自选 IP 并不是为了代理,只是为了加速访问使用 Cloudflare CDN 的网站罢了。。。

@boboqiu82 你说的是 ip.txt 文件吗?并没有更全面,只是在官方公布的 IP 段中移除了无法用于自选的 IP 段。

请教一下大大有没有什么办法测油管和twitch直播的速度?

XIU2 commented

@wedcf120
这些网站无法直接通过 CloudflareST 测速,而且如果你自选 IP 是为了给套 CDN 的代理加速的话,也不需要关注这个,因为:

<=> Cloudflare CDN <=> 代理服务器 <=> Youtube

CloudflareST 测速自选获得最快 IP 只是为了提高 你 <=> Cloudflare CDN 这个环节的速度(使其尽量不会成为速度瓶颈)。
而你通过该代理访问 Youtube 时看到的最终速度取决于这三个 <=> 环节哪个最慢(木桶效应),最慢的 <=> 环节会成为速度瓶颈,再加上每多一个环节都必然产生速度损耗,因此你看到的最终速度是低于 CloudflareST 测速时看到的速度。。

@wedcf120 无法直接通过 CloudflareST 测速,而且如果你自选 IP 是为了给套 CDN 的代理加速的话,也不需要关注这个,因为:

<=> Cloudflare CDN <=> 代理服务器 <=> Youtube

CloudflareST 测速自选获得最快 IP 只是为了提高 你 <=> Cloudflare CDN 这个环节的速度(使其尽量不会成为速度瓶颈)。 而你通过该代理访问 Youtube 时看到的最终速度取决于这三个 <=> 环节哪个最慢(木桶效应),最慢的 <=> 环节会成为速度瓶颈,再加上每多一个环节都必然产生速度损耗,因此你看到的最终速度是低于 CloudflareST 测速时看到的速度。。

解释的到位!!!!

我用了works的反代,上午还可以测试,现在就不行了,问题能出在哪里呢?

XIU2 commented

@peter2022 你自建的下载测速地址,浏览器中能打开下载吗?

@peter2022 你自建的下载测速地址,浏览器中能打开下载吗?

上午和现在都可以的

https://snow-block-82b4.cftest2022.workers.dev/vultr.com.1000MB.bin

你试试这个 我又刚换了vultrde 1g文件,可以下载 不论是cachefly 或者vultr 目前加url 返回的结果都是下载速度0

XIU2 commented

@peter2022 我尝试访问,但发现不行,会提示找不到文件巴拉巴拉的。

如果有域名的话,更简单的方法是直接CNAME解析到VPS所在机房的LookingGlass。

XIU2 commented

@peter2022 你这多了一个 https:// 去掉后我这边依然无法下载(提示找不到文件)

@XIU2

完整测速结果已写入 result.csv 文件,可使用记事本/表格软件查看。
uci: Parse error 这个错误怎么处理?
下载为0

#!/bin/bash
bash /etc/init.d/haproxy stop
bash /etc/init.d/passwall stop
/root/CloudflareST/CloudflareST -url https://misty-shadow-8013.cftest2022.workers.dev/200mb.test
IP=$(sed -n "2,1p" result.csv | awk -F, '{print $1}')
[[ -z "${IP}" ]] && echo "CloudflareST 测速结果 IP 数量为 0,跳过下面步骤..." && exit 0
uci set passwall.***.address="${IP}"
uci commit passwall
bash /etc/init.d/haproxy restart
bash /etc/init.d/passwall restart

https://misty-shadow-8013.cftest2022.workers.dev/200mb.test 这个好用 但是出现下载为0和uci解析错误
pw的id 已用***代替
uci 的两条命令在openwrt的命令行中执行没有任何问题,在sh脚本中出现这个问题
上面的代码都是我在mobaxterm中自带的text editor 中手工敲得。。。。。。有的比较长的代码行就是拷贝到倒数第几个字母,然后手工录入剩下的字母。

XIU2 commented

@peter2022
我用你这个下载测速地址试了下,可以正常下载测速,有下载测速结果。
uci 什么的我不清楚,我没有 OpenWrt 设备,对这些不熟。

实在不行就远程协助,我帮你看看算了。。。下载远程协助软件(这个是只有被控功能的单文件版),发邮件 mozji@snapmail.cc (我随便找的临时邮箱)告诉我你的设备代码、临时密码,我会等你一段时间。
https://dl.todesk.com/windows/ToDesk_Lite.exe


另外,包裹代码用的是 ` 而不是单引号 ',是 ESC 键下面那个(大键盘数字 1 左边的)。

mozji@snapmail.cc
@XIU2
已发 感谢

@XIU2 非常感谢,自己调了2天,大大10分钟手到病除!!!:p

你好,我把自己的下载地址里面的测速文件从300M改成500M了。再次测速的时候,发现还是下载到300M后就停止下载了。导致速度不准。为什么还是会下载300M就停止换成别的ip,是因为cdn缓存的缘故么?应该怎么处理,谢谢了?

我用流量监控软件监控每个ip的下载情况,确实是下载到300M就停止了。

XIU2 commented

@boboqiu82

只有在这三种情况下,软件才会终止下载测速并继续下一个:

  1. 文件下载完了
  2. 超过下载测速时间了(默认 10 秒)
  3. 因为网络等原因导致下载中断,链接断开

尝试提高下载测速时间:-dt 20
当然你也可以选择适当降低时间,也能提高下载速度结果的准确性。

需要注意的是,下载测速时间不能设置太长,否则会导致结果明显失准(高于实际),也不能太短(最低 5 秒)。


主要还是因为 Cloudflare 速度并不稳定,忽高忽低的,再加上一开始有个起步加速时间,可能中间峰值速度很高,但是最后一平均就显得很低了。。。降低测速时间能缓解这一点,但是如果起步速度太慢则也会导致测速结果偏低,当然如果你就想过滤掉这些起步速度慢的 IP,也可以故意这么调低测速时间,但是不能调太低,具体自己试验。

总之下载测速仅为参考,同一个 IP 连续多次下载测速,得到的结果可能差距很大,这是正常情况。

手动hosts将域名指向自选IP后,确实有很多IP是无法通过浏览器访问,显示如下:
https://www.z4a.net/images/2022/02/06/1d82dd9117e2613a8.png
只想到笨办法手动测试了。呵呵呵。
不过cloudfront的ip质量真的好。广移宽带,连cloudfront香港的ip节点,随随便便都能有700-800Mbps。
不过电信确实不行,晚上太拥堵了。用自己的电信宽带来手动测试过,对比移动没法入目。

非常感谢XIU2提供的工具

我目前按照提示在workers自建了之后 在运行时加入了参数 可是测试出来的IP还是0.00 不知道什么情况
还请指教 谢谢

XIU2 commented

@boboqiu82 如果是你自己的域名套了 CloudFront 的话,可以网站里放个小文件去用来下载测速(本质是测试是否可以指向)
@benssenhe 自建的 Workers 下载测速地址,在浏览器中是否能正常访问下载?

谢谢回复。
我在浏览器里测试了是可以的 您可以看下这个地址

https://broken-tab.maniba.workers.dev/

https://broken-tab.maniba.workers.dev/200mb.test

XIU2 commented

@benssenhe 无需引用或 at 我,这个 Issues 下的所有回复都会通知我的。
我试了下,能正常访问下载。
你测速后,复制所有输出内容包括你运行用的命令,都发出来我看看。

谢谢XIU2.
刚才我又尝试了一次 这次是这样的结果 -

IP 地址           已发送  已接收  丢包率  平均延迟  下载速度 (MB/s)
104.19.109.94     4       2       0.50    168.35    0.28           
172.67.106.38     4       3       0.25    170.44    0.19           
104.19.108.250    4       3       0.25    170.30    0.00           
172.67.156.136    4       2       0.50    165.33    0.00           
104.16.30.249     4       2       0.50    167.52    0.00           
104.16.218.91     4       2       0.50    167.54    0.00           
104.27.41.87      4       2       0.50    167.60    0.00           
104.24.183.144    4       2       0.50    167.66    0.00           
104.21.21.218     4       2       0.50    167.70    0.00           
104.27.199.95     4       2       0.50    165.63    0.00    

我就写了三段命令

root@gzcmcc:~# cd CloudflareST
root@gzcmcc:~/CloudflareST# chmod +x CloudflareST
root@gzcmcc:~/CloudflareST# ./CloudflareST -url https://broken-tab.maniba.workers.dev/200mb.test

刚才我在佛山移动NAT试了一下 倒是可以

IP 地址           已发送  已接收  丢包率  平均延迟  下载速度 (MB/s)
104.16.51.82      4       4       0.00    157.35    12.93          
104.21.62.31      4       4       0.00    157.18    12.81          
104.17.232.112    4       4       0.00    156.86    12.71          
104.21.68.69      4       4       0.00    157.09    12.71          
104.21.79.136     4       4       0.00    157.03    12.59          
104.21.229.153    4       4       0.00    157.35    12.52          
172.67.221.194    4       4       0.00    156.62    12.51          
172.67.75.137     4       4       0.00    155.58    12.48          
104.21.65.148     4       4       0.00    157.16    11.59          
172.67.183.31     4       4       0.00    157.16    0.00    
XIU2 commented

@benssenhe 你的下载测速地址没问题,运行的命令也没问题。
只是你发的第一个测速结果中,可以明显看到网络质量很差(延迟虽然不高,但是丢包很严重,丢包对速度影响极大),因此可能难以链接到 Cloudflare 节点,自然没有下载速度或者说极慢(0.XX MB/s)。

如果一直是这样的话,那么你第一个测速时的网络环境可能并不适合继续使用 Cloudflare 了,建议你没事多测速观察一下(这种情况下,只需要关注是否还会丢包,为了节省时间可以 -dd 禁用下载测速)

是的 我又来了一次-dd 丢包还是严重 奇怪呀 这是广州移动的NAT

IP 地址           已发送  已接收  丢包率  平均延迟  下载速度 (MB/s)
104.27.2.48       4       3       0.25    168.34    0.00           
104.16.48.124     4       2       0.50    159.42    0.00           
104.17.239.92     4       2       0.50    160.28    0.00           
104.21.234.221    4       2       0.50    161.79    0.00           
104.24.237.179    4       2       0.50    165.48    0.00           
104.22.13.121     4       2       0.50    166.97    0.00           
104.20.42.220     4       2       0.50    167.24    0.00           
104.24.140.209    4       2       0.50    167.77    0.00           
172.67.115.106    4       2       0.50    168.56    0.00           
198.41.202.175    4       2       0.50    168.72    0.00   
XIU2 commented

@benssenhe 网络问题我无法给予帮助,只能建议你每隔一段时间就去延迟测速看看,如果持续几天都是这样,那就。。。

好哇 非常感谢 我再观察看看
对了 我有个IPV6的NAT 我是这么运行吗

./CloudflareST -url https://XXX.YYY.workers.dev/200mb.test -ipv6 

可是出来的结果是这样的 正常吗

IP 地址                                   已发送  已接收  丢包率  平均延迟  下载速度 (MB/s)
172.64.99.199                             4       4       0.00    171.70    5.05           
104.24.234.135                            4       4       0.00    172.76    0.18           
172.65.69.93                              4       4       0.00    175.55    0.00           
172.64.170.69                             4       2       0.50    173.75    0.00           
172.64.85.243                             4       1       0.75    171.82    0.00   
XIU2 commented

@benssenhe 要进行 IPv6 测速,需要同时加上这两个参数 -f ipv6.txt -ipv6 (你没有指定 IPv6 IP 段,依然是默认的 ip.txt)

我写的使用示例可能真的没什么人看吧。。。
https://github.com/XIU2/CloudflareSpeedTest#-ipv4ipv6

谢谢 我刚才试了一下 输入结果是这样的

root@debian:~/CloudflareST# ./CloudflareST -url https://XXX.YYY.workers.dev/200mb.test -f ipv6.txt -ipv6
# XIU2/CloudflareSpeedTest v2.0.2 

开始延迟测速(模式:TCP IPv6,端口:443,平均延迟上限:9999 ms,平均延迟下限:0 ms)
22028 / 22028 [---------------------------------------------------------------------------------] 100.00%

[信息] 延迟测速结果 IP 数量为 0,跳过下载测速。

[信息] 完整测速结果 IP 数量为 0,跳过输出结果。

是因为我没有改ipv6.txt吗 可是这个文件要怎么改呀 我第一次玩ipv6的NAT 添麻烦了0,0

XIU2 commented

@benssenhe ipv6.txt 里的 IP 段都是我写好的,不需要动。
这种提示,说明没有找到任何一个 TCPing 通的 IPv6 地址。
我在我的服务器上测试是正常的,请确保你那边能用 IPv6,你能 Ping 通这些 IPv6 吗?

root@A1:~/CloudflareST# ./CloudflareST -t 1 -f ipv6.txt -ipv6 -dd
# XIU2/CloudflareSpeedTest v2.0.2

开始延迟测速(模式:TCP IPv6,端口:443,平均延迟上限:9999 ms,平均延迟下限:0 ms)
20191 / 20191 [--------------------------------------------------------------------------------------] 100.00%
IP 地址                                   已发送  已接收  丢包率  平均延迟  下载速度 (MB/s)
2606:4700:130::bb31:b888:2f8c             1       1       0.00    6.73      0.00
2606:4700:130::bb69:7621:b936             1       1       0.00    6.73      0.00
2606:4700:130:0:11:9415:771c:52ac         1       1       0.00    6.89      0.00
2606:4700:130:0:11:7617:500f:b131         1       1       0.00    7.02      0.00
2606:4700:130:0:11:766f:f60c:3652         1       1       0.00    7.22      0.00
2606:4700:130:0:11:766f:9243:9f67         1       1       0.00    7.30      0.00
2606:4700:130:0:11:766f:f05:9d6d          1       1       0.00    7.36      0.00
2606:4700:130:0:11:766f:ff4:5868          1       1       0.00    7.62      0.00
2606:4700:130::5d2b:78cb                  1       1       0.00    8.19      0.00
2606:4700:130::5d70:798a                  1       1       0.00    8.23      0.00

我ping了之后好像没有反应了 我是用forward的ipv4登陆的SSH 这有影响吗

XIU2 commented

@benssenhe 和你用什么方式、网络访问服务器没有任何关系。
因为这是由服务器的出口决定的(当然还有系统的网卡等配置),支持就能 Ping 通,不支持就不通。

是的 那估计就是服务器的问题
因为我用了这段命令依旧是输出了0个结果

root@debian:~/CloudflareST# ./CloudflareST -t 1 -f ipv6.txt -ipv6 -dd
# XIU2/CloudflareSpeedTest v2.0.2 

开始延迟测速(模式:TCP IPv6,端口:443,平均延迟上限:9999 ms,平均延迟下限:0 ms)
23103 / 23103 [--------------------------------------------------------------------------] 100.00%

[信息] 完整测速结果 IP 数量为 0,跳过输出结果。

发现自定义测速文件的话,还是 https://speed.cloudflare.com/__down?bytes=300000000
测速结果中有一半0速度,只有一两个速度正常,剩下速度很慢

XIU2 commented

@BlueSkyXN 这个下载测速地址无关,只是单纯的网络问题(你、运营商、Cloudflare 之间)。
比如今天很多移动用户反应 Cloudflare 的所有节点都高丢包、速度严重下降。。。

@BlueSkyXN 这个下载测速地址无关,只是单纯的网络问题(你、运营商、Cloudflare 之间)。 比如今天很多移动用户反应 Cloudflare 的所有节点都高丢包、速度严重下降。。。

我使用自己的魔改CFIP进行单IP测速,发现个别标0的节点确实速度很慢
但是,大部分标0的在我另外一边测速大体是50-200M的水平[不使用本地锐速]

XIU2 commented

@BlueSkyXN 所以说,同一个 IP 在不同软件下测速结果不同?

@BlueSkyXN 所以说,同一个 IP 在不同软件下测速结果不同?

对的,具体原因还没发现,每次都有几个是直接显示0,但是也有几个是正常的,没发现他们之间的区别

XIU2 commented

@BlueSkyXN 我刚才跑了一下(因为是默认参数,所以是按顺序测完 10 次就结束了),看起来一切正常(我是联通)。

D:\Program Files\CloudflareST>CloudflareST.exe -url https://speed.cloudflare.com/__down?bytes=300000000
# XIU2/CloudflareSpeedTest v2.0.2

开始延迟测速(模式:TCP IPv4,端口:443,平均延迟上限:9999 ms,平均延迟下限:0 ms)
4608 / 4608 [---------------------------------------------------------------------------------------] 100.00%
开始下载测速(下载速度下限:0.00 MB/s,下载测速数量:10,下载测速队列:10):
10 / 10 [-------------------------------------------------------------------------------------------] 100.00%
IP 地址           已发送  已接收  丢包率  平均延迟  下载速度 (MB/s)
104.20.27.5       4       4       0.00    183.27    23.04
104.20.90.169     4       4       0.00    182.37    21.67
104.24.224.177    4       4       0.00    185.53    17.03
104.25.35.171     4       4       0.00    185.35    15.61
104.25.12.52      4       4       0.00    183.90    14.07
104.24.16.89      4       4       0.00    183.75    5.28
104.27.122.118    4       4       0.00    179.94    4.48
104.20.15.81      4       4       0.00    185.93    3.01
104.20.52.69      4       4       0.00    184.40    1.88
104.20.61.57      4       4       0.00    184.78    1.32

完整测速结果已写入 result.csv 文件,可使用记事本/表格软件查看。
按下 回车键 或 Ctrl+C 退出。

突然想起来一种可能,就是第一次延迟测试会有上千的并发,经常直接把我网络搞卡了,有可能是这个堵车的问题

XIU2 commented

@BlueSkyXN 这也算是常见的问题了,在 Issues 中我见到好几人遇到这种情况,所以我当初将默认的 -n 500 调低至 -n 200 了。

或许可以收集一个可用的下载测速地址列表放在程序本体里, 包括网站的或者workers的. 也可以弄一个服务器配置下发, 找个网站存一个收集到的下载测速地址列表的json, 每次测速下载这个json缓存到本地, 设置一个有效期去更新, 允许在参数指定获取测速链接的json的地址方便大家自建分享. 然后程序加权随机选择一个(毕竟workers有日访问量限制), 不加参数默认文件大小到100MB. 毕竟大多数就直接双击启动懒得加参数, 网速快的选到不是最快不碍事. 所以默认的配置可以保守一点. 测算从开始接收到数据到下载完毕的耗时.

workers就统一用上面提供的代码, 网站就创建一个100MB的png后缀文件并设置cf页面规则确保缓存 .

mark一个我的地址, 如果作者大大需要: CF测速地址(Workers).

你的CF测速地址(Workers). 没有命中缓存
cf-cache-status: DYNAMIC

XIU2 commented

@OPPO9008 他这个是用 Cloudflare Workers 搭建的(可以理解为简单的反代/中转,无需服务器/域名),拉取的文件也不是他自己服务器的(随便找个大文件即可),所以无需在意是否缓存(毕竟不花自己一分钱,全是白票来的~
这玩意要缓存文件应该还需要加一些特殊代码,但是我对 Cloudflare Workers 不熟。。。
而且这种格式后缀的文件,可能 Cloudflare 压根也不支持缓存。。。

自建下载测速地址

还有一种方法是cdn套 backblaze 免费存储桶

教程

再用转换规则 重写 桶文件路径 让链接更优雅
开启全部缓存的话 即不消耗流量,也不损耗api 次数,不受回源带宽限制

比起worker 可以避免反代链接失效,worker 被反爬虫的问题

XIU2 commented

@OPPO9008 嗯,方法很多,大家可以发散思维,研究出更合适的方案。
我只是提供一种最简单的(毕竟自选 IP 的大都有 Cloudflare 账号,只需点几下,且无需服务器/域名,只是自用的话要求不高~

引用自回复:

自建下载测速地址

还有一种方法是cdn套 backblaze 免费存储桶

教程

再用转换规则 重写 桶文件路径 让链接更优雅 开启全部缓存的话 即不消耗流量,也不损耗api 次数,不受回源带宽限制

比起worker 可以避免反代链接失效,worker 被反爬虫的问题

手机号收不到验证码😂

引用自回复:

自建下载测速地址

还有一种方法是cdn套 backblaze 免费存储桶

教程

再用转换规则 重写 桶文件路径 让链接更优雅 开启全部缓存的话 即不消耗流量,也不损耗api 次数,不受回源带宽限制

比起worker 可以避免反代链接失效,worker 被反爬虫的问题

这个相当于从网站获取了, 也避免不了流量过大被限

引用自回复:

或许可以收集一个可用的下载测速地址列表放在程序本体里, 包括网站的或者workers的. 也可以弄一个服务器配置下发, 找个网站存一个收集到的下载测速地址列表的json, 每次测速下载这个json缓存到本地, 设置一个有效期去更新, 允许在参数指定获取测速链接的json的地址方便大家自建分享. 然后程序加权随机选择一个(毕竟workers有日访问量限制), 不加参数默认文件大小到100MB. 毕竟大多数就直接双击启动懒得加参数, 网速快的选到不是最快不碍事. 所以默认的配置可以保守一点. 测算从开始接收到数据到下载完毕的耗时.
workers就统一用上面提供的代码, 网站就创建一个100MB的png后缀文件并设置cf页面规则确保缓存 .
mark一个我的地址, 如果作者大大需要: CF测速地址(Workers).

你的CF测速地址(Workers). 没有命中缓存 cf-cache-status: DYNAMIC

我们本质是测CF的速度, 不管有没有缓存都差不多, 毕竟测速文件来自大的专业测速网站, 带宽是肯定ok的

@BlueSkyXN 这个下载测速地址无关,只是单纯的网络问题(你、运营商、Cloudflare 之间)。 比如今天很多移动用户反应 Cloudflare 的所有节点都高丢包、速度严重下降。。。

坐标粤西, 测速可以跑满带宽, 但是7点后明显延迟变大 + 丢包

个人看法干脆一点,彻底停掉你的公益地址,必须在使用时指定URL。
无偿使用项目的前提是不对你造成影响,因此最优解就是使用每个人自己的账号额度。从而实现可持续发展
不应该用你的个人账号去为不可控、无休止的大流量承担责任。

提供制作测速地址方法,自行制作即可。
除了上面说过的 VPS 和 Workers,还可以使用 Cloudflare Pages,部署起来也不难。
这应该是最好的方案,一次部署,文件就在 CF 的服务器上了。

Workers 反代因为需要回源,可能仍然被限速。
最重要的是,自己测速,自己承担流量。

所以现在受影响的仅仅是测速限速还是ip限速,我的天哪,这么恐怖

XIU2 commented

@gitiray 我查了下 Cloudflare Pages 方案可能不太行,一方面是 Github 有单文件大小限制,另一方面是 Cloudflare 限制最大文件大小为 25MB,这点大小显然不够测速。。。

@lxh520-huan 只是下载测速出问题了,被限速的很离谱(属实感人),我就干脆给暂停了,而延迟测速自然不会被影响。
另外,你这怎么还发重复了,多余的一条我给你删掉了。

@gitiray 我查了下 Cloudflare Pages 方案可能不太行,一方面是 Github 有单文件大小限制,另一方面是 Cloudflare 限制最大文件大小为 20MB,这点大小显然不够测速。。。

@lxh520-huan 只是下载测速出问题了,被限速的很离谱(属实感人),我就干脆给暂停了,而延迟测速自然无法被影响。 另外,你这怎么还发重复了,多余的一条我给你删掉了。

我也支持 @gitiray 的观点,建议把你自己提供的移除,强制用自定义

提示大佬一个问题
大佬以前的测速链接是 png 图片,而cloudflare禁止缓存视频、不成比例的图片和音频

网站的流量全是 图片,迟早出问题

这是摘抄的TOS
2.8 Limitation on Serving Non-HTML Content
The Service is offered primarily as a platform to cache and serve web pages and websites. Unless explicitly included as a part of a Paid Service purchased by you, you agree to use the Service solely for the purpose of serving web pages as viewed through a web browser or other application and the Hypertext Markup Language (HTML) protocol or other equivalent technology. Use of the Service for serving video (unless purchased separately as a Paid Service) or a disproportionate percentage of pictures, audio files, or other non-HTML content, is prohibited.

建议大佬放超大的 html文件 作为测速链接

我还发现一种cloudflare 缓存超大文件的方法

生成2gb 可见字符文件

dd if=/dev/zero bs=1M count=2048 | tr "\x00" "\x31" | gzip -9 > bomb.gzip

nginx 配置

	location = /2gb.html {
        default_type text/html;
        add_header Content-Encoding gzip;
        gzip off;
        alias /var/www/html/2gb.gzip;
	}

实测2gb 大文件也成功缓存

https://speedtest.galgamer.eu.org/2gb.html

XIU2 commented

@OPPO9008 这个我知道,当初自建的时候就查过,所以选择了生成空文件来缓解,实测确实是有点用的(可能是因为压缩后极小不占用存储空间吧),如果是正常的图片文件,大文件大流量的话,怕是早就被 Cloudflare 暂停服务了(当初查的时候看过别人的吐槽,流量只是我的零头,却被暂停服务了,而我这个也只是因为流量太大而被限制速度什么。。。)

另外,我突然想起来,也见过有人因为网页不可读而被制裁,虽然用的不是 Cloudflare,但我不知道 Cloudflare 会不会也这样做,毕竟 200MB 的 .html 文件显然不正常,相比起来 200MB 的图片文件反而显得不那么突兀了(毕竟确实有这种大小的图片)。

在重新调整了参数后,由于大量发包造成的局域网网络波动导致速度为0的问题已解决
同时我把我测速地址从HTTPS改为HTTP,差距倒是不怎么明显
N值调到20~50表现更佳,就是墨迹点

CloudflareST.exe -url http://XXXX -n 100 -tl 180 -dt 20 -dn 20 -tp 80