1 為什麼「直接改訂閱產生的檔案」很容易白做工
機場提供的連結本質上是遠端設定快照:用戶端每次執行訂閱更新,都會重新下載、解析,並覆寫本機那份由訂閱衍生的設定。若您曾在該檔案裡手動改過 proxies 名稱、調整 rules 順序,或替節點加上備註,下一次更新時,這些變更很可能全部消失。這不是程式錯誤,而是設計上「訂閱=權威來源」的預期行為。
因此,長期可維護的做法是:把機場給什麼就原樣載入,把「我個人要怎麼顯示、要多哪些規則」放到另一層——也就是本文主題的覆寫與 mixin。這與「先把非 Clash 連結轉成 YAML 再匯入」是不同層次的問題;若您仍卡在格式轉換,可先完成訂閱轉換,再回到覆寫流程,會比較不會混淆「轉檔」與「合併設定」。
記住分工:訂閱檔負責節點清單,覆寫檔負責您的規則與顯示偏好。兩者分離,更新訂閱才不會踩掉您的自訂內容。
2 「覆寫」與 mixin:核心在「合併」而非「改原檔」
在 Clash Meta/Mihomo 生態中,mixin 通常指「額外載入一份(或多份)YAML,並與主設定合併」的機制。合併後生效的是最終設定,而遠端訂閱仍可獨立更新;只要您的個人調整放在 mixin 或覆寫專用的區段,就不會與機場推送的內容互相覆蓋同一個編輯位置。
另一組常見關鍵字是 prepend-rules 與 append-rules:兩者讓您在不手動插入整份 rules 陣列的前提下,把規則加到「最前面」或「最後面」。前插適合公司內網、區網或必須直連的網域;後綴則適合在訂閱規則之後補一條保底 MATCH,或把少數漏網流量導向特定策略組。這正是規則追加在工程上的具體寫法。
站內文件也整理了規則類型對照表,需要查 DOMAIN-SUFFIX、RULE-SET 等語意時,可一併參考Clash 使用說明中的規則章節,再回來把片段貼進覆寫區。
3 Clash Verge Rev:用「覆寫(Override/Mixin)」集中管理自訂內容
Clash Verge Rev 對一般使用者最友善的做法,是使用圖形介面中的覆寫功能(介面上常標示為 Override 或 Mixin,依版本略有差異)。在此處貼上的 YAML 片段,通常會由用戶端以「與訂閱合併」的方式套用,而不去改動遠端下載的原始訂閱檔。這樣一來,您按「更新訂閱」時,機場節點會刷新,但覆寫裡的自訂規則、額外 proxy-groups 或 DNS 相關片段,仍會保留在覆寫層。
實務上建議:覆寫裡只放您確定要長期維護的內容,例如內網直連、特定遊戲或串流網域、實驗用策略組;訂閱內建的策略組名稱若與您的規則互相引用,請在每次大更新後快速檢查節點名是否仍一致。若您已在使用url-test/fallback 策略組,覆寫層也很適合放這些群組定義,讓訂閱只負責提供節點名稱清單。
# Example — paste in Verge Rev Override (adjust proxy group name)
prepend-rules:
- DOMAIN-SUFFIX,intranet.example,DIRECT
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
append-rules:
- MATCH,PROXY
prepend-rules 會比訂閱展開後的大部分規則更早匹配;append-rules 則落在後方。若您發現某流量「怎麼改規則都不生效」,先確認是否被更前面的規則或 Rule Provider 命中。
4 純設定檔思路:prepend-rules/append-rules 與 Rule Provider
若您不使用圖形介面、而是自行維護 config.yaml(例如 Linux 上的 Mihomo 服務),同樣可以在主設定中宣告 prepend-rules 與 append-rules,效果與覆寫精神一致:訂閱透過 proxy-providers 或遠端設定載入,個人規則則留在主檔或 mixin 檔。若分流規模較大,建議把大量網域改為 RULE-SET 或規則訂閱,細節可延伸閱讀ACL4SSR 與 Rule Provider,避免在覆寫裡手刻上千行。
撰寫時請注意:YAML 對縮排與全形標點非常敏感,錯一個空格就可能整份無法載入。建議在貼上覆寫或 mixin 後,立刻用用戶端的「重新載入」與日誌確認是否解析成功,再繼續堆疊規則。
5 想改「節點顯示名」:優先查 proxy-providers 的 override
使用者常想在節點名前加地區標籤或 emoji,以利辨識。若節點來自 proxy-providers,許多核心版本支援在提供者上設定 override(例如為名稱加上前綴/後綴;實際欄位名稱請以您使用的核心版本文件為準)。這類覆寫發生在訂閱展開為節點的階段,同樣不必直接改遠端 YAML 文字。
若機場每次更新會大幅更動節點命名,您的策略組或規則若綁死舊名稱,仍可能失效。此時應優先讓規則引用策略組名稱,讓節點變動侷限在群組內部;必要時再搭配 url-test 自動選線,減少手動重選。相關觀念與本文的覆寫流程是互補的。
# Example — proxy-provider override (keys vary by core version)
proxy-providers:
airport:
type: http
url: "https://example.com/subscribe-token"
path: ./providers/airport.yaml
interval: 86400
override:
additional-prefix: "[Home] "
6 mixin 檔案:把多段設定拆檔,便於備份與版本控管
當自訂內容變多,全部塞在單一覆寫框會難以閱讀。此時可在主設定使用 mixin 陣列指向本機其他 YAML 檔案,由核心依序合併。好處是:您可以用文字編輯器分檔管理「公司分流」「家用分流」「實驗規則」,甚至把不含敏感資訊的片段納入私人 Git 儲存庫;訂閱 URL 仍只放在機場欄位,兩者邊界清楚。
合併行為依欄位而異:簡單欄位可能被覆蓋,陣列型欄位則可能依實作合併或替換——這也是為什麼規則更推薦走 prepend-rules/append-rules 這類語意明確的管道。若合併結果不如預期,請以官方文件與實際日誌為準,逐步縮小每個檔案內容來排查。
# Example — main config snippet
mixin:
- ./mixins/local-rules.yaml
- ./mixins/my-groups.yaml
7 常見坑與建議排查順序
- 規則有寫但不生效:優先檢查匹配順序與 Rule Provider 是否更早命中;必要時暫時關閉某條規則對照日誌。
- 更新訂閱後策略組報錯:節點改名導致
proxy-groups內名稱對不上;以用戶端實際節點清單為準更新覆寫。 - 覆寫與訂閱都定義了同名鍵:依合併規則可能後者覆蓋前者或相反;建議避免同名衝突,或查核心文件確認優先順序。
- 以為 mixin 會「自動幫訂閱備份」:mixin 是設定合併,不是訂閱快照;重要變更仍應自行備份檔案。
8 總結
訂閱更新會刷新機場節點,但不必因此放棄個人化:mixin 與 覆寫把「遠端快照」和「本地偏好」拆開,透過 prepend-rules/append-rules 完成規則追加,再視需求用 proxy-providers 的 override 調整節點顯示名。Clash Verge Rev 的覆寫介面則讓這條路在桌面上更易實踐。把這套流程固定下來,您就能在保留機場更新的同時,長期維護自己的分流邏輯。
若您尚未安裝用戶端或需要與教學對齊的版本,建議從本站下載頁取得安裝包。相較手動改訂閱檔卻每次被覆蓋,使用覆寫與 mixin 的結構化流程,通常更省事、也更利於日後除錯。