模块
在 Egern 中,模块是预设定的配置片段,用户可以方便地启用或禁用一组特定的网络处理规则。模块的功能覆盖范围广泛,可以包含规则、URL 重写、头部重写、主体重写、Map Local、脚本、MITM、HTTP 抓取和面板等。当启用模块后,模块内的配置将会被合并到 Egern 的主配置中。
模块引用配置
在主配置文件中引用模块:
-
name (string), 可选
模块显示名称,覆盖模块文件内定义的名称。未设置时使用模块文件中的
name字段或 URL。 -
url (string), 必填
模块文件的地址,可以是本地文件路径或远程链接。
-
compat_arguments (object), 可选
传递给模块的参数,用于覆盖模块文件中定义的默认参数值。参数会在模块解析时进行变量替换。
-
update_interval (integer), 可选
当模块文件是远 程链接时,此参数指定模块的更新间隔(秒)。默认值为 86400(24 小时)。
-
enabled (boolean), 可选
控制模块是否启用。默认值为
true。
配置示例
modules:
- name: "广告过滤"
url: "https://example.com/adblock.yaml"
enabled: true
update_interval: 86400
- url: "https://example.com/custom.yaml"
compat_arguments:
API_KEY: "your_api_key"
REGION: "cn"
模块文件格式
模块文件本身是一个 YAML 格式的文件,包含元信息和配置内容。
元信息字段
-
name (string), 可选
模块名称。
-
description (string), 可选
模块描述。
-
author (string), 可选
模块作者。
-
homepage (string), 可选
模块主页 URL。
-
manual (string), 可选
使用说明 URL。
-
icon (string), 可选
模块图标,支持 SF Symbols 名称或 URL。
-
open_url (string), 可选
打开设置页面的 URL。
-
compat_arguments (object), 可选
模块参数的默认值。
-
compat_arguments_desc (string), 可选
模块参数说明文档。
配置内容字段
模块文件可以包含以下配置项,这些配置会与主配置合并:
-
dns (object), 可选
DNS 配置。
-
rules (array), 可选
规则列表。
-
url_rewrites (array), 可选
URL 重写列表。
-
header_rewrites (array), 可选
Header 重写列表。
-
body_rewrites (array), 可选
Body 重写列表。
-
map_locals (array), 可选
Map Local 列表。
-
scriptings (array), 可选
脚本列表。
-
mitm (object), 可选
MITM 配置。
-
http_captures (array), 可选
HTTP 捕获主机名列表。
-
panels (array), 可选
面板列表。
-
bypass_tunnel_proxy (array), 可选
绕过隧道代理的域名列表。
-
real_ip_domains (array), 可选
使用真实 IP 的域名列表(不使用 Fake IP)。
配置示例
name: "广告过滤模块"
description: "过滤常 见广告和追踪器"
author: "module-author"
homepage: "https://github.com/example/adblock-module"
icon: "shield.fill"
compat_arguments:
BLOCK_MODE: "reject"
rules:
- domain_suffix:
match: "ad.example.com"
policy: REJECT
url_rewrites:
- match: "^https://ads\\.example\\.com"
location: "https://reject/"
status_code: 307
mitm:
hostnames:
- "*.example.com"
panels:
- name: adblock-info
title: 广告过滤
content: "已启用广告过滤"
icon: shield.fill