Open Icemans007 opened 1 month ago
同求。其实不用排序,简单点,就按配置文件中的顺序显示就行,这个目前还没实现。
mihomo内核排序是按配置文件中的顺序排的,sing-box内核排序有问题,看了下代码也没经过什么特殊处理,sing-box GET
/group
API返回的策略组也是配置中的顺序,但渲染出来的顺序就有问题。
找到原因了,策略组渲染的顺序是按GLOBAL
策略组中的顺序进行渲染的。
https://github.com/MetaCubeX/metacubexd/blob/main/src/signals/proxies.ts#L125-L131
mihomo内核能自动按配置中的策略组顺序生成GLOBAL
策略组,通过GET
/group
api可以看到。
而sing-box内核不生成GLOBAL
策略组,GLOBAL
策略组是在xd面板中进行生成排序的。
一个解决办法是在sing-box配置文件中创建一个GLOBAL
策略组,并在outbounds中指定想显示的顺序。
找到原因了,策略组渲染的顺序是按
GLOBAL
策略组中的顺序进行渲染的。 https://github.com/MetaCubeX/metacubexd/blob/main/src/signals/proxies.ts#L125-L131mihomo内核能自动按配置中的策略组顺序生成
GLOBAL
策略组,通过GET
/group
api可以看到。 而sing-box内核不生成GLOBAL
策略组,GLOBAL
策略组是在xd面板中进行生成排序的。一个解决办法是在sing-box配置文件中创建一个
GLOBAL
策略组,并在outbounds中指定想显示的顺序。
原来如此,感谢🙏
找到原因了,策略组渲染的顺序是按
GLOBAL
策略组中的顺序进行渲染的。 https://github.com/MetaCubeX/metacubexd/blob/main/src/signals/proxies.ts#L125-L131mihomo内核能自动按配置中的策略组顺序生成
GLOBAL
策略组,通过GET
/group
api可以看到。 而sing-box内核不生成GLOBAL
策略组,GLOBAL
策略组是在xd面板中进行生成排序的。一个解决办法是在sing-box配置文件中创建一个
GLOBAL
策略组,并在outbounds中指定想显示的顺序。
首先谢谢您的解答!但我测试了下,还是有些疑问
sing-box配置文件中我创建GLOBAL
策略组,将一部分策略组添加到GLOBAL
策略组outbounds中
1、奇怪的是添加进去的策略组在所有代理的顺序的排最后!!反而没有添加进入的策略排在前面,难道我还要将所有十多个策略组添加到GLOBAL
策略组么?
2、添加进GLOBAL
outbounds中的内部策略组,在其他综合策略组中(策略组包含内部策略组),这些内部策略组并没有按GLOBAL
的配置顺序排前面,还是按延迟顺序排(这个问题才是我提issue核心问题),俺不懂前端代码,大佬有空帮忙解答下,感谢
1、奇怪的是添加进去的策略组在所有代理的顺序的排最后!!反而没有添加进入的策略排在前面,难道我还要将所有十多个策略组添加到
GLOBAL
策略组么?
是的,你需要把所有的策略组写入GLOBAL
中,未写入的会排在前面。
2、添加进
GLOBAL
outbounds中的内部策略组,在其他综合策略组中(策略组包含内部策略组),这些内部策略组并没有按GLOBAL
的配置顺序排前面,还是按延迟顺序排(这个问题才是我提issue核心问题),俺不懂前端代码,大佬有空帮忙解答下,感谢
策略组内部的排序问题,检查一下xd面板是否勾选的按节点延迟排序。按原配置文件排序是没这个问题的。
我后面看了下相关文档,这个是GLOBAL的设计理念,它必须包含所有线路。 为什么呢?因为如果在面板配置中的模式选中globa模式,意思就是全部流量走global,那如果GLOBAL策略组中没有包含某些线路,就会造成那些线路就不会走全局,这个所谓的“全局”就不成立了。 至于单个策略组中的排序在面板中可以设置。
建议将 selecter urlTest ... 这些节点组按原配置文件排序排前头,其他机场节点按其他设定排序,就是节点组固定不参与排序
这样的原因是,其实大多数我们默认出战都是 selecter 和 urlTest 形式,按照目前情况,有时候改动其他节点后,改回时候却需要在一大堆节点中去找出组合节点比较麻烦
办法:添加个节点组固定(不参与排序)的按钮让用户自己设置,或者干脆将现有的所有排序中让节点组排前面 内核:sing-box