数据提供器插件
provider 负责把规则集从“单条规则”提升为“可复用的数据资产”。在复杂配置里,provider 通常用于减少重复配置、沉淀共享规则、提升策略可维护性。
domain_set
作用
提供高性能域名规则集合,可被 qname、cname 等插件引用。
参数
- tag: core_domains
type: domain_set
args:
exps:
- "domain:example.com"
- "keyword:cdn"
- "regexp:^api[0-9]+\\.example\\.net$"
files:
- "/etc/forgedns/domains.txt"
sets:
- "shared_domains"
exps- 内联域名表达式列表。
files- 外部规则文件。
sets- 引用其它
domain_set。
- 引用其它
配置项详解
exps
- 类型:
array;必填:否;默认值:空数组 - 作用:定义内联域名表达式列表。
- 示例:
- "full:example.com"- "domain:example.com"- "keyword:cdn"
- 支持内容:
full:domain:keyword:regexp:- 无前缀域名
- 运行影响:
- 在初始化阶段编译为可直接匹配的规则集合。
files
- 类型:
array;必填:否;默认值:空数组 - 作用:指定外部规则文件路径列表。
- 示例:
- "/etc/forgedns/domains.txt" - 文件要求:
- 每行一条规则。
- 空行与注释行会被忽略。
- 运行影响:
- 文件内容会在初始化阶段加载并并入当前 provider。
sets
- 类型:
array;必填:否;默认值:空数组 - 作用:引用其它
domain_set实例。 - 示例:
- "shared_domain_set" - 约束:
- 仅允许引用
domain_set类型 provider。
- 仅允许引用
- 运行影响:
- 被引用的规则集会在初始化阶段被展平并并入当前 provider。
行为说明
- 初始化时会把
exps、files和被引用sets展平。 - 运行时不做递归 provider 调用,直接基于编译好的 matcher 热路径匹配。
支持的规则格式
full:example.comdomain:example.comkeyword:cdnregexp:^api\\.example\\.com$example.com
典型用途
- 共享核心域名列表。
- 把不同来源的规则文件聚合为一个 provider。
注意事项
sets只能引用domain_set类型 provider。
ip_set
作用
提供 IP / CIDR 规则集合,可被 client_ip、resp_ip、ptr_ip 等 matcher 引用。
参数
- tag: lan_ip_set
type: ip_set
args:
ips:
- "192.168.0.0/16"
- "10.0.0.0/8"
- "fd00::/8"
files:
- "/etc/forgedns/ips.txt"
sets:
- "shared_ip_set"
ips- 内联 IP / CIDR。
files- 外部规则文件。
sets- 引用其它
ip_set。
- 引用其它
配置项详解
ips
- 类型:
array;必填:否;默认值:空数组 - 作用:定义内联 IP 或 CIDR 规则列表。
- 示例:
- "1.1.1.1"- "192.168.0.0/16"- "2400:3200::/32"
- 支持内容:
- 单个 IPv4 地址
- 单个 IPv6 地址
- IPv4 CIDR
- IPv6 CIDR
- 运行影响:
- 规则会在初始化阶段编译为地址匹配结构。
files
- 类型:
array;必填:否;默认值:空数组 - 作用:指定外部 IP 规则文件路径列表。
- 示例:
- "/etc/forgedns/ips.txt" - 文件要求:
- 每行一条 IP 或 CIDR 规则。
- 空行与注释行会被忽略。
- 运行影响:
- 文件内容会在初始化阶段加载并并入当前 provider。
sets
- 类型:
array;必填:否;默认值:空数组 - 作用:引用其它
ip_set实例。 - 示例:
- "shared_ip_set" - 约束:
- 仅允许引用
ip_set类型 provider。
- 仅允许引用
- 运行影响:
- 被引用集合会在初始化阶段展平,并按地址族加入当前 provider。
行为说明
- 初始化时把所有来源加载并展平。
- 会分别维护 IPv4 / IPv6 规则索引。
- 运行时按地址族快速过滤。
规则格式
1.1.1.1192.168.0.0/162400:3200::/32
典型用途
- LAN / WAN / overlay 等网络边界集合。
- 安全名单、旁路名单、特定目标网段集。
注意事项
sets只能引用ip_set。