Clash 规则能否做到优先 Select,若失败自动按顺序使用某几个特定节点,如果还是失败进行 url-test。如果 Select 恢复,则回到 Select 节点 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hehehu
V2EX    互联网

Clash 规则能否做到优先 Select,若失败自动按顺序使用某几个特定节点,如果还是失败进行 url-test。如果 Select 恢复,则回到 Select 节点

  •  
  • nbsp; hehehu 2023-06-18 13:24:30 +08:00 5692 次点击
    这是一个创建于 917 天前的主题,其中的信息可能已经有所发展或是发生改变。

    假设我有个一组节点,其中 n1 n2 n3 为低倍率节点,我希望通常情况都优先使用低倍率节点。

    我想要配置如下优先级

    1. 优先 select (可选范围是全部节点,日常我从中选中低倍率的)
    2. 如果节点崩了使用 fallback (挨个尝试低倍率节点 n1 n2 n3 )
    3. 如果还是失败,则 url-test 剩下的节点
    4. (重要)如果 select 节点恢复了,则自动切回 select

    我按照我对文档的理解,大概做了如下配置,通过 proxy-group 的嵌套功能:

    proxy-groups: - name: PROXY type: fallback proxies: - Select - Fallback - UrlTest - name: Select type: select use: - ... - name: Fallback type: fallback use: - ... filter: "低倍率" - name: UrlTest type: url-test use: - ... 

    这里我有两个疑虑:

    1:这里我让最终的 PROXY 组进行嵌套,使用 fallback 类型,并自动尝试 Select -> Fallback -> UrlTest

    不知道这样的 fallback 类型是不是合理?

    2:这里是能实现我前面提到的 1-3 功能,但是我发现 Select 节点回归正常后,clash 并不会再重新按照 proxies 的优先级重新选择使用 Select ,而是一直保持之前 fallback 选中的节点

    有没有方式能实现恢复后重新优先使用 Select 的操作?


    有没有熟悉 Clash 规则的朋友帮忙解答下,万分感谢

    15 条回复    2025-03-16 18:01:31 +08:00
    Helsing
        1
    Helsing  
       2023-06-18 13:28:25 +08:00 via iPhone
    fallback 我记得是选中第一个可用的节点来用的,当前节点可用的话,是不会自动切换到下一个的,应该满足不了你的需求
    estk
        2
    estk  
       2023-06-18 13:31:18 +08:00 via iPhone
    最近 cf 不太行了,很多直接无法访问
    hehehu
        3
    hehehu  
    OP
       2023-06-18 13:48:31 +08:00
    @Helsing 是的,有空我看下 fallback 的代码怎么写的

    目前测试下来是节点异常 fallback 到一个可用节点后,前序节点恢复不会切回前序节点
    goodbest
        4
    goodbest  
       2023-06-18 14:52:07 +08:00
    可以的,我就是这个需求,但你不需要用到 fallback


    定义一个名为 myselect 的 select 类型,可选服务器 a,b,c

    然后直接在 url-test 里,按以下顺序排列即可(是的,myselect 也可作为被 test 的目标)
    myselect,a,b,c
    hehehu
        5
    hehehu  
    OP
       2023-06-18 15:16:43 +08:00
    @goodbest

    大佬你这个我感觉有个问题,如果 url-test 的结果是是其他节点 latency 远小于 myselect latency, 会选中其他节点吗

    我希望的是 myselect 如果是 available 就一直使用 myselect, 如果失败则用 url-test
    goodbest
        6
    goodbest  
       2023-06-18 15:31:44 +08:00
    你说的情况我还真没考虑过,因为我 myselect 首选也都是最低 latency 的结点


    可能需要看看 url-test 的具体实现策略,看看是不是无脑按最低延迟切换,还是有个切换的最小差值,还是只要不超时就不再切换
    goodbest
        7
    goodbest  
       2023-06-18 15:34:25 +08:00
    hehehu
        8
    hehehu  
    OP
       2023-06-18 16:15:24 +08:00
    @goodbest 嗯,我知道你说的 tolerance 配置,但是这里可能是会存在「第一次」 url test 的时候如果 myselect 不是最快,并且设置了相对较大的 tolerance 可能就会一直用非自选节点
    goodbest
        9
    goodbest  
       2023-06-18 16:26:45 +08:00
    所以还是要看看实现细节

    如果你把 tolerance 设置的大一点,比如 2 秒之类(一般服务器的延迟差距不会这么大)

    那么这样第一次启动时,
    - 是严格等全部 test 之后,选一个延时最低的
    - 还是先按顺序建立连接(这种情况也即首先连上第一顺序的 myselect ),然后后续再 test

    第二种情况最理想,因为有了比较大的 tolerance ,一旦连上之后,除非 myselect 离线,否则不会切换
    echooo0
        10
    echooo0  
       2023-06-18 19:17:45 +08:00
    @hehehu #3 我记得好像是会回到的,fallback 的原理是按照节点的数组顺序,选择第一个可用节点
    echooo0
        11
    echooo0  
       2023-06-18 19:21:37 +08:00
    @echooo0 #10 但是回到前序节点,是按照数组顺序排列的,可能不是你 select 的那个
    hehehu
        12
    hehehu  
    OP
       2023-06-19 10:06:37 +08:00
    @echooo0 从 github 了解到了一些实现细节

    fallback 是根据节点 alive 属性来判断选择的,不管是 gui 上的测速,还是 interval 的测速,会重置 alive 状态进而重新从前往后选择节点。

    按照这个实现,应该是在 select 节点恢复后,能够再自动选回 select 节点的。

    按照 Dreamacro 大佬说我测试结果有可能是 lazy 属性的干扰,虽然我没设置 lazy: true ,也不太清楚默认值是什么,我显示设置 lazy: false 再试一下。
    liyunlong5
        13
    liyunlong5  
       342 天前 via Android
    解答疑惑,Select -> Fallback -> UrlTest 思路是对的,clash/meta 支持套娃,针对 Select -> Fallback -> UrlTest 这三都同时设置 url-test ,并且 lazy: false 即可
    hehehu
        14
    hehehu  
    OP
       290 天前
    @liyunlong5 迟到的感谢!我试一下
    hanssx
        15
    hanssx  
       280 天前
    op 搞定了没,我和你差不多的需求,另外我想问下,fallback 这个可以设置延迟容忍吗,即延迟>1000ms ,跳到下一个节点,默认 fallback 要是 timeout 才行。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2196 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 16:08 PVG 00:08 LAX 08:08 JFK 11:08
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86