Skip to content

rule_set ​

rule_sets 在顶层按名字定义规则集,路由/DNS 规则用 rule_set 引用。来源可以是本地文件、远程 URL、内联 payload 或 sing-box 风格的内联 rules。

yaml
rule_sets:
  private:
    rules:
      - {ip_is_private: true}
  adguard:
    format: adguard
    payload:
      - "||ads.example^"

outbounds:
  direct:
    type: direct

route:
  rules:
    - {rule_set: [private], outbound: direct}
    - {rule_set: [adguard], action: reject}
  final: direct

dns:
  servers:
    default: {type: udp, address: 127.0.0.1:53}
  final: default

字段 ​

path ​

  • 类型:路径。
  • 必填:与 url、payload 或 rules 组成来源选择。
  • 默认:有 url 且未写时,是数据目录下 rule-sets/<name>。
  • 行为:相对路径以数据目录为基准。

url ​

  • 类型:HTTP/HTTPS URL。
  • 必填:可选。
  • 行为:副本缺失或超过 refresh 时抓取;抓取失败时继续使用已有副本或 payload。

refresh ​

  • 类型:时长。
  • 默认:1d。

http_client ​

  • 类型:http_clients 名字。
  • 必填:可选。
  • 默认:route.default_http_client,再没有时使用普通客户端。

via ​

  • 类型:出站名。
  • 必填:可选。
  • 默认:http_client 的 via;两边都没有时使用 route.final。
  • 类型:映射;每个请求头可写一个字符串或字符串数组。
  • 默认:空。

size_limit ​

  • 类型:大小。
  • 默认:64MiB。

format ​

  • 类型:字符串枚举。
  • 必填:可选。
  • 默认:按内容自动识别;AdGuard 列表必须显式写 adguard。
  • 取值:srs、mrs、json、text、adguard。

behavior ​

  • 类型:字符串枚举。
  • 默认:classical。
  • 取值:domain、ipcidr、classical。
  • 行为:文本规则集的条目语义。

payload ​

  • 类型:字符串数组。
  • 必填:可选。
  • 行为:内联文本行;有 url 时作为首次抓取前的临时内容。

initial ​

  • 类型:路径。
  • 必填:可选。
  • 行为:远程规则集第一份副本出现前读取的初始文件。

rules ​

  • 类型:RuleSpec 数组。
  • 必填:可选。
  • 限制:必须单独使用,不能同时写 path、url 或 payload;规则是无动作的 headless 规则。

说明 ​

不写 rules 时,path、url、payload 至少要有一个。rules、路径/URL/payload 之外还写动作字段会被拒绝。内联 rules 和 sing-box source JSON 使用同一套匹配字段,见路由规则。

相关 ​

页面历史

开发者设计、代码地图和验证记录保留在仓库 manual/。