本文仅提供部份配置文件的参考指导,请勿用其来实施违反法律法规的行为,本人也不会在任何渠道提供网络相关的支持

基本介绍

自从一款以C开头的软件(下简称C软件) 提供了虚拟网卡上网的功能后,它就变成了数十万网民必备的网络工具。(这么说应该懂的都能懂了吧)
大多数人只会用由其衍生的众多GUI,选择直接导入网上购买的配置文件,但是却鲜少有人知道如何手动自定义C软件 ,让其按照这里想要的方法运行。
下面,我就来介绍一下自定义该软件的一个重要步骤——配置proxy-providers。

proxy-providers可以看作是不同配置文件之间的桥梁,它可以引入甚至自动定时更新网上购买的配置文件中的服务器,但却又不引入其他配置,比如DNS之类的,给了其他部分我们自定义的机会。
并且最重要的是,它是C软件内核上就原生支持的一个功能,不用给每一个GUI都写一个单独的配置文件来支持各种独占的特性,可以说是一劳永逸了。
然而,这个功能却鲜少有GUI能够自动生成,基本上需要我们从头完全手动编写,而目前网上的教程也不是很详细,因此就来分享下我配置该功能时的一些经验。
在配置一下项目之前你需要首先编写配置文件中的其他部分,因为其他部分相对来说比较简单,在网上直接复制下来的也可以用所以我在这里就不提供了。另外也需要懂得yaml的相关语法,避免配置文件出错无法运行软件。

引入配置

好,废话说完了,我们直接开始吧
proxy-providers的基本格式如下:

1
2
3
4
5
6
7
8
9
10
proxy-providers:
Name: #组名
type: http # url订阅的方式
path: ./profiles/Name.yml # 配置文件缓存的位置
url: https://example.com/ # 网络上配置文件的位置
interval: 172800 # 自动更新时间
health-check: # 健康检测,检测失败就不会在自动选择中用该组代理
enable: true
url: http://www.gstatic.com/generate_204
interval: 3600 # 检测间隔

类似的,如果要引用多个网络配置,则在Name的同级再写一个Name2之类的,并把path中的Name也改成Name2,避免文件重复,例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
proxy-providers:
Name: #组名
type: http # url订阅的方式
path: ./profiles/Name.yml # 配置文件缓存的位置
url: https://example.com/ # 网络上配置文件的位置
interval: 172800 # 自动更新时间
health-check: # 健康检测,检测失败就不会在自动选择中用该组代理
enable: true
url: http://www.gstatic.com/generate_204
interval: 3600 # 检测间隔
Name2: #组名2
type: http # url订阅的方式
path: ./profiles/Name2.yml # 配置文件缓存的位置
url: https://example.com/ # 网络上配置文件的位置
interval: 172800 # 自动更新时间
health-check: # 健康检测,检测失败就不会在自动选择中用该组代理
enable: true
url: http://www.gstatic.com/generate_204
interval: 3600 # 检测间隔

至此,网络配置文件就引入完成了

使用配置文件——分组

想要使用刚刚引入的(多个)网络上的配置文件,需要给他们分组,基本的组别select如下:

1
2
3
4
5
6
7
8
9
proxy-groups:
- name: Proxy
type: select
proxies:
- A
- B
use:
- Name
- Name2

在这个示例中,出现了proxiesuse这两个字段
按照原本的配置文件,proxies字段用来引入前面指定的单个节点,我们就可以在Proxy这个组里面选单个节点使用了
但是,我们因为用了 proxy-providers ,导致没有proxies,那么就需要使用到use
use就是指引入某个 proxy-providers 中的所有节点放在当前组,类似这样
ppWwgr6.png
proxies则通常在此时用来“超链接”到其他的组别,比如我第二个组名叫自动选择,就会提供一个自动选择的按钮,类似这样
img
至于最后会使用到的是哪个节点,就最终看自动选择组中选择的项了
当然,proxies里面还可以填DIRECT或者REJECT这两个关键字,实现点一点就直连或者断网的效果

至于其他的组别类型,建议自行参考官方文档
按我的习惯,一般是将全部按钮放一个组,包含不同服务商的自动选择手动选择按钮,不同服务商的服务器分开放几个组,每个服务商分别设一个手动选择和一个自动选择组,最后全部节点放一起来一个故障转移

分流规则

个人认为这里有有关的仓库,里面的说明已经足够详细,直接复制下来使用即可
认为还不够的话,可以参考官方文档来编写域名和IP等单个规则
需要注意的是写规则的时候,需要走代理的组名要根据你在前面分的组相吻合,不能无脑直接复制