clashN icon indicating copy to clipboard operation
clashN copied to clipboard

有个想法,希望可以追加配置路由,在更新订阅的情况下

Open WoChen5770 opened this issue 2 years ago • 4 comments

现在可以编辑配置文件追加路由,但是更新一下订阅就被覆盖了

WoChen5770 avatar Aug 10 '22 01:08 WoChen5770

查看clash的wiki,没有相关接口 clash的节点和路由时耦合的,所以无法在订阅后追加(插入)一个通用的路由; 先不谈是否能实现,请给出你觉得合适的方案

2dust avatar Aug 10 '22 12:08 2dust

在rules配置下 把自定义的配置放在最前,类似这样: image cfw好像是提供个配置文件让编辑,在setting-profies-parsers image

WoChen5770 avatar Aug 11 '22 06:08 WoChen5770

这个方案可行 但是需要给每个订阅配置独立设置,比较繁琐

2dust avatar Aug 11 '22 12:08 2dust

这个方案可行 但是需要给每个订阅配置独立设置,比较繁琐

要不就当这个自定义路由是固定的通用的,在每个订阅更新后都给它加进去

WoChen5770 avatar Aug 12 '22 01:08 WoChen5770

支持,这样可以本地自定义自己的规则,一直保留。

easythd avatar Aug 17 '22 10:08 easythd

clashN-test.zip

使用Mixin全局功能实现了简单的附加功能

 配置文件内容不会被修改,混合行为只会发生在内存中

 注意下面缩进,请用支持yaml显示的编辑器打开

 使用clash配置文件关键字则覆盖原配置

 append-rules    数组合并至原配置rules数组后
 prepend-rules   数组合并至原配置rules数组前
 append-proxies      数组合并至原配置proxies数组后
 prepend-proxies     数组合并至原配置proxies数组前
 append-proxy-groups     数组合并至原配置proxy-groups数组后
 prepend-proxy-groups    数组合并至原配置proxy-groups数组前

2dust avatar Aug 25 '22 07:08 2dust

clashN-test.zip

使用Mixin全局功能实现了简单的附加功能

 配置文件内容不会被修改,混合行为只会发生在内存中

 注意下面缩进,请用支持yaml显示的编辑器打开

 使用clash配置文件关键字则覆盖原配置

 append-rules    数组合并至原配置rules数组后
 prepend-rules   数组合并至原配置rules数组前
 append-proxies      数组合并至原配置proxies数组后
 prepend-proxies     数组合并至原配置proxies数组前
 append-proxy-groups     数组合并至原配置proxy-groups数组后
 prepend-proxy-groups    数组合并至原配置proxy-groups数组前

有几个问题: 如果我的机场订阅来内容大概如下: `proxies:

  • {name: 🇹🇼 台湾2a,......} proxy-groups:
  • name: 🔰 节点选择 type: select proxies:
    • ♻️ 自动选择
    • 🎯 全球直连
    • 🇹🇼 台湾2a
  • name: ♻️ 自动选择 type: url-test url: http://www.gstatic.com/generate_204 interval: 300 proxies:
    • 🇹🇼 台湾2a
  • name: 🎯 全球直连 type: select proxies:
    • DIRECT
  • name: 🛑 全球拦截 type: select proxies:
    • REJECT
    • DIRECT
  • name: 🐟 漏网之鱼 type: select proxies:
    • 🔰 节点选择
    • 🎯 全球直连
    • ♻️ 自动选择
    • 🇹🇼 台湾2a rules:
  • DOMAIN-SUFFIX,local,🎯 全球直连
  • DOMAIN-SUFFIX,4009997658.com,🛑 全球拦截
  • DOMAIN-KEYWORD,google,🔰 节点选择
  • GEOIP,CN,🎯 全球直连
  • MATCH,🐟 漏网之鱼

`

这样漏网之鱼全要走代理,而我希望调整的是: 1、用gfw列表配置一个rule-providers, 2、后在rule段中增加对gfw的代理规则, 3、替换现有漏网之鱼规则改走全球直连, 4、可以自定义增加几个手工规则。 如根据上面的订阅配置,希望改下面这样: `rule-providers: greatfire: type: http behavior: domain url: "https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/greatfire.txt" path: ./greatfire.yaml interval: 86400 rules:

  • DOMAIN-SUFFIX,local,🎯 全球直连
  • DOMAIN-SUFFIX,4009997658.com,🛑 全球拦截
  • DOMAIN-KEYWORD,google,🔰 节点选择
  • GEOIP,CN,🎯 全球直连
  • RULE-SET,greatfire,🔰 节点选择
  • DOMAIN-SUFFIX,ghproxy.com,🔰 节点选择
  • MATCH,🎯 全球直连 `

如果按上面这样的需求,第1个需求应该要加个新命令。第4个需求可以直接替换,但第2个和第4个需求因有顺序要求,要放到MATCH之前才能生效,不知道怎么放? 替换后的配置文件只在内存里,能查看吗?不知道替换效果,只能实际测试,但有些规则不容易一下测试出来,还是看得见规则才放心。 @2dust

easythd avatar Aug 26 '22 07:08 easythd

@easythd 替换后的配置文件就是文件夹中config.yaml

目前只实现这些,你说的规则替换还未实现

append-rules    数组合并至原配置rules数组后
prepend-rules   数组合并至原配置rules数组前
append-proxies      数组合并至原配置proxies数组后
prepend-proxies     数组合并至原配置proxies数组前
append-proxy-groups     数组合并至原配置proxy-groups数组后
prepend-proxy-groups    数组合并至原配置proxy-groups数组前

2dust avatar Aug 26 '22 13:08 2dust

使用了append-rules指令 ` append-rules:

  • MATCH,🎯 全球直连 `

结果如下,没有替换呢: `

  • "MATCH,\U0001F41F 漏网之鱼"
  • "MATCH,\U0001F3AF 全球直连" `

easythd avatar Aug 27 '22 04:08 easythd

使用了append-rules指令 ` append-rules:

  • MATCH,🎯 全球直连 `

结果如下,没有替换呢: `

  • "MATCH,\U0001F41F 漏网之鱼"
  • "MATCH,\U0001F3AF 全球直连" `

append-rules 数组合并至原配置rules数组后 目前还未实现替换,只有前后追加

2dust avatar Aug 27 '22 12:08 2dust

clashN-test4.zip 实现 removed-rules ,可以把不需要的removed后再append

 removed-rules    循环匹配rules数组每行,符合则移除当前行 (此规则请放最前面)

 append-rules    数组合并至原配置rules数组后
 prepend-rules   数组合并至原配置rules数组前
 append-proxies      数组合并至原配置proxies数组后
 prepend-proxies     数组合并至原配置proxies数组前
 append-proxy-groups     数组合并至原配置proxy-groups数组后
 prepend-proxy-groups    数组合并至原配置proxy-groups数组前
 append-rule-providers     数组合并至原配置rule-providers数组后
 prepend-rule-providers    数组合并至原配置rule-providers数组前

2dust avatar Aug 30 '22 02:08 2dust

更新后,使用了几天暂时没有问题,先关闭issues

WoChen5770 avatar Sep 06 '22 01:09 WoChen5770

错误提示:The given key 'rule-providers' was not present in the dictionary.

猜想,我原来的配置文件没有rule-providers,所以不能在前也不能在后追加?

lisansas avatar Sep 11 '22 02:09 lisansas

错误提示:The given key 'rule-providers' was not present in the dictionary.

猜想,我原来的配置文件没有rule-providers,所以不能在前也不能在后追加? https://github.com/2dust/clashN/releases/tag/1.22

2dust avatar Sep 11 '22 12:09 2dust