基于 Clash/Mihomo 核心的测速工具,快速测试你的节点速度。
Features:
- 无需额外的配置,直接将 Clash/Mihomo 配置本地文件路径或者订阅地址作为参数传入即可
- 支持 Proxies 和 Proxy Provider 中定义的全部类型代理节点,兼容性跟 Mihomo 一致
- 不依赖额外的 Clash/Mihomo 进程实例,单一工具即可完成测试
- 代码简单而且开源,不发布构建好的二进制文件,保证你的节点安全
- 支持测试节点延迟、抖动、丢包率、下载速度和上传速度
- 支持自动检测节点IP信息,包括国家/地区、城市等
- 支持多种流媒体解锁测试

go install github.com/faceair/clash-speedtest@latest
clash-speedtest -h
Usage of clash-speedtest:
-c string
configuration file path, also support http(s) url
-f string
filter proxies by name, use regexp (default ".*")
-server-url string
server url for testing proxies (default "https://speed.cloudflare.com")
-download-size int
download size for testing proxies (default 50MB)
-upload-size int
upload size for testing proxies (default 20MB)
-timeout duration
timeout for testing proxies (default 5s)
-concurrent int
download concurrent size (default 4)
-test-concurrent int
test proxies concurrent size (default 2)
-output string
output config file path (default "result.txt")
-max-latency duration
filter latency greater than this value (default 800ms)
-min-download-speed float
filter speed less than this value(unit: MB/s) (default 5)
-min-upload-speed float
filter upload speed less than this value(unit: MB/s) (default 0)
-max-packet-loss float
filter packet loss greater than this value(unit: %) (default 0, max 50)
-fast
only test latency, skip download and upload speed test
-limit int
limit the number of proxies in output file, 0 means no limit (default 0)
-unlock string
test streaming media unlock, support: netflix|chatgpt|disney|youtube|...|all (default:null)
-sort string
sort proxies by fields, support: latency|jitter|packet_loss|download|upload|weighted, multiple fields separated by | (default "weighted")
- latency: 按延迟排序,延迟越低越好
- jitter: 按抖动排序,抖动越低越好
- packet_loss: 按丢包率排序,丢包率越低越好
- download: 按下载速度排序,下载速度越高越好
- upload: 按上传速度排序,上传速度越高越好
- weighted: 按加权得分排序,综合考虑上述所有指标
clash-speedtest -c 'https://domain.com/api/v1/client/subscribe?token=secret&flag=meta'
clash-speedtest -c ~/.config/clash/config.yaml -f 'HK|港'
节点 带宽 延迟
Premium|广港|IEPL|01 484.80KB/s 815.00ms
Premium|广港|IEPL|02 N/A N/A
Premium|广港|IEPL|03 2.62MB/s 333.00ms
Premium|广港|IEPL|04 1.46MB/s 272.00ms
Premium|广港|IEPL|05 3.87MB/s 249.00ms
clash-speedtest -c "https://domain.com/api/v1/client/subscribe?token=secret&flag=meta,/home/.config/clash/config.yaml"
clash-speedtest -c "https://domain.com/api/v1/client/subscribe?token=secret&flag=meta" -output filtered.yaml -max-latency 800ms -min-download-speed 5
clash-speedtest -c "https://domain.com/api/v1/client/subscribe?token=secret&flag=meta" -output filtered.txt -max-latency 800ms -min-download-speed 5 -min-upload-speed 2
filtered.txt示例
hysteria2://oejdsadsaMk4[email protected].92:4376?insecure=1&sni=bing.com#🇺🇸美国 SanJose [62% 一般] ...
vless://[email protected]:8080?host=JP.xxxxx.xxxxx.oRg.&path=/?ed=2048&type=ws#🇫🇷 法国 [10%] 纯净 ...
# 按照延迟和下载速度排序节点
clash-speedtest -c "https://domain.com/api/v1/client/subscribe?token=secret&flag=meta" -sort "latency|download"
# 使用加权排序(综合考虑所有性能指标)
clash-speedtest -c "https://domain.com/api/v1/client/subscribe?token=secret&flag=meta" -sort "weighted"
加权排序(weighted)是一种综合评分机制,它会根据节点的多项性能指标计算一个综合得分:
- 在普通模式下:延迟(30%)、抖动(15%)、丢包率(15%)、下载速度(30%)、上传速度(10%)
- 在Fast模式下:延迟(60%)、抖动(20%)、丢包率(20%)
这种排序方式能够帮助你找到综合性能最佳的节点,而不仅仅关注单一指标。
clash-speedtest -c "https://domain.com/api/v1/client/subscribe?token=secret&flag=meta" -unlock "netflix|disney|youtube"
clash-speedtest -c "https://domain.com/api/v1/client/subscribe?token=secret&flag=meta" -unlock "all"
通过 HTTP GET 请求下载指定大小的文件,默认使用 https://speed.cloudflare.com (50MB) 进行测试,计算下载时间得到下载速度。
测试结果:
- 带宽 是指下载指定大小文件的速度,即一般理解中的下载速度。当这个数值越高时表明节点的出口带宽越大。
- 延迟 是指 HTTP GET 请求拿到第一个字节的的响应时间,即一般理解中的 TTFB。当这个数值越低时表明你本地到达节点的延迟越低,可能意味着中转节点有 BGP 部署、出海线路是 IEPL、IPLC 等。
- 抖动 是指多次测试延迟时的波动情况,数值越低表示连接越稳定。
- 丢包率 是指测试过程中丢失的数据包百分比,数值越低表示连接质量越好。
请注意带宽跟延迟是两个独立的指标,两者并不关联:
- 可能带宽很高但是延迟也很高,这种情况下你下载速度很快但是打开网页的时候却很慢,可能是是中转节点没有 BGP 加速,但出海线路带宽很充足。
- 可能带宽很低但是延迟也很低,这种情况下你打开网页的时候很快但是下载速度很慢,可能是中转节点有 BGP 加速,但出海线路的 IEPL、IPLC 带宽很小。
Cloudflare 是全球知名的 CDN 服务商,其提供的测速服务器到海外绝大部分的节点速度都很快,一般情况下都没有必要自建测速服务器。
如果你不想使用 Cloudflare 的测速服务器,可以自己搭建一个测速服务器。
# 在您需要进行测速的服务器上安装和启动测速服务器
> go install github.com/faceair/clash-speedtest/download-server@latest
> download-server
# 此时在本地使用 http://your-server-ip:8080 作为 server-url 即可
> clash-speedtest --server-url "http://your-server-ip:8080"
工具会自动检测节点的IP信息,包括:
- 国家/地区:显示节点所在的国家或地区,并附带国旗emoji
- 城市:显示节点所在的城市
- 风险评估:检测IP是否存在风险,如代理/VPN检测、数据中心IP等
这些信息可以帮助你更好地了解节点的地理位置和安全性。