在clash跑路后,singbox似乎成为了一个好的全平台代理方案,但ios端的singbox不支持导入订阅,在outbound中也不支持使用正则。我希望能有一个无需后端、的轻量些的,像CFW一样的parser。

太长不看版

把你的订阅链接进行一个base64码的编,像这样

之后把这个链接放在你singbox->profiles->new profile->remote里:https://sb.y2f.xyz/parse?config=编码后的&template=aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2V6NHkyZi9zaW5nYm94UGFyc2VyL21hc3Rlci90ZW1wbGF0ZS5qc29u

(这个链接使用的是这个配置),尽量把interval设长一点,我cf worker的流量不多QWQ。而且sb是singbox啦,不是什么藏话啦

部署

首先,整个cloudflare账户。workers.dev被蔷了,所以最好弄个自己的域名。打开console并执行以下代码

git clone https://github.com/ez4y2f/singboxParser.git
npm i -g wrangler
wrangler login #在这里登录你的cloudflare
wrangler deploy

随后,去cf主页->你的域名->dns,新建一个随便什么记录,记录名是你打算给parser的子域名,启用cloudflare代理。然后去workers路由,把[子域名].[你的域名]/*路由到你的worker上。

使用

访问https://[parser链接]/来获取使用说明和介绍

将以下链接添加到singbox remote的配置中: https://[parser链接]/parse?config=[base64编码后的订阅链接]&template=[base64编码后的配置模板链接]

特性

在outbounds段中的每一个outbound下的outbounds中(这么说话感觉好绕),用"{sub}"来代表所有订阅中的节点,就像酱紫

"outbounds": [
    {
        "type": "urltest",
        "tag": "America",
        "outbounds": [
            "{sub}"
        ]
    }
]

在每一个outbound中,用filter来过滤outbounds中的节点。filter是一个list,其中的每个元素都包含action, regex两个属性。action可选项有include和exclude,分别对应包含和排除,取符合filter中几个条件的并集,regex是一个list,第0项是用于匹配的正则表达式。示例:

"outbounds": [
    {
        "type": "urltest",
        "tag": "America",
        "outbounds": [
            "{sub}"
        ]
        "filter": [
            {
                "action": "exclude",
                "regex": [
                    "(?=proxy|direct|海外专用)"
                ]
            },
            {
                "action": "include",
                "regex": [
                    "(?=专线|高速)"
                ]
            }
    }
]

注意

本项目仅为辅助开发者开发使用,禁止任何其他用途,作者不对使用本项目所造成的任何后果负责。


D3bug the w0r1d