感谢你向 Clash Core 提交 issue!
在提交之前,请确认:
请注意,如果你并没有遵照这个 issue template 填写内容,我们将直接关闭这个 issue。
config.yaml
proxy-providers:
test:
type: file
path: /test.yaml
health-check:
enable: true
url: url_sample.com
interval: 375
......
proxy-groups:
- name: test-group
type: select
use:
- test
不相关
操作系统 (the OS that the Clash core is running on)
OpenWRT Arm
网路环境或拓扑 (network conditions/topology)
不相关
iptables,如果适用 (if applicable)
不相关
ISP 有没有进行 DNS 污染 (is your ISP performing DNS pollution?)
不相关
其他 (any other information that would be useful)
不相关
实现能够在一定间隔后自动切换故障服务器的功能。
在使用 proxy-providers 前,是通过 proxy-groups 的 fallback 实现的。
使用了 proxy-providers 后,是通过 provider 中的 health-check 并且搭配 proxy-groups 的 select 实现,发现不能达到预计效果。
我预期会发生?
本以为 provider 中的 health-check 已经会定时检测并且会忽略故障服务器,从而在 proxy-groups 中无需再使用 fallback 进行故障切换。因为在文档中有这么一句话:
Health check is available for both modes, and works exactly like
fallbackin Proxy Groups.
不知道是不是我理解有误?望指教。
实际上发生了什么?
实际上并未如愿进行故障切换,proxy-groups 中仍然选中了故障节点。
通过在 proxy-groups 中使用 fallback 是能解决的,但是功能上会不会与 health-check 产生冲突?还是说已经考虑到了这部分,实际上在 proxy-groups 中的 url-test 和 fallback 的检测均是基于 health-check 的结果,而不是再发起连接进行探测?
普通的组,比如
- name: "auto"
type: url-test
proxies:
- ss1
- ss2
- vmess1
# tolerance: 150
url: 'http://www.gstatic.com/generate_204'
interval: 300
包含着代理 proxies 和逻辑 url-test 以及检查 interval。provider 本身包含着代理 proxies 和检查 interval,所以想用逻辑 url-test 就必须
- name: "auto"
type: url-test
use:
- provider
而此时另外三个字段 proxies url 和 interval,你可以理解为他包装成了一个 provider
Most helpful comment
普通的组,比如
包含着代理
proxies和逻辑url-test以及检查interval。provider 本身包含着代理proxies和检查interval,所以想用逻辑url-test就必须而此时另外三个字段
proxiesurl和interval,你可以理解为他包装成了一个 provider