Clash Verge rev 使用与配置
名词解释
系统代理 / Tun 模式
系统代理:
- 说明
- 代理程序会在系统“约定”的特定位置(如注册表、系统变量等)设置好代理程序监听请求的端口信息,进行网络请求的应用会自发性地尝试读取这部分信息,并将请求发送至代理程序。不同操作系统的“约定”方式各异。
- 系统代理更像是一种行业内的“约定”,并非所有程序都遵守这种非强制性的“约定”,最终采取哪种方式发生请求往往取决于开发人员的意愿。(就比如说 Chrome, Firefox 等浏览器可能默认会走系统代理,但是命令行的一些工具则需要单独配置代理。)
- 特点
- 具有自发性,网络请求程序尝试使用“约定”配置或使用网络请求程序里额外指定的配置。
- 不能代理UDP流量(如游戏数据包)。
Tun 模式(实现透明代理的一种重要方式)
- 说明
- 代理程序会创建一张虚拟网卡,通过配置操作系统的路由将网络请求重定向到这张虚拟网卡,代理程序从虚拟网卡中读取并处理这些网络请求。
- 特点
- 拦截和处理所有流量(TCP/UDP)重定向到本地的代理程序。
- 网络请求程序无需额外配置。
Meta 内核
一般指 Clash Meta,也称 Meta、 Mihomo 内核。区别于 Clash Premium 为闭源内核,Mihomo 为开源内核。
CFW
一般指 Clash For Windows,是一款的基于 Clash Premium 内核的全平台代理软件(虽然叫做 For Windows)。2023 年 11 月 2 日宣布停止更新,并删除发布仓库。
使用注意事项
以下讨论基于的 Clash Verge rev 版本为 v2.4.0。
配置文件
修改配置文件
虽然通过“设置”-“Verge 高级设置”-“配置目录”可以打开一个有很多配置文件的目录,但是这里面的文件是会在订阅更新的时候自动更新的,所以不要在这里面修改配置。
如果需要修改配置,比较直接的方式是在“订阅”中找到目前在用的订阅,然后右键并点击“编辑文件”,在这个配置文件里进行修改。需要修改的内容比较多的话,也可以重新写一个 .yaml 文件上传。
上传配置文件
不知道是不是软件 bug,有时候配置文件无论是通过拖动还是点击“新建”都无法上传到软件中,这个时候关闭软件重新打开自己好了。
Gemini 代理
尝试过 blackmatrix7 的 Gemini 代理规则,会遇到 ip A≠B 这种问题。已经有用户提出了 issue,但是依照 issue 里的方法依然会遇到这个问题。
最后没招了,只能把 www.google.com 加到 Gemini 代理组里面。
配置文件
目前参考的是 Rabbit-Spec 的配置文件,除此之外还有一个 lazy_script.js 挺全面的,以后可以试试。
语法基础
首先 yaml 是 json 的超集,所以配置文件中会出现一些 json 语法
其次 yaml 中有一个语法会在配置文件中经常使用:“锚点”(Anchor &)和“引用”(Alias *),加上经常配合使用的“合并”(Merge <<)。
举例:
&锚点 (Anchor) —— 定义变量1
2
3
4# 就像编程里的:var my_setting = { interval: 300, url: '...' }
基本设置:
interval: 300
url: "http://google.com"*引用 (Alias) —— 使用变量1
2
3# 就像编程里的:use(my_setting)
下载任务:
*my_setting # <--- 这里等同于把上面那两行直接写在这里<<合并 (Merge Key) —— 继承并修改1
2
3
4下载任务2:
<<: *my_setting # 先继承上面的 interval: 300 和 url
interval: 600 # 然后把 interval 改成 600 (覆盖)
new_item: true # 再加个新属性
多订阅链接
在 proxy-providers 底下加上多个 provider,就能把多个机场的节点放到一起来用。
1 | proxies: |
节点筛选
如果机场管理员给各个节点提供了比较规范的名字,那么可以使用一些筛选逻辑进行筛选。
1 | # 锚点 - 节点筛选组 |
策略组
下面的部分决定了软件的“代理”栏最后呈现出来的是怎样的。
首先最底下的部分就利用了节点筛选规则,把名字为不同国家的节点筛选到不同的策略组里面,例如 {name: 🇭🇰 香港节点, <<: *FallBack, filter: *FilterHK},这个策略组由于使用了预定义 *FallBack,其中包含 type: fallback,因此会自动选择延时最短的节点,无法手动选择。
如果希望在软件的“代理”栏中可以手动选择,那应当设置 type: select。
1 | # 锚点 - 故障转移参数 |
分流规则
rule-providers底下包含的是订阅得到的分流规则,这样可以避免在rules底下自己写一大堆东西。rules底下是生效的规则。需要注意:rule-providers必须在rules里面使用,否则不会生效。- 例如
RULE-SET,Apple,Apple:RULE-SET表示使用订阅得到的规则,第一个Apple为rule-providers底下的名称,第二个Apple为proxy-groups底下的名称。 - 这就完成了一个“节点”→“策略组”→“分流规则”的绑定。
- 例如
- 规则生效优先级:最前面的优先生效。
- 例如最前面是
"DOMAIN, www.google.com, Gemini",后面有一个RULE-SET,GlobalMedia,GlobalMedia。而www.google.com同样被包含到GlobalMedia的订阅规则中。 www.google.com会被绑到Gemini策略组里,而非GlobalMedia策略组。
- 例如最前面是
1 | rule-providers: |


