写在前面
其实subconverter我已经用了一年多了,最近考完单招考试(由于今年压力很大所以其实爹妈还是强烈要求我准备高考),同时对自己的订阅做了优化,所以就趁这个机会记录下我的使用心得。
注意:由于平时并不使用windows系统的电脑所以这里只介绍subconverter在Linux下的部署方法
前期准备
硬件部分
- 电脑一台(啥都行,Linux、Mac、Windows都可以),手机也行。
软件部分
subconverter搭建
由于本人不使用subweb,所以这里只介绍无可视化界面的subconverter如何搭建,如果你希望使用subweb,可以移步其项目地址参照官方文档操作。
下载subconverter压缩包
首先使用ssh连接Linux服务器或在本地打开终端
从subconverter项目的Releases找到自己机器适用的压缩包(这里以subconverter_linux64.tar.gz
为例)
如果你使用的是Linux64位的操作系统那么可以完全照抄以下操作
修改配置文件
在项目文件夹下会有一个叫pref.ini
文件,如果你有特殊需求的话,请按文件中的注释自行修改,我是直接使用默认的设置的。
后台运行及管理
这里使用pm2
来管理和后台运行
到此,部署就全部完成了,现在你可以通过访问http://主机名:25500
来使用。你也可以搭配nginx反向代理上证书使用。
subconverter使用
如果你没有别的特殊要求,到这里就可以直接使用了
这里以本地搭建并使用为例,IP/域名请自行根据实际情况进行替换
基础使用
基础使用的话我们按照官方的最基本的来就行了,具体支持哪些类型的转换可以参考官方文档的支持列表
这里我给出基础使用方式的链接格式,按实际情况照抄就行http://主机名:25500/sub?target=输出格式&url=机场订阅链接或节点链接
输出格式的话请参照官方文档支持列表中的参数填入,例如要使用clash,那么target=
后面的参数就要填入clash
;而如果你要使用的是ios上的Surge 4,那么就填入surge&ver=4
同时要注意,机场订阅链接需经过URLEncode转换才能使用,例如订阅链接为https://abc.xyz/efg=1
那么就要通过URLEncode转换为https%3A%2F%2Fabc.xyz%2Fefg%3D1
才能使用
所以,当我们使用的代理软件是clash
,订阅链接为https://abc.xyz/efg=1
,subconverter部署在本机(127.0.0.1),同时不需要其他自定义设置的时候订阅链接就为http://127.0.0.1:25500/sub?target=clash&url=https%3A%2F%2Fabc.xyz%2Fefg%3D1
如果有多个机场的节点要整合在一起怎么办?很简单,用|
将两个机场的链接隔开即可,例如要新增一个机场的订阅节点为https://xianyu.one/233
那么链接就变成了http://127.0.0.1:25500/sub?target=clash&url=https%3A%2F%2Fabc.xyz%2Fefg%3D1|https%3A%2F%2Fxianyu.one%2F233
进阶使用
学会了简单的使用,对于爱折腾,同时对节点有要求的朋友来说还是不够的,比如有些机场提供高倍率节点而我们希望把这些节点排除不用怎么办,在本节中会讲到。
首先我们要理解以下用于订阅转换的这个链接的结构,还是以上面提到的http://127.0.0.1:25500/sub?target=clash&url=https%3A%2F%2Fabc.xyz%2Fefg%3D1
为例,我们将其拆分为以下几个部分
http://127.0.0.1:25500/sub?
target=clash
&
url=https%3A%2F%2Fabc.xyz%2Fefg%3D1
现在是不是一目了然?
http://127.0.0.1:25500/sub?
是我们要访问的地址,而后面如target=clash
(即调用值为clash
的参数target
)、url=https%3A%2F%2Fabc.xyz%2Fefg%3D1
(即调用值为https%3A%2F%2Fabc.xyz%2Fefg%3D1
的参数url
),而&
为各参数间使用的连接符号
理解了订阅转换链接的结构,解决上面提到的问题的思路就很明朗了。我们只需要在后面加入相应参数并使用&
连接即可。
参数exclude – 节点排除
当我们想排除某一些节点时,就需要在转换链接上加入参数exclude
,同样的,我们筛选使用的关键词也需要经过URLEncode转换
例如我们不想使用节点名称中带有高倍率
的节点,那么我们只需要将高倍率
通过URLEncode转化为%E9%AB%98%E5%80%8D%E7%8E%87
再将此字符串填在参数exclude
后即可
放入转换链接就变成了http://127.0.0.1:25500/sub?target=clash&exclude=%E9%AB%98%E5%80%8D%E7%8E%87&url=https%3A%2F%2Fabc.xyz%2Fefg%3D1
为了方便查看和理解,我再将此链接拆开,变成以下形式方便大家查看
http://127.0.0.1:25500/sub?
target=clash
&
exclude=%E9%AB%98%E5%80%8D%E7%8E%87
&
url=https%3A%2F%2Fabc.xyz%2Fefg%3D1
那么如果我们需要筛选多个关键词怎么办呢?其实也很简单,在关键词之间加上|
隔开即可,比如要筛选掉高倍率
、新加坡
的节点,那么就把高倍率
、新加坡
放入URLEncode转换为%E9%AB%98%E5%80%8D%E7%8E%87
和%E6%96%B0%E5%8A%A0%E5%9D%A1
之后,再用|
隔开放到exclude
参数后面就行了
其他参数可以依照官方文档中的调用说明自行添加即可
subconverter程序自定义
有些时候,我们可能想换换emoji(有够无聊)或者自定义config文件进行分流或节点分组时我们就需要对subconverter进行一些修改了
修改emoji
存放国旗emoji的文件在subconverter/snippets/emoji.txt
,如果你完全参照我的部署过程,那么绝对路径为/home/sub/subconverter/snippets/emoji.txt
,如果有地方需要修改那么可以直接打开这个文件进行修改。
其他比如节点分组之类的emoji会在下一节讲的config文件中出现,可以通过改config文件中的emoji修改节点分组的emoji
自定义config
如果我们对默认的节点组不满意,或是对分流效果不满意,那么我们可以通过调用其他config文件优化我们得到的配置文件,在subconverter
根目录下的config
文件夹里有预置的一些config文件,通过在链接中添加config
参数,并指定需要使用的config文件名即可,例如使用名为ACL4SSR_Online_NoReject.ini
的config文件,即将config=ACL4SSR_Online_NoReject.ini
添加到转换链接中
创建并使用属于自己的config文件
下面我们先来看一个配置文件的内容
很明显,它分为两个大的版块:surge_ruleset=
(规则集)、custom_proxy_group=
(节点组)
surge_ruleset=
这一部分指=
后指定的是我们所要分类的规则集,以surge_ruleset=🎥 NETFLIX,rules/ConnersHua/Surge/Ruleset/Media/Netflix.list
为例
🎥 NETFLIX
为规则集的名称
rules/ConnersHua/Surge/Ruleset/Media/Netflix.list
为规则集所在的文件,本地的规则集存在于subconverter
根目录下的rules
文件夹中,如果你有自己的规则集文件,那么可以放在此文件夹下并以rules/xxx.list
的形式填入config文件中。除了使用本地的规则集外,还能使用互联网上的在线规则集
这两个就是规则及相关的项目,需要的朋友可以自行查阅并引用
custom_proxy_group=
这个是用来分节点组使用的,比如我想把节点中的台湾地区节点单独分成一组使用,那么就可以这样写
同样为方便,我将其拆开
custom_proxy_group=
🇹🇼 台湾地区
url-test
(台|新)
http://www.gstatic.com/generate_204
500
由于`和markdown的代码块语法冲突所以打不出来,请自行脑补
🇹🇼 台湾地区
是节点组名
url-test
是节点选择的方式即选择延迟最低的节点,其他还有例如fallback
(故障切换)、select
(手动选择)等方式
(台|新)
当中用|
隔开的即为要筛选的关键词
fallback
、url-test
要搭配
使用(后面这段用于检测节点延迟)
我的解决方案
下面分享我使用的节点方案,如果不想折腾可以使用我提供的文件内容,新建一个ini文件放入config
文件夹中调用
A方案
B方案
C方案
参考文章