[Plugin] 配置插件
本节将本地或远程 Profile 叠加到主 Profile,启用状态由持久化开关与网络匹配条件共同决定。
语法
ini
[Plugin]
名称 = 来源, 选项=值每行恰好一个来源。名称非空,同一主 Profile 内不可重复。来源含 = 或逗号时整体引用。
字段
| 字段 | 取值与单位 | 默认值 | 行为与约束 |
|---|---|---|---|
| 来源 | 本地路径或 HTTP/HTTPS URL | 无,必填 | 相对路径基于主 Profile 所在目录 |
subnet | 网络条件字符串,见下表 | 未设置 | 无条件时不限制网络;开关关闭时无论是否匹配均不启用 |
update-interval | 无符号整数,秒 | HTTP 运行时 86400 | 只允许 HTTP/HTTPS 来源;本地来源配置该字段解析失败 |
默认全局启用,持久化开关覆盖默认状态。资源缺失或内容无效的插件不参与本次合并;插件内容使用 UTF-8。插件文件内的 [Plugin] 不继续加载嵌套插件。
网络条件
| 前缀 | 取值 | 行为与约束 |
|---|---|---|
ssid | 非空模式,支持 *、? | 匹配 Wi-Fi 名称 |
bssid | 非空模式,支持 *、? | 匹配 Wi-Fi BSSID |
type | CELLULAR、WIFI、WIRED、LOOPBACK、OTHER | 匹配接口类型,取值不区分大小写 |
gateway | 字面 IP | 语法保留,当前始终不匹配 |
| 无前缀 | SSID 模式 | 按 SSID 解析 |
| 未知前缀 | 字符串 | Profile 校验保留,但插件运行时不匹配 |
已知前缀不区分大小写;已知前缀的非法值解析失败。动态匹配仅使用当前平台提供的接口类型与 Wi-Fi 信息。
优先级与合并
靠前插件优先级高于靠后插件与主 Profile。系统从低优先级到高优先级合并。
[General]、[MITM] 的标量和可选值由高优先级层覆盖。数组值默认整体替换;值前缀 %APPEND% 和 %INSERT% 分别追加、前插数组元素。
[Proxy]、[Proxy Group]、[Script]、[Resource](含[Proxy Resource]别名)与[Host]按名称或键从前往后一对一覆盖已有项,剩余新项默认追加。每个插件项只参与一次覆盖,因此主配置或任一插件内部的重复项不会被合并消除,仍由对应的最终校验检查。[Rule]、[DNS]、[Response]、[URL Rewrite]与[Header Rewrite]等有序列表无显式操作符时默认使用%INSERT%,将内容插入现有配置前方。- 列表章节首行使用
%APPEND%或%INSERT%,可以显式控制追加或插入位置。具名列表先原位覆盖,操作符仅控制剩余新项的位置。
配置示例
主 Profile:
ini
[Plugin]
# 公司网络配置优先于通用远程配置
Office = ./plugins/office.conf, subnet=ssid:Corp-*
Common = https://example.com/ring/common.conf, update-interval=21600
[Rule]
FINAL,DIRECTplugins/office.conf:
ini
[Rule]
%INSERT%
DOMAIN-SUFFIX,internal.example,DIRECT插件全局开关开启且连接 Corp-* Wi-Fi 时,Office 和 Common 同时启用,且 Office 的配置优先。关闭 Office 后,即使仍连接公司网络也不会加载;离开公司网络后,只启用 Common。