Skip to content

Feature Parameters

Aethersailor edited this page Aug 15, 2026 · 3 revisions

特色参数与扩展语法

本页集中说明 SubConverter-Extended 相对传统 subconverter 增加或显著扩展的用户功能。所有示例均使用占位地址。

Provider 名称:provider:

用于给客户端原生远程资源指定可读名称:

provider:HK,https://example.com/sub

多个来源:

provider:HK,https://a.example/sub|provider:US,https://b.example/sub

完整放入 /sub?url= 时,需要对整个值进行 URL 编码。

适用目标:Clash、ClashR、Quantumult X、Surge、Surfboard、Loon、Stash。不同客户端会把名称写入不同远程资源字段。

名称为空、包含不允许字符或发生重名时,服务会清理名称或追加后缀。未指定时自动生成稳定名称。

来源标签:tag:

tag: 用于标识输入来源,并帮助策略组把节点或远程资源与对应来源关联:

tag:机场A,https://example.com/sub

tag: 不是 Provider 文件名。需要自定义 Provider 名称时使用 provider:。两者可以同时出现。

更新间隔:interval:

单位为秒:

provider:HK,interval:21600,https://example.com/sub

适用范围:

目标 行为
Clash、ClashR 覆盖当前 Provider 的更新间隔
Quantumult X 写入当前远程资源的更新间隔
Surge 仅接受正数,写入 policy-path
Stash 仅接受正数,写入 Stash Provider
Surfboard、Loon、服务端解析目标 不支持,返回 HTTP 400

Clash/ClashR 的部署级默认值:

[proxy_provider]
interval = 21600

优先级:

单条订阅 interval: > [proxy_provider] interval > 内置兼容默认值 3600 秒

Mihomo Provider 下载方式

单条订阅:proxy_direct:

proxy_direct:false,https://example.com/sub
  • true1:写入 proxy: DIRECT
  • false0:不写入 proxy: DIRECT,由 Mihomo 使用自身默认策略。

只适用于会生成 Clash/ClashR Provider 的远程订阅。用于节点链接或其他目标时返回 HTTP 400。

当前请求:provider_proxy_direct

&provider_proxy_direct=false

它覆盖当前请求中没有单独设置 proxy_direct: 的 Mihomo Provider。

部署级配置

[proxy_provider]
proxy_direct = false

完整优先级:

单条订阅 proxy_direct:
> 请求参数 provider_proxy_direct
> [proxy_provider] proxy_direct
> 内置兼容默认值 proxy: DIRECT

provider_proxy_direct 不是后端的出站代理设置,也不能控制 Stash Provider。后端下载策略见出站代理

Provider 请求头:provider_headers

provider_headers 从当前 /sub HTTP 请求中选择请求头,再把这些头写入 Clash 或 Stash Provider。

例如,请求本身包含:

X-Subscription-Token: example-value
X-Client-Class: home

查询参数选择名称:

&provider_headers=X-Subscription-Token,X-Client-Class

重要限制:

  • 只支持 target=clashtarget=stash
  • 查询参数填写的是请求头名称,不是请求头值;
  • 必须实际生成至少一个 Provider;
  • 选择 1~16 个请求头,名称列表总长度不超过 1024;
  • 缺失、重复、格式错误或值包含控制字符时返回 HTTP 400;
  • HostCookieUser-Agent、代理认证头、转发头、Cloudflare 头等保留名称不能选择。

该功能可能把认证信息写入最终客户端配置。只在明确了解订阅服务要求和配置传播范围时使用,不要把生成结果公开分享。

请求诊断:explain=true

https://后端/sub?target=clash&url=...&explain=true

诊断模式执行同一组转换决策,但返回 JSON 报告而不是目标配置。报告包括:

  • 目标格式和解析路径;
  • 已识别、未识别和未使用的参数;
  • 远程订阅、节点和 Provider 数量;
  • 外部配置、规则集和输出统计;
  • 安全档位和出站策略摘要;
  • 脱敏错误和警告。

如果请求包含上传参数,诊断模式会抑制上传。响应禁止公共缓存,也不会返回订阅 URL、节点正文或稳定短哈希。

可视化入口:/inspect

外部完整规则:ruleprepend / ruleappend

外部配置 INI 示例:

[custom]
ruleprepend=https://example.com/first.list
ruleappend=https://example.com/last.yaml

它们只支持 target=clash 的非列表、非 Script 完整配置。详细顺序和失败行为见规则与规则集

IP 规则:no-resolve

INI:

ruleset=🎯 全球直连,clash-ipcidr:https://example.com/cn-ip.yaml,28800|no-resolve

TOML:

[[rulesets]]
group = "🎯 全球直连"
type = "clash-ipcidr"
ruleset = "https://example.com/cn-ip.yaml"
interval = 28800
options = ["no-resolve"]

它只作用于非 Script Clash/Mihomo clash-ipcidr 输出。其他规则类型或目标会忽略并记录警告。

安全档位

[security]
profile = "public"
allow_public_upload = false

lanpublicstrict 的区别不是普通格式偏好,而是请求方可控抓取和上传的安全边界。详见安全与隐私

如何验证参数已经生效

  1. 给原请求增加 explain=true
  2. 检查参数状态是 appliedignoredoverridden 还是未识别。
  3. 去掉 explain=true 获取真实配置。
  4. 检查生成的 Provider、规则或目标字段。
  5. 在实际客户端更新配置。

不能只凭 HTTP 200 判断某个特色参数已经生效。

Clone this wiki locally