Clash 是一个跨平台的开源网络代理工具,通过 yaml 规则文件对网络流量进行控制。了解 Clash yaml 规则,可以更好地配置和使用 Clash 以满足自己的网络需求。
什么是 Yaml
Yaml 是一种人类可读的数据序列化格式,它将信息以一种类似于 json 的形式表达出来,但其结构更加简洁明了,易于阅读和编辑。Yaml 在 Clash 中的应用是用来编写配置文件的。
Clash Yaml 规则的基本结构
Clash 的 Yaml 规则文件主要包含以下部分:
port
: 端口配置socks-port
: Socks 代理端口redir-port
: Redir 代理端口allow-lan
: 是否允许局域网连接mode
: 运行模式,可选值有Global
、Rule
、Direct
log-level
: 日志级别,可选值有info
、warning
、error
、debug
external-controller
: 外部控制器接口secret
: 外部控制器密码Proxy
: 代理配置Proxy Group
: 代理组配置Rule
: 规则配置
每一部分都有其特定的规则和配置方法。
Clash Yaml 规则的详细解读
以下是一些详细的规则解读:
-
port
与socks-port
:这两个字段用于设置 HTTP 代理和 SOCKS 代理的端口号。例如,如果你设置port: 7890
和socks-port: 7891
,那么你的 HTTP 代理端口就是 7890,SOCKS 代理端口就是 7891。 -
mode
: 这个字段用于设置 Clash 的运行模式。如果设置为Global
,则所有流量都会通过代理;如果设置为Rule
,则会根据Rule
字段的规则进行代理;如果设置为Direct
,则所有流量都不会走代理。 -
Proxy
:这个字段用于设置代理服务器的信息。每一个代理服务器都需要提供name
、type
、server
、port
、uuid
等信息。 -
Proxy Group
: 这个字段用于创建代理组,每个代理组都包含一组代理服务器和一个策略。策略的选择可以是url-test
、fallback
、select
、load-balance
等。 -
Rule
: 这个字段用于设置代理规则,每个代理规则都由三部分组成:规则类型、规则内容、代理组。
Clash Yaml 规则的编写
在编写 Clash 的 yaml 规则文件时,首先需要对上述各项参数进行合理设置。例如,代理端口、运行模式、代理服务器信息等。接着,在 Proxy
和 Proxy Group
部分填写具体的代理服务器和代理组信息。最后,在 Rule
部分编写具体的代理规则。
-
问:我应该如何修改 Clash 的 yaml 规则? 答:你可以直接使用文本编辑器打开 Clash 的 yaml 文件,按照上述的参数说明和规则进行修改。
-
问:如何测试 Clash 的 yaml 规则是否生效? 答:你可以通过修改某个规则,然后观察网络行为是否符合预期来进行测试。例如,你可以设置某个特定网站通过代理访问,然后尝试访问该网站看是否走代理。
-
问:如果我在 yaml 文件中设置了多个代理,Clash 会如何选择? 答:Clash 会根据
Proxy Group
的策略进行选择。例如,如果策略是url-test
,那么 Clash 会测试所有代理的速度,选择速度最快的代理使用。 -
问:如何处理 yaml 规则文件中的冲突规则? 答:Clash 的规则是从上到下匹配的,如果存在冲突的规则,那么 Clash 会优先应用先出现的规则。