為什麼要升級到 Clash.Meta

Clash 最初由 Dreamacro 維護的版本(通常稱為「Clash Premium」或「原版 Clash」)在 2023 年底停止了公開更新與維護。彼時整個社群面臨一個選擇:是繼續沿用停更的老核心,還是遷移至在其基礎上持續活躍開發的分支版本?

Clash.Meta(也稱 mihomo)正是在這一背景下成為社群主流。它不僅保留了原版 Clash 完整的規則體系和配置語法,還引入了大量新協議支援、效能優化與安全增強,吸引了大批開發者和用戶遷移。截至本文發佈時,Clash.Meta 的 GitHub 倉庫已累計數萬顆 Star,是目前迭代最活躍的 Clash 系核心之一。

名稱說明:Clash.Meta 項目已於 2024 年初正式將倉庫更名為 mihomo,但社群仍廣泛使用「Clash.Meta」這一叫法。本文兩個名稱混用,均指同一項目。

如果您仍在使用舊版 Clash 核心,繼續使用並非不可行,但您會逐漸面臨以下困境:新協議(如 Hysteria2、VLESS Reality、Tuic v5)無法接入;安全漏洞得不到修補;與新版 GUI 用戶端的相容性越來越差;遇到問題難以在社群獲得支援。遷移到 Clash.Meta 是一次「值得的麻煩」——絕大多數設定都可以原樣複用,切換成本遠比想像中低。

Clash.Meta 與舊版核心差異一覽

在開始遷移之前,先對兩者的差異有一個整體認知,可以幫助您提前判斷哪些設定需要調整、哪些可以直接沿用。

特性 舊版 Clash Premium Clash.Meta / mihomo
基礎規則語法 ✓ 支援 ✓ 完全相容
Shadowsocks / VMess ✓ 支援 ✓ 支援
VLESS / Reality ✗ 不支援 ✓ 支援
Hysteria2 ✗ 不支援 ✓ 支援
TUIC v5 ✗ 不支援 ✓ 支援
TUN 模式 △ 有限支援 ✓ 完整 TUN + 系統 DNS
活躍維護 ✗ 已停更 ✓ 持續迭代
安全漏洞修復 ✗ 停止 ✓ 定期修復

從表中可以看出,Clash.Meta 在協議支援和安全性上具有明顯優勢,而基礎配置語法保持高度相容。這意味著您的現有設定檔大部分可以直接複用,只有少數字段需要小幅調整。

升級前準備:備份與環境確認

任何核心遷移都應從完整備份開始。以下是正式操作前必須完成的檢查清單:

  1. 備份當前設定檔:將 config.yaml(以及任何附屬的規則文件、Provider 文件)複製到安全位置,建議同時儲存到雲端或版本控制系統。
  2. 記錄當前工作狀態:截圖或記錄當前代理連線情況、延遲測試結果,方便遷移後對比。
  3. 確認作業系統與架構:Clash.Meta 提供 Windows(amd64/arm64)、macOS(amd64/arm64)、Linux 多種構建版本,需下載對應版本。
  4. 檢查管理面板版本:若使用 Yacd、MetaCubeX 等 Web 面板,建議同步更新至最新版,舊版面板可能與新核心 API 存在相容問題。
注意:如果您使用的是 Clash for Windows、Clash Verge Rev 等 GUI 用戶端,用戶端本身通常負責核心管理,只需在用戶端內切換核心版本,無需手動替換執行檔。本文重點面向直接使用命令列核心的用戶。

設定檔遷移詳解

這是整個遷移過程中最核心也是最需要仔細對照的環節。好消息是,Clash.Meta 對舊版設定的相容性相當好,絕大多數字段無需改動即可直接使用。需要關注的主要集中在以下幾個方面:

1. 頂層欄位調整

Clash.Meta 對部分頂層欄位做了重新命名或擴展。以下是常見的變化:

config.yaml — 舊版寫法
external-controller: '127.0.0.1:9090'
secret: ''
log-level: info
allow-lan: false
mode: rule
config.yaml — Clash.Meta 推薦寫法(新增欄位)
external-controller: '127.0.0.1:9090'
external-ui: './ui'        # 本地 Web 面板目錄(可選)
secret: ''
log-level: info
allow-lan: false
mode: rule
ipv6: false                # 建議明確聲明
unified-delay: true        # 使用更準確的延遲測量方式
tcp-concurrent: true       # 並發 TCP 連線(新特性)

2. DNS 配置遷移

DNS 設定是遷移中最容易出問題的部分。Clash.Meta 引入了更細粒度的 DNS 分流控制,舊版簡單的 DNS 設定在新版中依然有效,但推薦按以下結構更新以獲得更好的防洩漏效果:

推薦的 Clash.Meta DNS 配置結構
dns:
  enable: true
  ipv6: false
  listen: '0.0.0.0:1053'
  enhanced-mode: fake-ip       # 或 redir-host,根據需求選擇
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter:
    - '*.lan'
    - 'localhost.ptlogin2.qq.com'
  default-nameserver:
    - 223.5.5.5
    - 119.29.29.29
  nameserver:
    - 'https://doh.pub/dns-query'
    - 'https://dns.alidns.com/dns-query'
  fallback:
    - 'tls://8.8.8.8:853'
    - 'tls://1.1.1.1:853'
  fallback-filter:
    geoip: true
    geoip-code: CN
    ipcidr:
      - 240.0.0.0/4

3. 代理節點語法變化

Clash.Meta 在代理節點的欄位上做了少量擴展,舊版節點定義一般無需修改。但如果您想使用新協議,需要按照 Clash.Meta 文件添加對應欄位:

Hysteria2 節點範例(Clash.Meta 專屬語法)
proxies:
  - name: 'HY2-節點-香港'
    type: hysteria2
    server: example.com
    port: 443
    password: 'your-password-here'
    sni: example.com
    skip-cert-verify: false
    up: '50 Mbps'
    down: '200 Mbps'

4. 規則與 Rule Provider

規則語法與 Rule Provider 格式完全相容,舊版規則集可直接沿用。Clash.Meta 額外支援 RULE-SET 引用遠端規則集(需配合 rule-providers 欄位使用),推薦將高頻更新的網域規則改為 Provider 形式管理,方便後續統一維護。

常見錯誤與修復方案

以下是遷移後用戶最常回饋的錯誤類型,以及對應的排查思路:

報錯:field xxx is not supported

通常發生在設定檔包含 Clash.Meta 已廢棄或尚未實作的欄位時。解決方法:查閱 mihomo 官方文件,確認該欄位的當前狀態;若已廢棄,直接刪除或替換為對應新欄位。

報錯:DNS resolve failed

多數情況下由 DNS 設定不完整或 fake-ip-filter 列表缺失引起。確保 enhanced-mode 已正確設置,並為常用的國內服務網域添加 fake-ip 過濾規則(如 LINE、蝦皮、街口支付等)。

報錯:TUN 模式下區域網路設備無法連網

這是 TUN 模式下最常見的問題。檢查 tun.auto-routetun.auto-detect-interface 是否均設為 true;同時確認系統防火牆未阻斷 TUN 網路卡的流量轉發(Windows 下需以管理員身份執行,macOS 下需授予系統擴充功能權限)。

報錯:proxy [xxx] not found

規則引用了不存在的代理組名稱。檢查 proxy-groups 中的組名是否與規則部分的引用完全一致(區分大小寫)。

報錯:Web 面板無法載入

若使用外置 Web 面板(如 MetaCubeX),檢查 external-ui 欄位是否指向正確的本地目錄;若使用 CDN 版本,確認網路可正常訪問 CDN 資源;同時檢查 external-controller 地址是否與面板填寫的 API 地址一致。

TUN 模式配置與效能優化

TUN 模式是 Clash.Meta 相比舊版提升最顯著的功能之一。透過在系統層面建立虛擬網路卡,TUN 模式可以接管所有 TCP/UDP 流量,實現真正的「全域代理」,無需對每個應用程式單獨配置代理設定。

推薦的 TUN 模式設定(config.yaml)
tun:
  enable: true
  stack: mixed          # mixed = TCP 用 gVisor,UDP 用 system,效能與相容性均衡
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - 'any:53'          # 劫持所有 DNS 請求,防止 DNS 洩漏
  device: Meta          # TUN 網路卡名稱(可自定義)

關於 stack 模式的選擇:

效能優化建議

在高並發場景(如 P2P 下載、大量 API 請求)下,以下設定調整可以明顯提升吞吐量:

高並發場景優化設定
tcp-concurrent: true          # 並發 TCP 連線建立
unified-delay: true           # 統一延遲計算,避免測速誤差
keep-alive-interval: 30       # TCP Keep-Alive 間隔(秒)

profile:
  store-selected: true        # 持久化已選節點
  store-fake-ip: true         # 持久化 fake-ip 映射

升級後驗證與回退方案

完成設定檔遷移後,建議按照以下步驟系統性地驗證遷移效果,而不是僅憑「感覺」判斷是否成功:

  1. 基礎連通性驗證:訪問幾個代表性的國內與海外網站,確認分流規則是否按預期工作(國內直連、海外走代理)。
  2. DNS 洩漏檢測:訪問 dnsleaktest.com 或類似工具,確認 DNS 請求沒有繞過代理直接暴露給電信業者。
  3. 延遲與速度測試:在 Clash 面板中執行節點延遲測試,對比遷移前後是否有明顯變化;進行實際下載速度測試確認流量正常轉發。
  4. 協議功能驗證:若使用了 Hysteria2、VLESS Reality 等新協議,單獨測試這些節點的連通性。
💡 回退方案:遷移前已備份的舊設定檔和舊核心執行檔是您的安全網。若遷移後出現無法解決的問題,直接將核心文件換回舊版並載入備份設定,即可恢復原有狀態。建議在遷移後的前 72 小時內保留回退能力,穩定執行後再徹底清理舊文件。

選擇一款真正好用的用戶端

完成核心遷移後,許多用戶會意識到「好的核心 + 好的用戶端」才是完整的使用體驗。Clash.Meta 核心本身只是後端引擎,日常使用還需要一個介面友善、功能完備的 GUI 用戶端來管理配置、切換節點、查看日誌。

然而,目前市面上的主流 Clash 用戶端參差不齊,存在以下普遍痛點:

Clash V.CORE 正是為了解決這些問題而設計的。它內建最新版 Clash.Meta 核心,支援 Windows、macOS、Linux、Android、iOS 全平台,統一了桌面端與行動端的操作邏輯;核心版本跟隨上游持續更新,不再需要手動遷移;精心設計的介面讓節點管理、規則編輯、日誌查看等操作一目了然。對於剛完成核心遷移的您,不妨試試一個能讓核心充分發揮實力的用戶端。