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。
header
- 类型:映射;每个头可写一个字符串或字符串数组。
- 必填:可选。
- 默认:空。
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 不支持的代理会被跳过并记录原因。