自建clash订阅转换subconverter后端并配置规则

起因

一开始shellclash用的好好的
但是,折腾研究惯了,shellclash中试了一遍没找到适合自己的规则
所以就想着自己摸索下,所以才有了这个备忘录

搭建后端

因为不想用公共的服务器从而暴露自己的订阅链接所以自建
反正自用,所以不需要花里胡哨的前端,只要搭建后端就可以满足需求
作者已经有现成的容器 tindy2013/subconverter

docker run -d --restart=always -p 25500:25500 tindy2013/subconverter:latest

可以直接运行,unraid小天使已经有模板,选择运行即可

curl http://localhost:25500/version

此命令可以测试后端是否正常运行,输入后如看见 subconverter vx.x.x backend 即正常运行

分流规则

先感谢下ACL4SSR jh163888 DivineEngine LM-Firefly lhie1 blackmatrix7
规则都来自这些无私奉献的大佬
可以在大佬们项目中添加对应的list规则,生成一个自己专属的ini配置文件
需要注意的是规则标志位处优先级是从上至下
举个栗子,假设s1oz.github.io此域名存在于全球直连节点选择两个规则中

;设置规则标志位
ruleset=🎯 全球直连,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/LocalAreaNetwork.list
ruleset=🚀 节点选择,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/ProxyGFWlist.list
;设置规则标志位

这样默认是全球直连规则优先,所以s1oz.github.io走的直连

;设置规则标志位
ruleset=🚀 节点选择,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/ProxyGFWlist.list
ruleset=🎯 全球直连,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/LocalAreaNetwork.list
;设置规则标志位

这样默认是节点选择规则优先,所以s1oz.github.io走的代理

使用自定义ini转换规则

https://raw.githubusercontent.com/s1oz/unraid/master/s1oz.ini

如我的规则 ↑ 就加了很多去广告跟分流,应该大致可能可以替代adguard home的去广告了

推荐直接使用providers(无需后端转换)

无需后端转换,默认使用meta内核,只需补齐yaml文件中的订阅地址导入即可
其他软件要使用此yaml报错请参照文件内备注自行删减
shellclash可用6-2订阅即可实现快速定时更新规则跟订阅,可以本地加黑白名单666
ps:可以丢本地的web服务器或直接丢yacd目录,然后订阅此地址
如 http://192.168.1.1:9000/ui/s1oz.yaml

https://raw.githubusercontent.com/s1oz/unraid/master/s1oz.yaml

转换规则

http://后端地址:25500/sub?target=clash&insert=true&new_name=true&scv=true&url=机场订阅地址&config=自己专属的ini配置文件

此为模板,按自己条件套用,浏览器访问可直接查看,shellclash可用6-2直接订阅此链接

http://后端地址:25500/sub?target=clash&insert=true&new_name=true&scv=true&url=机场订阅地址A|机场订阅地址B&config=自己专属的ini配置文件

如有多个订阅地址,可以合并并转换成一个,如普通视频节点订阅+游戏节点订阅
SS订阅链接或者SSR订阅链接都可以,只需要再多个链接中加 |

已停止支持chacha20加密,请更换更安全的节点加密协议!

需要注意的是如不支持协议,需自行替换第三方魔改内核

target=clash 指想要生成的配置类型,此为转换为clash的参数
insert=true 用于设置是否将配置文件中的 insert_url 插入,默认为 true
new_name=true 如果设置为 true,则将启用 Clash 的新组名称 (proxies, proxy-groups, rules)
scv=true 用于关闭 TLS 节点的证书检查,默认为 false
config=自己专属的ini配置文件 指 外部配置 的地址 (包含分组和规则部分)

更多参数调用参阅调用说明 (进阶)

踩坑

机场订阅,差点被搞死了
默认订阅链接是

https://xxxx.com/link/3E1234123wd7?clash=1&version=2

上方的&version=2属于新版配置在shellclash导入订阅时提示

配置文件获取失败!
请尝试使用【在线生成配置文件】功能!

一直没注意,后来删除&version=2后代表适配旧版配置也不是绝对,可能重新再次运行下就好了,然后再进行转换就正常订阅了。