主动管理Clash的代理配置
自己搭建了这么多年的shadowsocks服务,经历了2次续年费后服务器ip被加黑名单之后,算是彻底放弃了(心痛100刀😭),说的就是帮瓦工。vultr的服务器虽然稳定,但是延迟比较高,糟糕的时候甚至连油管的高清视频都卡顿,不过大部分时间都是轻度搜索场景,也就还能使用。那时候也知道“机场”的概念,不过自己搭的服务用着放心么不是,机场随时跑路的,就一直没用。而且vultr的服务器,5刀/月,价格也在可接受的范围内。
不过浸淫了那么久,发现机场的速度和稳定性确实要好过自建服务。
- 一来稳定的机场每天都有维护,自建的服务半年都不见得上去看一眼;
- 二来身边有用机场的人,机场经过了时间的检验,可靠性有保证了;
- 三来如果不是定制化或者要求非常高,机场的价格比自建服务器便宜。
综上,还是转用机场吧,别再自己折腾了。
以上为引。
机场购买套餐后,一般会提供订阅链接,clash可以直接托管配置,用起来相当方便。不过机场提供的订阅使用起来,还有如下缺点:
- 机场提供的订阅配置一般都是一大坨,不同机场的配置也有较大差异,在切换配置文件后,往往需要调整规则,或者需要测速后手动选择低延迟的节点
- 不能自定义,部分机场缺乏对某些地址的分流规则,可能需要手动添加,但是,机场的托管配置更新之后会覆盖用户添加的内容
- 机场有些“凑数”节点,不好用也基本上用不到,但是在选择节点总是展示,不够有条理
实际上,只要稍微使用一段时间的clash,这些问题都不难发现。如果能够自己写规则,并管理机场提供的节点的话,以上问题都能解决。
clash配置文件的结构 #
- “head” 头部配置,主要是代理端口,模式,日志级别等基础配置
- proxy-providers 核心配置,代理集,用来管理机场的节点
- proxy-groups 核心配置,代理组,用来管理分流
- proxies 核心配置,上述两个配置好之后,可以不配置此项,机场订阅链接一般配置此项
- rule-providers 核心配置,用来订阅分流规则
- rules 核心配置,控制分流规则,机场订阅仅用此来分流
说起来也很简单,主要是2部分核心配置
- proxy 即指代服务节点
- rule 即指代分流规则,即哪个网站走哪个节点
自定义的话,只需要配置proxy-providers
、proxy-groups
、rule-providers
和rules
配置就行了,至于头部配置,随便抄一个就行了:
1port: 7890
2socks-port: 7891
3redir-port: 7892
4mixed-port: 7893
5allow-lan: false
6mode: rule
7log-level: warn
8external-controller: '127.0.0.1:9090'
proxy-providers #
这是核心配置,用来管理(多个)机场的订阅,并且可以将节点分类到不同的订阅组。以下是配置示例:
1proxy-providers:
2 ChinaG-tw:
3 type: http #类型,使用http从订阅地址拉取配置
4 path: ./proxyset/ChinaG.yaml # 拉取的配置文件存放地址
5 url: "机场提供的订阅地址"
6 interval: 1800 # 配置更新间隔 30分钟
7 filter: 'TW' # 节点过滤,根据机场提供的名字来,这里过滤含有‘TW’两个字母的节点
8 health-check: # 健康检查
9 enable: true
10 url: http://www.gstatic.com/generate_204 # 健康检查地址
11 interval: 300 # 检查间隔 5分钟
12 ChinaG-hk:
13 type: file # 从本地配置文件读取节点
14 path: ./proxyset/ChinaG.yaml # 这里是将上面机场的节点分组,故直接使用上面拉取的配置
15 interval: 3600
16 filter: 'HK|SG' # 节点过滤 这里过滤含有'HK'或者'SG'的节点
17 health-check:
18 enable: true
19 url: http://www.gstatic.com/generate_204
20 interval: 300
以上就是2种不同的配置proxy-providers
方式。
有时候,机场提供的订阅地址可能无法顺利拉取下来,这时候可能需要一点特殊的处理,一般是对订阅地址进行 urlEncode后,通过subconverter拉取。具体过程参照引文2。
proxy-groups #
proxy-groups
理解为策略组,也就是单击clash图标后,显示的那些选择节点的配置。这些配置一般机场都会提供,开箱即用的。手撸之后的好处就是,不用忍受不同机场的配置差异,总是一样的选单。
以下是proxy-groups
配置示例:
1proxy-groups:
2 - name: 🎯境外流量 # 策略组名字
3 type: select # 类型 自动选择
4 use: # 使用哪些proxy-providers
5 - ChinaG-tw # 上一步配置的代理集名字
6 - ChinaG-hk
7 - Coffee-hk
8 proxies: # 使用哪些代理
9 - DIRECT # clash自带的,直连
10 - 🥤亚洲咖啡 # 下面配置的策略组
11 - name: 🥤亚洲咖啡
12 type: url-test # 自动测速并选择节点
13 url: http://www.gstatic.com/generate_204 # 测速地址
14 interval: 300 # 测速间隔
15 use:
16 - Coffee-asia
rule-providers #
一般机场提供的配置不会配置此项目,而是把所有的ip/域名规则一股脑全塞进rules
配置里,差一点的,整个配置文件几千行,良心一点的机场,配置文件动辄几万行。虽然功能相同,但是确实看着累人。
rule-providers
相当于是从互联网拉取分流规则,这些规则有人维护,并且持续更新,这样方便多了。
以下是rule-providers
配置示例:
1 YouTube:
2 behavior: classical # 用于yaml结尾的url
3 type: http
4 url: https://cdn.jsdelivr.net/gh/ACL4SSR/ACL4SSR@master/Clash/Providers/Ruleset/YouTube.yaml # 规则地址
5 interval: 86400 # 更新间隔 1个月
6 path: ./ruleset/YouTube.yaml # 存放地址
7 google:
8 type: http
9 behavior: domain # 用于txt结尾的url
10 url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt"
11 path: ./ruleset/google.yaml
12 interval: 86400
拉取下来的实际上是rules
的子集,这样是方便管理,简化配置。
rules #
分流规则的核心配置。既然配置了rule-providers
,那么rules
的配置自然是要按照上面的配置来。
以下是配置示例:
1 - DOMAIN-SUFFIX,bing.com,🥤亚洲咖啡 # 自定义规则 bing.com走代理访问国际版
2 # 规则集 对应的规则集名字 对应的proxy-groups名字
3 - RULE-SET,YouTube,🎬️Youtube #YouTube规则集里的流量都走🎬️Youtube出
4 - RULE-SET,google,🎯境外流量 # google规则集的流量都走🎯境外流量出
5 - GEOIP,LAN,DIRECT # 局域网直连
6 - GEOIP,CN,DIRECT # 国内ip直连
7 - MATCH,🐟漏网之鱼 # 白名单模式 未匹配上的域名走🐟漏网之鱼代理组出
以上就是手撸clash配置的全部内容。
使用gist实现远程订阅 #
实际上,这一步并没有什么必要,如果是本地使用的话。不过如果想多端使用,可以使用gist托管配置然后远程订阅。
实现也很简单,创建新的私密gist,把配置文件贴上去。点击raw
查看配置文件,复制地址栏的链接,去掉链接中raw到文件名
中间的字符串,剩下的部分可以直接使用clash订阅。