跳到主要內容

首頁 / 部落格 / 設定基礎

用 Merge 擴充訂閱設定,改了也不會被更新覆蓋

設定基礎2026-07-091688 字約 4 分鐘
用 Merge 擴充訂閱設定,改了也不會被更新覆蓋

想給訂閱加一條自己的規則,最直覺的做法是打開設定檔改一改。然後第二天訂閱自動更新,改動全沒了。

正確做法是用擴充設定(Merge):把你的改動單獨存一份,每次載入訂閱時自動合併進去。

機制是怎麼運作的

設定的合成過程下載訂閱原始 config.yaml讀取擴充設定你寫的 merge 檔案按規則合併prepend 插前面 append 加後面生成執行時設定核心實际使用的訂閱更新時重複此過程你的改動永遠保留
原始訂閱檔案始終不動,改動存在另一個檔案裡

在 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"

合併順序與衝突

最終設定的生成順序11. 訂閱原始設定作為基底22. 全局擴充設定對所有訂閱生效33. 單個訂閱的擴充設定只對這一份生效,優先級更高44. 介面上的臨時操作手動切換的節點等
後面的覆蓋前面的;prepend 類欄位是插入而不是覆蓋

如果全局擴充和單訂閱擴充都寫了 prepend-rules,兩邊的規則都會生效,單訂閱的排在更前面。

偵錯擴充設定

看合併後的實际設定

Clash Verge 會把最終生效的設定寫到一個執行時檔案裡。訂閱卡片 ⋯ → 打開檔案 看到的是原始訂閱;要看合併後的結果,去設定目錄下找 clash-verge.yamlruntime.yaml(版本不同名字略有差異)。

搜索你加的那條規則,能找到就說明合併成功了。

設定載入失敗怎麼辦

擴充設定常見錯誤YAML 縮進用了 Tab —— 必須用空格引用的策略組名和訂閱裡不一致(emoji、空格、大小寫)prepend-rules 寫成了 prepend_rules(下劃線)規則裡的策略名不存在 —— 會導致整份設定載入失敗dns 段只寫了一半 —— 整段覆蓋會丟掉原有設定

出錯時先把擴充設定內容全部清空,確認訂閱本身能載入,然後一段一段加回去定位問題。

關於 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

相關:YAML 結構詳解規則類型速查


相關文件