想給訂閱加一條自己的規則,最直覺的做法是打開設定檔改一改。然後第二天訂閱自動更新,改動全沒了。
正確做法是用擴充設定(Merge):把你的改動單獨存一份,每次載入訂閱時自動合併進去。
機制是怎麼運作的
在 Clash Verge 裡的入口:訂閱頁 → 右上角「全局擴充設定」,或者某個訂閱卡片的 ⋯ → 擴充設定(只對這一份訂閱生效)。
三類操作
prepend-*:插到最前面
prepend-rules:
- DOMAIN-SUFFIX,mycompany.com,DIRECT
- DOMAIN-SUFFIX,example.com,🚀 节点选择因為規則是從上往下匹配的,prepend 的規則優先級最高,會覆蓋訂閱裡的任何判斷。
這是修正分流錯誤的標準手段。
append-*:追加到最後
append-rules:
- DOMAIN-SUFFIX,slow-site.com,DIRECT追加到 MATCH 之後的規則永遠不會命中(因為 MATCH 匹配一切)。所以 append-rules 的實际用途有限,主要用於追加 proxy-groups 或 proxies。
直接覆蓋頂層欄位
不帶前綴的欄位會直接替換訂閱裡的同名欄位:
mixed-port: 7899
mode: rule
log-level: warning
ipv6: false
unified-delay: true
tcp-concurrent: true可用的欄位
| 欄位 | 說明 |
|---|---|
prepend-rules / append-rules | 規則 |
prepend-proxies / append-proxies | 節點 |
prepend-proxy-groups / append-proxy-groups | 策略組 |
rule-providers | 規則集(會與原有的合併) |
proxy-providers | 節點集 |
dns / tun / sniffer 等頂層段 | 整段覆蓋 |
實用片段合集
一、修正分流錯誤
最常用的場景:某個網站走錯了線路。
prepend-rules:
# 強制走代理
- DOMAIN-SUFFIX,anthropic.com,🚀 节点选择
- DOMAIN-SUFFIX,openai.com,🚀 节点选择
# 強制直連(避免境外 IP 觸發風控)
- DOMAIN-SUFFIX,icbc.com.cn,DIRECT
- DOMAIN-SUFFIX,alipay.com,DIRECT
- DOMAIN-SUFFIX,12306.cn,DIRECT
# 內網
- DOMAIN-SUFFIX,mycompany.com,DIRECT
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve二、加一個自己的策略組
prepend-proxy-groups:
- name: "🔧 我的分组"
type: select
proxies: ["DIRECT", "🚀 节点选择", "♻️ 自动选择"]
prepend-rules:
- DOMAIN-SUFFIX,某个站点.com,🔧 我的分组三、加自建節點
訂閱之外還有自己的伺服器:
prepend-proxies:
- name: "我的小鸡"
type: trojan
server: my.example.com
port: 443
password: "pwd"
udp: true
prepend-proxy-groups:
- name: "🏠 自建"
type: select
proxies: ["我的小鸡", "DIRECT"]注意:新加的節點不會自動進入訂閱裡已有的策略組。如果想讓它出現在「節點選擇」裡,需要覆蓋那個組的定義,或者用 Mihomo 的 include-all 讓組自動收編。
四、全局效能最佳化
unified-delay: true # 统一延迟计算,测速更可比
tcp-concurrent: true # 多 IP 域名并发握手
find-process-mode: strict # 启用 PROCESS-NAME 规则
global-client-fingerprint: chrome # TLS 指纹伪装成 Chrome
profile:
store-selected: true # 记住你手动选的节点
store-fake-ip: true # 缓存 fake-ip 映射,重启后不丢store-selected: true 很實用——不加的話每次重載設定,手動選的節點都會回到預設值。
五、廣告攔截
rule-providers:
my-reject:
type: inline
behavior: domain
payload:
- "+.doubleclick.net"
- "+.googlesyndication.com"
- "+.adservice.google.com"
prepend-rules:
- RULE-SET,my-reject,REJECT六、BT / PT 流量強制直連
很多服務商禁止 BT 流量,走代理可能導致封號:
prepend-rules:
- PROCESS-NAME,qbittorrent.exe,DIRECT
- PROCESS-NAME,Transmission.exe,DIRECT
- PROCESS-NAME,aria2c.exe,DIRECT
- DST-PORT,6881-6889,DIRECT需要配合 find-process-mode: strict 才能讓行程規則生效。
七、開啟網域嗅探
有些流量到達時只有 IP 沒有網域(比如某些直接連 IP 的用戶端),嗅探能從 TLS 握手裡還原出網域,讓規則重新可用:
sniffer:
enable: true
force-dns-mapping: true
parse-pure-ip: true
sniff:
HTTP:
ports: [80, 8080-8880]
override-destination: true
TLS:
ports: [443, 8443]
QUIC:
ports: [443, 8443]
skip-domain:
- "+.push.apple.com"
- "+.apple.com"合併順序與衝突
如果全局擴充和單訂閱擴充都寫了 prepend-rules,兩邊的規則都會生效,單訂閱的排在更前面。
偵錯擴充設定
看合併後的實际設定
Clash Verge 會把最終生效的設定寫到一個執行時檔案裡。訂閱卡片 ⋯ → 打開檔案 看到的是原始訂閱;要看合併後的結果,去設定目錄下找 clash-verge.yaml 或 runtime.yaml(版本不同名字略有差異)。
搜索你加的那條規則,能找到就說明合併成功了。
設定載入失敗怎麼辦
出錯時先把擴充設定內容全部清空,確認訂閱本身能載入,然後一段一段加回去定位問題。
關於 Script(腳本模式)
除了 Merge,部分版本還支援用 JavaScript 動態處理設定:
function main(config) {
// 給所有策略組加上 DIRECT 選項
config["proxy-groups"].forEach(g => {
if (g.type === "select" && !g.proxies.includes("DIRECT")) {
g.proxies.push("DIRECT");
}
});
// 插入一條規則
config.rules.unshift("DOMAIN-SUFFIX,example.com,DIRECT");
return config;
}腳本模式能力更強,但也更容易寫出問題——一個異常會導致整份設定載入失敗。能用 Merge 解決的就別用 Script。
小結
- 永遠不要直接改訂閱下載的檔案,用擴充設定
prepend-rules是修正分流的標準手段,優先級最高- 頂層欄位是整段覆蓋,寫
dns就要寫完整 store-selected: true建議加上,避免每次重載丟失手動選擇- 策略組名必須和訂閱完全一致,包括 emoji
相關文件
把一份 Clash / Mihomo 設定從頭到尾拆開講:連接埠、模式、DNS、proxies、proxy-groups、rules、rule-providers 的作用與寫法,附一份可直接使用的最小設定。
每種策略組的實际行為、適用場景和關鍵參數,附帶一套可直接抄的分組結構,以及 Mihomo 特有的 include-all 與 filter 用法。
url-test 的測速原理、unified-delay 的作用、為什麼顯示的延遲和 ping 值對不上,以及三個關鍵參數的取值建議與副作用。