Open
Description
描述
方案一:使用路由动作替代原本的 selector
urltest
出站(存在问题)
受上述内容启发,Selector
与 URLTest
有改造为 action
的条件:将现有的 route
动作变更为支持指定多个出站,然后通过指定 mode
的方式来决定具体使用哪一个作为出站。其中 mode 支持手动选择 selector
,自动选择 urltest
。如果可能的话可以提供更丰富的模式用于实现类似负载均衡的效果,比如提供随机选择、轮询选择、权重选择等。
{
"action": "route",
"outbounds": [ // 数组长度为 1 时可以直接使用字符串
"proxy"
],
"default": "", // 默认第一个出站
"mode": "", // 默认是手动选择
// ... 特定模式的额外字段
// ... 其余 route 字段
}
此方案存在一些不足:
- 路由动作:
selector
目前只允许指定出站节点而无法使用其它的最终动作。 - 嵌套使用:使用
action
替代出站后会导致selector
无法嵌套。
方案二:提供负载均衡出站支持
提供一个新的类似于 selector
的负载均衡出站,并提供不同的负载均衡策略,比如随机选择、轮询选择、权重选择等。
{
"type": "balancer",
"outbounds": [
"node-a",
"node-b",
"node-c"
],
"mode": "",
"default": "node-a",
"interrupt_exist_connections": false,
}
方案三:支持 selector
的选项作为路由条件
把 selector
作为单独的字段,其选项不再限定为节点。
{
"selectors": [
{
"name": "广告过滤"
"options": ["开", "关"],
"default": "关"
}
],
"route": {
"rules": [
{
"selector": "广告过滤",
"selector-value": "开",
// ...
}
]
}
}
目前通过
clash_mode
可以实现类似的效果,但clash_mode
只有一个因此当用户存在多个需要手动选择的条件时会变得乏力。
支持我们
- 我已经 赞助
完整性要求
- 我保证阅读了文档,了解所有我编写的配置文件项的含义,而不是大量堆砌看似有用的选项或默认值。
- 我保证提供了可以在本地重现该问题的服务器、客户端配置文件与流程,而不是一个脱敏的复杂客户端配置文件。
- 我保证提供了可用于重现我报告的错误的最简配置,而不是依赖远程服务器、TUN、图形界面客户端或者其他闭源软件。
- 我保证提供了完整的配置文件与日志,而不是出于对自身智力的自信而仅提供了部分认为有用的部分。
Metadata
Assignees
Labels
No labels
Activity