Skip to content

providers ​

从 Clash YAML、分享链接或内联映射读取一组代理,并可按名称、类型、健康检查改写。

yaml
providers:
  local:
    payload:
      - {name: direct-a, type: direct}
    override:
      additional_prefix: local-
    health_check:
      enable: false

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

字段 ​

path ​

  • 类型:路径。
  • 必填:可选。
  • 默认:有 url 时为数据目录下 providers/<name>。
  • 取值:相对或绝对路径。

url ​

  • 类型:HTTP/HTTPS URL。
  • 必填:可选。
  • 取值:Clash proxies: YAML,或一行一个代理链接的文本;可带 Base64。

refresh ​

  • 类型:时长。
  • 必填:可选。
  • 默认:1d。

http_client ​

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

via ​

  • 类型:出站名。
  • 必填:可选。
  • 默认:route.final;优先于 http_client 的 via。
  • 类型:映射;每个头可写一个字符串或字符串数组。
  • 必填:可选。
  • 默认:空。

size_limit ​

  • 类型:大小。
  • 必填:可选。
  • 默认:64MiB。

payload ​

  • 类型:数组,元素是 Clash 代理映射或链接字符串。
  • 必填:可选。
  • 默认:无。
  • 限制:没有缓存文件时作为订阅内容;有 url 时在首次成功获取前临时使用。

filter ​

  • 类型:字符串;一个或多个用反引号包住的 Perl 正则。
  • 必填:可选。
  • 默认:不筛选。
  • 匹配对象:代理名称;命中顺序也决定保留顺序。

exclude_filter ​

  • 类型:字符串;一个或多个用反引号包住的 Perl 正则。
  • 必填:可选。
  • 默认:不排除。

exclude_type ​

  • 类型:字符串;类型名用 | 分隔。
  • 必填:可选。
  • 默认:不按类型排除。
  • 示例:vmess|vless|trojan。

override ​

  • 类型:映射。
  • 必填:可选。
  • 默认:空。
  • 注意:serde 字段名是 override;写 overrides 会被拒绝。

override.additional_prefix ​

  • 类型:字符串。
  • 默认:无。

override.additional_suffix ​

  • 类型:字符串。
  • 默认:无。

override.proxy_name ​

  • 类型:{pattern, target} 数组。
  • 默认:空。
  • 行为:按顺序用 Rust 正则在代理名中替换,$1 等可引用捕获组。

override.proxy_name[].pattern ​

  • 类型:正则字符串。
  • 必填:是。

override.proxy_name[].target ​

  • 类型:替换字符串。
  • 必填:是。

override.udp ​

  • 类型:布尔值。
  • 默认:不改。
  • false 将 UDP 设为 off;true 只把原来的 off 恢复为协议的默认选择。

override.udp_over_tcp ​

  • 类型:布尔值。
  • 默认:不改。
  • true 将 UDP 设为 over-tcp。

override.skip_cert_verify ​

  • 类型:布尔值。
  • 默认:不改。
  • 只对能接受 TLS 信任设置的出站生效。

override.dialer_proxy ​

  • 类型:出站名。
  • 默认:不改。
  • 作用:设置每个代理到其服务器时的 detour。

override.interface_name ​

  • 类型:接口名。
  • 默认:不改。
  • 作用:设置直接拨号时的 interface。

override.routing_mark ​

  • 类型:32 位无符号整数。
  • 默认:不改。
  • 作用:设置直接拨号套接字的 mark。

override.mptcp ​

  • 类型:布尔值。
  • 默认:不改。
  • 作用:设置 tcp_multi_path。

override.ip_version ​

  • 类型:字符串。
  • 默认:dual 语义。
  • 取值:dual、ipv4、ipv6、ipv4-prefer、ipv6-prefer。
  • 映射:domain_strategy 的 ipv4_only、ipv6_only、prefer_ipv4、prefer_ipv6。

override.tfo ​

  • 类型:布尔值。
  • 默认:不改。
  • 行为:接受但 mayami 不请求 TCP Fast Open,因此不影响连接。

override.up ​

  • 类型:字符串。
  • 默认:不改。
  • 行为:接受,当前实现不读取。

override.down ​

  • 类型:字符串。
  • 默认:不改。
  • 行为:接受,当前实现不读取。

health_check ​

  • 类型:映射。
  • 必填:可选。
  • 默认:关闭;打开后每 5 分钟,lazy: true。

health_check.enable ​

  • 类型:布尔值。
  • 默认:false。

health_check.url ​

  • 类型:HTTP/HTTPS URL。
  • 默认:Clash 自带的测试 URL。

health_check.interval ​

  • 类型:时长。
  • 默认:5m。

health_check.timeout ​

  • 类型:时长。
  • 默认:5s。

health_check.lazy ​

  • 类型:布尔值。
  • 默认:true。
  • 行为:上一轮后没有流经过该 provider 的代理时跳过一轮。

health_check.expected_status ​

  • 类型:字符串。
  • 默认:实现自己的成功状态判断。
  • 取值:mihomo 的状态表达式写法。

说明 ​

同一个 provider 中先按类型、排除规则和 filter 筛选,再按名称去重;能读取的代理才应用 override。VMess、VLESS、Trojan、Hysteria 等 mayami 不支持的代理会被跳过并记录原因。

相关 ​

页面历史

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