求个订阅转换的解决方式

开发调优 Clash #订阅 机场

背景

机场订阅的默认分流规则通常都并不试用,比如某些特定网站我走大陆线路,部分网站我走新加坡线路,一部分我走美国线路。因此我会有需要更改订阅规则的需求。
本人使用的设备是 windows,mac 和 安卓。

问题

我目前的解决方式有两种

  1. 订阅 url 后,手动修改配置文件,添加自定义的规则。但问题就是刷新订阅源就会需要重新手动修改配置文件,不刷新订阅节点又会逐渐失效。
  2. 使用 clash for windows 的 parsers 功能,可以预定义配置,每次刷新都会走 parsers 的规则添加自定义的规则。这个使用方式非常棒,非常优雅,但遗憾的是 clash for windows 这个软件被公司的杀毒软件封杀了无法使用,而其他的 clash 软件又不支持 parsers 功能。
  3. 使用 surge mac,这个软件能提供类似 parsers 的功能,且更易于配置。但他的问题是只支持 mac 设备,我的其他设备又需要一套独立的配置,不够方便。
  4. 订阅转换。但订阅转换和第1点类似,不发自动跟随订阅源刷新节点。

请问有什么方式能解决我的需求痛点呢。

6 个赞

我现在的办法是,自己写了个订阅规则转换平台
简单实现一些增删改查
配置好机场url账号密码
这样获取的订阅就是自己想要的了

试试这个:

1 个赞

恕我直言,是你不会用clash。

clash 支持从HTTP加载订阅,也支持从HTTP加载规则文件。

你需要:手写一份配置文件,添加自建节点/机场订阅,以及自定义规则。

如何实现?详细阅读:
https://clash.wiki

4 个赞

proxy-providers

照抄 快捷配置 - 虚空终端 Docs

3 个赞

自己写个配置文件和分流规则就好了

1 个赞

哈哈哈哈,我有点标题党了,谢谢你的解决方案,这个方式非常棒

很 nice

proxy-providers 这个可以提供代理节点 ,然后自己写规则,然后在proxy-groups的proxies指定代理节点就行啊。

1 个赞

但是我用的v2rayN,所有分流规则和订阅都是分开的,随你什么节点,过来就得按照我的规则,不过确实没有分流,不过感觉后续可能会有吧

node.js做订阅的统一处理就行了
除了有点门槛,其他全是好处
一次配置,所有端都不用动
灵活性也高

/**
 * 转换配置方法的入口 机场content -> 我的ClashConfig
 * 获取机场proxy配置,填充入full模板
 * steps: 1.清洗full中非GroupNames策略(proxy)并填充机场代理
 * 2.处理full group中旧的代理
 * @param content 机场订阅文本
 * @param subParam 客户端参数
 * */
export function myTrans(content: string, subParam: ClashSubParam): string {
    let airConfig = YAML.parse(content) as ClashConfig;
    // 自己修改规则和配置 
    return YAML.stringify(airConfig);
}

你这需求太简单了,看文档就能自己随便撸了。完全是内核支持直接配置的需求。
https://wiki.metacubex.one/config/

我这里有一个还没写完的文档,你也可以简单参考一下

还没写分流规则组

1 个赞

clash for windows,clash verge 都支持预规则的吧

恕我直言,你不会用sb。

恕我直言,你这样发问,很多人知道怎么解决,也不会教你

你不来我就打算贴个你写的帖子了

来了你也可以贴哈哈哈:bili_066:

留个足迹,有时间我也学习一下