订阅链接返回的就是一份 YAML。看懂它,你才能改它。
这篇按顶层字段的顺序过一遍,每一段都给出可以直接粘贴的写法。
一份最小可用配置
先看全貌,后面逐段拆:
mixed-port: 7897
allow-lan: false
mode: rule
log-level: info
ipv6: false
external-controller: 127.0.0.1:9090
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver: [223.5.5.5, 119.29.29.29]
fallback: [https://1.1.1.1/dns-query]
proxies:
- name: "HK-01"
type: trojan
server: hk01.example.com
port: 443
password: "your-password"
udp: true
proxy-groups:
- name: "PROXY"
type: select
proxies: ["AUTO", "HK-01"]
- name: "AUTO"
type: url-test
proxies: ["HK-01"]
url: "http://www.gstatic.com/generate_204"
interval: 300
rules:
- DOMAIN-SUFFIX,cn,DIRECT
- GEOIP,CN,DIRECT
- MATCH,PROXY这份配置能跑。下面把每个字段说清楚。
一、基础设置
mixed-port: 7897 # HTTP + SOCKS5 共用端口(推荐)
# port: 7890 # 单独的 HTTP 端口,一般不用
# socks-port: 7891 # 单独的 SOCKS5 端口,一般不用
redir-port: 7892 # 透明代理(Linux/macOS)
tproxy-port: 7893 # TProxy(Linux)
allow-lan: false # 是否允许局域网设备连接
bind-address: "*" # allow-lan 为 true 时的监听地址
mode: rule # rule / global / direct
log-level: info # silent / error / warning / info / debug
ipv6: false # 是否启用 IPv6
unified-delay: true # 统一延迟计算,测速更接近真实
tcp-concurrent: true # 并发握手,多 IP 域名连接更快
external-controller: 127.0.0.1:9090
secret: "" # 外部控制 API 密码二、dns
DNS 段决定了「域名解析成什么 IP」,直接影响分流准确性和流媒体解锁。
dns:
enable: true
listen: 0.0.0.0:1053
ipv6: false
enhanced-mode: fake-ip # fake-ip 或 redir-host
fake-ip-range: 198.18.0.1/16
fake-ip-filter: # 这些域名不用 fake-ip
- "*.lan"
- "*.local"
- "+.pool.ntp.org"
- "localhost.ptlogin2.qq.com"
default-nameserver: [223.5.5.5] # 用于解析下面的 DoH 域名
nameserver: # 主 DNS
- 223.5.5.5
- https://doh.pub/dns-query
fallback: # 境外 DNS
- https://1.1.1.1/dns-query
- tls://8.8.4.4:853
fallback-filter:
geoip: true
geoip-code: CNenhanced-mode 的两种取值差别很大,单独写了一篇:DNS 配置详解与 fake-ip 原理。
三、proxies
节点清单。每种协议的字段不同,常见几种:
proxies:
# Trojan
- name: "HK-Trojan"
type: trojan
server: hk.example.com
port: 443
password: "pwd"
sni: hk.example.com
udp: true
# VMess
- name: "JP-VMess"
type: vmess
server: jp.example.com
port: 443
uuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
alterId: 0
cipher: auto
tls: true
network: ws
ws-opts:
path: /ws
headers: { Host: jp.example.com }
# Shadowsocks
- name: "SG-SS"
type: ss
server: sg.example.com
port: 8388
cipher: aes-256-gcm
password: "pwd"
udp: true
# Hysteria2(Mihomo 支持)
- name: "US-HY2"
type: hysteria2
server: us.example.com
port: 443
password: "pwd"
sni: us.example.com四、proxy-groups
策略组,决定「一类流量用哪个节点」。五种类型的差异见策略组类型详解,这里给个常用结构:
proxy-groups:
- name: "🚀 节点选择"
type: select
proxies: ["♻️ 自动选择", "🇭🇰 香港", "🇯🇵 日本", "DIRECT"]
- name: "♻️ 自动选择"
type: url-test
include-all: true # Mihomo:自动纳入所有节点
filter: "香港|HK|Hong" # 只要匹配的
url: "http://www.gstatic.com/generate_204"
interval: 300
tolerance: 50
- name: "🎬 流媒体"
type: select
proxies: ["🇭🇰 香港", "🇸🇬 新加坡", "🚀 节点选择"]
- name: "🐟 漏网之鱼"
type: select
proxies: ["🚀 节点选择", "DIRECT"]include-all + filter 是 Mihomo 的实用特性:不用手写节点名,按正则自动收编。写法见节点命名与分组正则。
五、rules
从上往下逐条匹配,第一条命中即生效。
rules:
# 局域网直连(必须放最前面)
- IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
# 具体域名规则
- DOMAIN-SUFFIX,openai.com,🚀 节点选择
- DOMAIN-SUFFIX,netflix.com,🎬 流媒体
- DOMAIN-KEYWORD,google,🚀 节点选择
# 规则集
- RULE-SET,cn-domain,DIRECT
- RULE-SET,proxy-domain,🚀 节点选择
# 地理位置兜底
- GEOIP,CN,DIRECT
- MATCH,🐟 漏网之鱼规则类型全表见规则类型速查。
六、rule-providers
把规则列表放在外部文件里,定期自动更新:
rule-providers:
cn-domain:
type: http
behavior: domain
format: text
url: "https://example.com/rules/cn.txt"
path: ./ruleset/cn-domain.txt
interval: 86400
private-ip:
type: http
behavior: ipcidr
url: "https://example.com/rules/private.txt"
path: ./ruleset/private.txt
interval: 86400behavior 有三种:domain(域名列表)、ipcidr(IP 段)、classical(完整规则语法)。用错了会导致规则不生效但不报错——这是个常见坑。详见 rule-providers 完整用法。
七、proxy-providers
节点也可以来自外部:
proxy-providers:
main:
type: http
url: "你的订阅链接"
interval: 3600
path: ./providers/main.yaml
health-check:
enable: true
url: http://www.gstatic.com/generate_204
interval: 300然后在策略组里用 use: [main] 引用。这种写法适合多订阅合并,见 多 Profile 管理与合并。
八、tun
TUN 相关配置(Clash Verge 界面里也能配,但知道底下是什么有好处):
tun:
enable: true
stack: mixed # gvisor / system / mixed
auto-route: true
auto-detect-interface: true
dns-hijack: ["any:53"]
strict-route: false
mtu: 1500YAML 语法上最容易犯的三个错
- 缩进用空格,不能用 Tab。 大多数报错都是这个。
- 冒号后面要有空格。
port:443是错的,port: 443才对。 - 特殊字符要加引号。 密码里带
@、#、:的,必须用引号包起来:password: "p@ss#123"。
完整的报错对照见 YAML 报错速查。
改配置的正确姿势
直接改订阅下载下来的文件,下次自动更新就被覆盖了。
正确做法是用 Clash Verge 的「全局扩展配置 / Merge」,在不动原文件的前提下追加内容:
# 全局扩展配置
prepend-rules:
- DOMAIN-SUFFIX,mycompany.com,DIRECT
append-rules:
- DOMAIN-SUFFIX,example.net,🚀 节点选择
prepend-proxy-groups:
- name: "我的分组"
type: select
proxies: ["DIRECT", "🚀 节点选择"]小结
八个顶层字段,职责很清楚:基础设置管监听,dns 管解析,proxies 管出口,proxy-groups 管策略,rules 管决策,两个 providers 管外部来源,tun 管网络层接管。
改配置之前先想清楚要改哪一层,然后用 Merge 而不是直接编辑订阅文件。
相关文档
每种策略组的实际行为、适用场景和关键参数,附带一套可直接抄的分组结构,以及 Mihomo 特有的 include-all 与 filter 用法。
直接编辑订阅文件会在下次更新时前功尽弃。这篇讲 Clash Verge 的扩展配置机制:prepend/append/override 的写法、合并顺序,以及几个实用的扩展片段。
url-test 的测速原理、unified-delay 的作用、为什么显示的延迟和 ping 值对不上,以及三个关键参数的取值建议与副作用。