使用sub-store合并多个机场的订阅
本文最后更新于:10 小时前
1 | |
引言
Google AI Studio是非常好的AI工具,不过它的网络检测也很严格;之前我用的机场一直没问题 ;
不过最近可能用户太多;导致被它识别到不支持的地区;经查询,它的地区检测域名是alkalimakersuite-pa.clients6.google.com;
在我单独给它设置规则后发现所有的节点都无法访问:
1 | |
但我用的别的按量计费的机场发现可以访问Google AI Studio;每次使用切来切去非常不便;而且我还用了TUN模式,很多应用都会断网
于是研究几天找到了适合的节点,规则,合并方法
解决方案
我之前用的是Clash for Windows,它不具备订阅合并功能;现在我测试使用Mihomo内核的Clash Verge有人说可行
官方的issue:[Feature] 能否合并订阅 #1092里面说了可以自己写配置实现;
但我实在不懂Clash的内核;网上也没有一个完整的教程指导如何合并订阅;
懒人配置是可行的
操作方法如下:
- 在
订阅中新建一个Local类型的本地配置
- 右键新增的配置点击
编辑文件
把懒人配置的所有内容粘贴进去,需要填写自己的订阅地址
1
2
3
4
5
6
7
8
9
10
11>##我的示例如下:
>proxy-providers:
p1:
url: "https://xxxx.com?clash=3&extend=1" ##主要填这个
type: http
interval: 86400
path: ./proxy_provider/p1.yml
health-check: {enable: true,url: "https://www.gstatic.com/generate_204",interval: 300}
override:
additional-prefix: "[p1]"
>### 其它配置订阅会自动下载在
Clash Verge目录,默认是%APPDATA%\io.github.clash-verge-rev.clash-verge-rev我加了一个
path配置,这样对应订阅yml文件就会在%APPDATA%\io.github.clash-verge-rev.clash-verge-rev\proxy_provider保存成功后会拉取一次订阅;假如本地要更新;就要把本地的文件(p1.yml)删除重新拉取
多个订阅的合并里面用的节点名称正则匹配(
filter);把同一个地区的放到一个proxy-groups中;要修改订阅,简单的方法就是右键订阅配置,使用
编辑规则编辑节点编辑代理组调整
本文主要介绍使用Sub-Store合并订阅的方法
Sub-Store只支持节点合并,不过它的文件管理→Mihomo配置支持使用js操作组合订阅;进而生成我需要的配置
基于Sub-Store还让我的手机也能访问组合订阅;可以说好处多多
之前我手机用的Clash for Android,用起来还不错;只是没有方便修改节点或者配置的地方;有了Sub-Store后也能在Sub-Store后台修改了;我现在用的安卓客户端是FIClash
处理脚本我使用的是convert.js
操作步骤
- 参照教程安装
Sub-Store:订阅转换+聚合+排序的高级管理工具Sub-Store搭建和设置教程
我的sub-store部署在内网,同时使用了Tinyauth保护,方便外网编辑,详见:自托管部署 Pocket ID 与 Tinyauth 完全指南
- 添加
Mihomo配置
在添加多个单条订阅并把他们放到一个组合订阅中后,假如你使用Clash导入订阅;那你本地订阅只有一个Global的所有订阅组
之前机场里面的规则,订阅组都不见了;此时需要使用Mihomo配置功能
- 打开
Sub-Store→文件管理→添加→Mihomo配置→添加一个 脚本操作→本地内容


里面的内容可以用convert.js
这个覆写规则会添加地区的节点分组和一些外部的规则组;
由于我还有一些Clash for Windows使用的规则,节点以及节点组;因此我改写了它的脚本;
添加了实现Clash for Windows中的Parsers的prepend-rules append-proxies append-proxy-groups功能
这里先给出我的本地内容
我实现了appendProxies appendProxyGroups prependRules方法对应 Parsers中的功能
这里面用的json对象;和Clash for Windows中的yml格式不同;
因此你可以用在线yaml转json的工具转化:YAML to JSON Converte
js代码很容易理解,实际就是用js修改生成的对象;有了AI后想要什么逻辑都可以让它帮你生成
我添加了AIStudio代理组及对应规则;同时会把所有的vmess和hysteria2类型的节点添加到这个组里面,方便访问
- 保存文件
在确认好覆写js代码后,可以把代码保存到sub-store路径的data目录下;然后把脚本操作改为远程链接路径填/opt/app/data/xxx.js

补充说明
- 防止环回设置
因为我用了tun模式 ,且代理了家里的网络;因此使用clash时不能代理局域网连接防止环回
需要在设置→系统设置→虚拟网卡模式设置→排除自定义网段中添加本地网段的排除规则192.168.50.0/24(请根据你的局域网网段自行填写)

防止回环统一方法
第一种方法要每个客户端分别配置,其实可以在
proxy group上做文章
在代理组中添加url-test类型且配置有DIRECT方式的代理组1
2
3
4type: url-test
proxies:
- Home
- DIRECT然后再在路由器上的指定端口关闭
NAT环回
这样,在内网时就会默认选择
DIRECT而在外网时就会变成家里的代理不用
openwrt的,也可以用nginx的特性根据ip阻断不同的url-test请求以达到自动切换的目的
