Openclash如何添加自定义规则?

OpenClash是一款基于Clash核心的网络代理工具,允许用户根据自身需求添加自定义规则,以实现对网络流量的精细化控制。通过添加自定义规则,用户可以指定特定的域名或IP地址的流量走向,从而优化网络体验。

添加自定义规则

一、什么是自定义规则?

自定义规则是用户根据自身需求编写的流量控制策略,用于决定特定的网络请求应如何处理。在OpenClash中,常见的规则类型包括:

  • DOMAIN-SUFFIX:匹配域名后缀。例如,DOMAIN-SUFFIX,example.com,DIRECT表示所有以example.com结尾的域名流量将直接连接。

  • DOMAIN:完全匹配特定域名。例如,DOMAIN,specific.example.com,PROXY表示仅specific.example.com的流量通过代理。

  • DOMAIN-KEYWORD:匹配域名中的关键字。例如,DOMAIN-KEYWORD,keyword,PROXY表示所有包含keyword的域名流量通过代理。

  • IP-CIDR:匹配特定IP范围。例如,IP-CIDR,192.168.1.0/24,DIRECT表示该IP段的流量直接连接。

二、如何添加自定义规则?

在OpenClash中,添加自定义规则主要有以下两种方法:

方法一:直接修改主配置文件

  1. 找到配置文件:OpenClash的配置文件路径通常为/etc/openclash/config.yaml

  2. 打开配置文件:使用文本编辑器打开config.yaml文件。

  3. 添加规则:找到rules字段,在其下方添加自定义规则。例如:

rules:
  - DOMAIN-SUFFIX,example.com,DIRECT
  - DOMAIN,specific.example.com,PROXY
  1. 保存并重启OpenClash:保存修改后,重启OpenClash使新规则生效。

方法二:使用独立规则文件

为避免主配置文件被覆盖,可以将自定义规则存储在独立的文件中,并通过主配置文件引用。

  1. 创建独立规则文件:在OpenClash的配置目录下创建一个新的规则文件,例如custom_rules.yaml,内容如下:

    rules:
    - DOMAIN-SUFFIX,custom.com,PROXY
    - DOMAIN,example.org,DIRECT
  2. 修改主配置文件:在config.yaml中,通过rule-providers引用自定义规则文件:

    rule-providers:
    custom:
    type: file
    behavior: classical
    path: ./custom_rules.yaml
  3. rules中引用:在rules字段中引用上述规则:

    rules:
    - RULE-SET,custom,DIRECT
  4. 保存并重启OpenClash:保存配置后,重启OpenClash使新规则生效。

三、防止配置文件更新时自定义规则被覆盖的方法

当使用订阅链接更新配置文件时,可能会导致之前添加的自定义规则被覆盖。为防止这种情况,可以采取以下措施:

  1. 使用独立规则文件:如上所述,将自定义规则放在独立的文件中,并在主配置文件中引用。这样,即使主配置文件被更新,自定义规则也不会丢失。

  2. 使用覆写设置:OpenClash提供了覆写设置功能,允许用户在覆写设置中添加自定义规则,这些规则在订阅更新时不会被覆盖。

四、验证规则是否生效

添加自定义规则后,可以通过以下方式验证其是否生效:

  1. 查看日志输出:OpenClash的日志会显示每个请求匹配到的规则和采用的策略。

  2. 使用Dashboard:通过OpenClash的Dashboard,可以实时查看规则的应用情况。

  3. 实际测试:访问受自定义规则影响的域名或IP,观察其连接情况是否符合预期。

五、常见问题

  1. 为什么自定义规则没有生效?

    • 配置文件格式错误:确保YAML格式正确,特别是缩进必须严格对齐。

    • 规则顺序问题:Clash按顺序匹配规则,第一条匹配成功的规则将生效。确保自定义规则的顺序正确,避免被前面的规则覆盖。

  2. 如何确认规则优先级?

    Clash从上到下按顺序匹配规则,第一条匹配成功的规则将生效。建议将通用规则放在后面,特定规则放在前面。

通过上述方法,用户可以在OpenClash中添加自定义规则,并确保其在配置更新时不会被覆盖,从而实现对网络流量的精细化管理,提升上网体验。

5/5 - (1 vote)

Openclash常见问题OpenClash