功能请求: 增加 --skip-invalid 参数,遇到格式错误的节点跳过继续测速
问题描述
当配置文件中包含格式异常的节点时(例如缺少 obfs-password、无效的加密方式等),clash-speedtest 会直接崩溃退出:
load proxies failed: proxy 34: missing obfs password
对每天自动收集上千个节点的管道来说,上游数据偶尔混进去几个坏节点是难免的。目前没有途径跳过它们测试其余正常节点。
建议方案
增加 --skip-invalid 参数。启用后:
- 加载配置时遇到格式错误的节点,跳过并继续加载下一个
- 每个跳过的节点输出一条 warning:warning: skipped proxy 34 (missing obfs password)
- 正常测试所有可用节点
- 结束时汇总:998/1000 proxies tested, 2 skipped
当前行为
clash-speedtest -c config.yaml
error: load proxies failed: proxy 34: missing obfs password
加上 --skip-invalid
clash-speedtest -c config.yaml --skip-invalid
warning: skipped proxy 34 (missing obfs password)
正常测试其余 999 个节点...
实现思路
speedtester/speedtester.go 中 LoadProxies() 当前遇错直接返回 error。改成在 --skip-invalid 模式下收集每个节点的错误但不中断,最后只返回有效的节点列表。
// 当前逻辑
allProxies, err := speedTester.LoadProxies()
if err != nil {
log.Fatalln("load proxies failed: %s", err) // ← 直接退出
}
// 期望逻辑
allProxies, err := speedTester.LoadProxies()
if err != nil {
if !skipInvalid {
log.Fatalln("load proxies failed: %s", err)
}
log.Printf("warning: %s, skipping invalid proxies", err)
}
典型场景
自动化节点收集工作流(GitHub Actions、定时任务等),上游订阅源偶尔有格式不对的节点,不应因为几个坏节点就阻塞全部节点的测速。
功能请求: 增加 --skip-invalid 参数,遇到格式错误的节点跳过继续测速
问题描述
当配置文件中包含格式异常的节点时(例如缺少 obfs-password、无效的加密方式等),clash-speedtest 会直接崩溃退出:
load proxies failed: proxy 34: missing obfs password
对每天自动收集上千个节点的管道来说,上游数据偶尔混进去几个坏节点是难免的。目前没有途径跳过它们测试其余正常节点。
建议方案
增加 --skip-invalid 参数。启用后:
当前行为
clash-speedtest -c config.yaml
error: load proxies failed: proxy 34: missing obfs password
加上 --skip-invalid
clash-speedtest -c config.yaml --skip-invalid
warning: skipped proxy 34 (missing obfs password)
正常测试其余 999 个节点...
实现思路
speedtester/speedtester.go 中 LoadProxies() 当前遇错直接返回 error。改成在 --skip-invalid 模式下收集每个节点的错误但不中断,最后只返回有效的节点列表。
// 当前逻辑
allProxies, err := speedTester.LoadProxies()
if err != nil {
log.Fatalln("load proxies failed: %s", err) // ← 直接退出
}
// 期望逻辑
allProxies, err := speedTester.LoadProxies()
if err != nil {
if !skipInvalid {
log.Fatalln("load proxies failed: %s", err)
}
log.Printf("warning: %s, skipping invalid proxies", err)
}
典型场景
自动化节点收集工作流(GitHub Actions、定时任务等),上游订阅源偶尔有格式不对的节点,不应因为几个坏节点就阻塞全部节点的测速。