基于 Clash 核心的测速工具,帮我发现了我正在使用的机场是个垃圾

2023-05-02 23:59:15 +08:00
 faceair
我之前使用的机场的特点是使用 Clash 自带的延迟测试来看延迟都很低,但实际带宽很低很低。平时看 Clash 自带的测速很漂亮就以为很好,最近下载一些 huggingface 上的模型自己玩就发现其实很卡。机场的的节点一般很多,如果配置的是 Loadbalance 的模式的话手动跑 speedtest 还是比较困难的,还是需要一个简单可靠的测速工具帮助定位问题的。

我在 Github 搜罗了一圈,发现似乎没有很好的轮子:
1. StairSpeedtest 本地运行直接 crash 了
2. SSRSpeedN 安装运行起来比较复杂
3. nodesCatch 闭源工具不敢用
4. starudream/clash-speedtest 勉强能用,但不支持 Proxy Provider
5. FullTclash 有一些机场在用,个人用起来比较麻烦

我写的这个工具的特点:
1. 无需额外的配置,直接将 Clash 配置文件地址作为参数传入即可
2. 支持 Proxy 和 Proxy Provider 中定义的全部类型代理节点,兼容性跟 Clash 一致
3. 不依赖额外的 Clash 实例,单一进程即可完成测试
4. 代码简单而且开源,不发布构建好的二进制文件,保证你的节点安全

Github 地址 https://github.com/faceair/clash-speedtest

从功能上来说当前还只满足了比较简单的个人需求,但如果大家对这个实现有兴趣,可以开 issue 或者 pr 一起完善。
10177 次点击
所在节点    分享创造
43 条回复
faceair
2023-05-04 13:11:45 +08:00
@vueli #20 用我这个工具测出来情况是怎么样的?延迟和带宽匹配吗?
macy
2023-05-04 21:05:35 +08:00
已 start ,很棒的工具,有时候机场 ping 很低,但是视频会卡,又没有好办法,建议增加排名功能,测试结束后,过滤出速度最快的几个节点,能帮助用户直观选择
faceair
2023-05-04 22:16:06 +08:00
@macy #22 已更新 v1.2.0 ,支持传入 http 订阅链接,支持默认按带宽降序排列,也给结果标记了一些颜色
824020994
2023-05-05 09:21:09 +08:00
为什么我下载后,打开命令行文件闪退
faceair
2023-05-05 10:26:26 +08:00
@824020994 #24 如果是 windows 的话可以尝试在终端运行这个 exe 文件,如果确实有啥报错的话可以开 issue 补充上下文信息再看
yufeng0681
2023-05-06 13:59:21 +08:00
这个应用,虽然有盗用风险, 但是还是值得做做增值服务的,就是 客观评价哪家机场是真的服务品质好;
这样你就能 基于这个排名,做推荐入口。

减少信息差,对用户就是好事。
Jzdoxc
2023-05-06 14:59:34 +08:00
可以添加一个订阅转换的,有的机场的订阅是一大串字符,clash for windows 可以识别,使用你这个无法识别
kaiger
2023-05-06 17:37:54 +08:00
好东西,已 star ,就是能不能控制下载文件大小,节点多的话,几轮测速流量就没了。
faceair
2023-05-06 19:20:33 +08:00
@kaiger #28 有参数,你仔细看下
Royal22
2023-05-06 23:39:45 +08:00
我曾经考虑过采用类似的方法进行测速并选择最优节点,但是后来我发现这种方法存在一些问题。例如,在高峰期和平时,速度可能会有所不同,就连 NF 的速度都大不相同,并且稳定性也需要考虑。因此,我正在思考如何解决这个问题,使之更加线性化和可靠。
faceair
2023-05-06 23:59:44 +08:00
@Royal22 可能不用选择最优节点。如果这个机场不能保证在高峰时间的可用带宽充足,换一家就好了。
vituralfuture
2023-05-07 00:14:42 +08:00
正好最近在学 go ,可以学一下
不过我有一个疑问,为什么写入 csv 文件要插入 BOM?
我了解的是,BOM 可能会干扰一些软件处理文本流
另外 BOM 对 UTF-8 是可选的
faceair
2023-05-07 01:17:04 +08:00
@vituralfuture #32 这部分代码的主体是一位贡献者提供的 https://github.com/faceair/clash-speedtest/pull/1 根据他的描述可能是 excel 打开 utf8 的 csv 的时候需要 BOM 。如果你想移除这个 BOM 的话可以介绍一下具体的使用场景,我来权衡一下,可能再额外开个选项之类的,或者提供 json 等其他的格式来使用。
faceair
2023-05-07 01:24:14 +08:00
@Jzdoxc #27 你说的这个应该是 ss 或者 ssr 的订阅,要解析转成 clash 的格式在代码实现上还是比较费劲的。你可以自己找一些工具来转换。
另外是其实大部分的机场现在应该都是直接提供 clash 的订阅的链接的,如果明面上没有的话也可以自己尝试加一下 &flag=clash 或者 &clash=1 看看。https://github.com/Dreamacro/clash/issues/2632#issuecomment-1475482445
likeme
2023-05-08 08:56:21 +08:00
mac os 有能用的嘛
faceair
2023-05-08 09:40:27 +08:00
@likeme #35 现在是有什么问题?应该是全平台通用的
likeme
2023-05-08 09:56:48 +08:00
@faceair 抱歉没看到需要用到 go 环境~
ciki
2023-05-08 14:12:46 +08:00
测试了下,我的机场识别不到节点
faceair
2023-05-08 14:56:56 +08:00
@ciki #38 方便的话可以尝试隐去节点信息之后提个 issue ,贴一下完整的文件,我看下结构
jesky
2023-05-09 23:28:14 +08:00
这是个好东西,收藏了,明天试试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/936935

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX