先釐清用戶端、核心與設定檔

遇到「訂閱匯入成功,節點卻無法使用」時,先別急著更換訂閱。圖形介面用戶端負責管理訂閱、顯示介面及系統設定;核心則負責解析設定檔、建立代理連線與執行分流。介面顯示了節點名稱,不代表後端核心支援該節點使用的協定。排查時應先查看用戶端記錄中的核心名稱與版本,而不只是視窗顯示的用戶端版本。

mihomo 是原 Clash Meta 專案更名後的核心,沿用 Clash 設定體系並持續擴充。談到「原版 Clash」時,也要區分過去的開源核心與閉源 Premium 核心:兩者功能並不完全相同,尤其是規則提供器與 TUN。若把兩者混為一談,就容易誤以為「舊版 Clash 完全沒有規則集」等錯誤結論。

比較對象需要確認的差異遷移時的影響
原版開源 Clash歷史開源分支支援的協定與設定能力不能直接套用 mihomo 的欄位集合
Clash Premium歷史上的閉源增強版,曾提供規則集、TUN 等功能部分功能概念相近,但欄位與行為仍須重新確認
mihomo原 Clash Meta,擴充協定、規則與網路接管能力保留許多常用寫法,但並非所有舊設定都能原樣執行

若直接執行獨立核心,可用 mihomo -v 查看版本。使用圖形介面用戶端時,請在核心資訊或啟動記錄中確認實際載入的執行檔;升級介面程式,不代表已切換至預期的核心。

新增協定:節點能否使用的第一道關卡

相較歷史上的原版 Clash,mihomo 的一項直接改進是支援更多代理協定及其傳輸組合,例如 VLESS、Hysteria2、TUIC。這些並非同一協定的不同名稱,也無法只靠修改設定中的 type 互相轉換。伺服器採用哪種協定,用戶端就必須依照該協定填寫驗證、傳輸與 TLS 參數。

VLESS 與 REALITY 須分開理解

VLESS 是代理協定,REALITY 則是相關連線可採用的安全機制,兩者並非同義詞。VLESS 節點可能使用一般 TLS,也可能採用 REALITY;不同組合還可能涉及 network、servername、flow、reality-opts 等欄位。請依伺服器提供的參數設定,不要看到 VLESS 就自行加入 REALITY 設定。

  • UUID:用於設定 VLESS 使用者身分,不能以其他協定的密碼替代。
  • 伺服器名稱:servername 與 TLS 握手有關,填錯可能造成憑證或握手錯誤。
  • REALITY 參數:公鑰、短 ID 等必須與伺服器端相符;節點名稱相同不代表參數一致。
  • 傳輸方式:TCP、WebSocket、gRPC 等設定須在連線兩端一致,不能只修改其中一個欄位。

Hysteria2 與 TUIC 仰賴 UDP 連線

Hysteria2 和 TUIC 使用以 QUIC 為基礎的傳輸方式,連線至伺服器時需要可用的 UDP 通道。即使目前網路能開啟一般 HTTPS 網頁,也不代表這類節點一定連得上。此時應依據記錄檢查逾時、驗證與 TLS 錯誤,而非反覆切換規則模式。

第一代 Hysteria 與 Hysteria2 也不能混用。轉換訂閱時,若將第二代節點輸出為第一代類型,或遺漏必要的驗證參數,改用其他策略組也無法修復。最穩妥的做法是選用訂閱服務明確提供的 mihomo 相容設定,並確認產生的節點類型。

規則集:重複使用規則並掌握比對順序

rule-providers 可將一組規則作為獨立資源管理,再透過 RULE-SET 在主要規則中引用。這並非 mihomo 首創;歷史上的 Clash Premium 也支援類似功能。mihomo 持續擴充這套體系的格式與比對能力,實際可用欄位仍取決於正在執行的核心版本。

先分清三種規則類型

  • domain:用於網域項目,不要將完整的 DOMAIN-SUFFIX,example.org 當成一般網域直接填入。
  • ipcidr:用於 IP 網段,例如 192.168.0.0/16。
  • classical:使用包含規則類型的項目,例如 DOMAIN-SUFFIX,example.org。

以下是本機規則集範例,不含代理節點。請將第一段合併至現有設定,並依核心實際工作目錄解析路徑,確認該目錄中有第二段所示的檔案。這個範例只示範引用方式,不能取代完整的訂閱設定。

rule-providers:
  local-direct:
    type: file
    behavior: classical
    format: yaml
    path: ./rules/local-direct.yaml

rules:
  - RULE-SET,local-direct,DIRECT
  - MATCH,DIRECT

rules/local-direct.yaml 檔案內容如下,兩個項目分別比對保留的示例網域與私有網段:

payload:
  - DOMAIN-SUFFIX,example.org
  - IP-CIDR,192.168.0.0/16,no-resolve

實際遷移時應保留自己的最終策略,不能照抄範例中的 MATCH,DIRECT,再期待流量經由代理傳輸。規則通常由上而下比對;若將範圍過廣的直連規則放在前面,後續代理規則就沒有機會生效。引用的策略組名稱也必須確實存在,大小寫與空格都須一致。

規則集格式不能任意互換

mihomo 支援的 MRS 二進位規則格式有特定用途,主要適用於 domain 和 ipcidr 類型,不能只把任意 classical 檔案改副檔名就拿來使用。遠端規則集的 interval 以秒為單位,例如 86400 代表一天;這是規則資源的更新間隔,與用戶端訂閱 Profile 的更新週期不同。

TUN 強化:擴大接管範圍,也增加排查層次

系統代理主要影響會主動遵循代理設定的應用程式;TUN 則透過虛擬網路介面與路由接管更多 IP 流量,適合處理不讀取系統代理設定的程式。歷史上的 Premium 也支援 TUN,因此不能簡化成「舊版沒有、新版才有」。mihomo 的重點在於持續維護 TUN 實作、提供網路堆疊選擇,以及支援搭配路由與 DNS 的設定能力。

網路堆疊、路由與 DNS 是三件事

設定項目主要用途排查重點
tun.stack選擇 system、gvisor 或 mixed 等支援的處理方式依目前核心與系統的支援狀況為準,不要只看名稱判斷快慢
tun.auto-route自動設定流量進入 TUN 所需的路由確認是否與現有 VPN、容器網路及自訂路由衝突
tun.auto-detect-interface自動識別對外網路介面檢查多張網卡或網路切換時,是否選到正確的出口
tun.dns-hijack接管符合條件的傳統 DNS 請求不能因此認定應用程式內的 DoH 也會自動受到接管

在 Linux 下建立 TUN 裝置、修改路由都需要相應權限。圖形介面用戶端可能透過已安裝的特權服務執行這些操作;獨立核心則須自行處理權限與服務管理。遇到權限不足時,請先確認服務狀態、記錄,以及 /dev/net/tun 是否可用;不要反覆切換節點來排查裝置建立失敗的問題。

以下僅列出常見的 TUN 設定片段,須合併至既有的 DNS、節點與規則設定後再測試。這段設定不包含完整的 DNS 監聽設定,也不代表所有裝置都適合直接啟用自動路由。

tun:
  enable: true
  stack: mixed
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - any:53

設定相容性:能解析不代表行為一致

常見的 proxies、proxy-groups、rules 等結構依然熟悉,但遷移不能只是複製文字。舊欄位可能已有建議用法的變更;新欄位也可能遭舊核心拒絕或忽略。即使語法檢查通過,仍須實際確認 DNS、策略組選擇與程序比對結果。

啟動流量接管前,先驗證設定檔

mihomo -v
mihomo -t -f ./config.yaml

第二條指令用於檢查設定,不是完整的網路連線測試。檢查通過後,仍須確認節點握手、DNS 解析與分流結果。若使用圖形介面用戶端,請留意它可能在啟動前合併或覆寫訂閱內容;手動檢查的原始 YAML,可能與實際交給核心執行的設定檔不同。

  1. 確認監聽連接埠:例如預計使用 mixed-port: 7890,請確認瀏覽器或系統代理也指向本機的 7890,而非舊設定中的其他連接埠。
  2. 確認控制介面:external-controller 與代理連接埠用途不同。若設定為 127.0.0.1:9090,9090 是管理介面,不是瀏覽器連線使用的 HTTP 代理連接埠。
  3. 確認訂閱內容:只有節點清單的訂閱,不一定包含策略組、DNS 與規則。如何補上這些內容,須查看用戶端的設定合併機制。
  4. 確認本機覆寫:自訂規則、連接埠與 DNS 應放在用戶端提供的持久化覆寫機制中;直接修改遠端訂閱檔案,可能在更新時遭到覆蓋。

DNS 與程序規則須分別驗證

fake-ip 與 redir-host 是 DNS 處理模式,不是代理模式。切換核心時若同時變更 DNS 模式、上游伺服器與 TUN 開關,就很難判斷問題出在哪一層。建議先沿用原本的 DNS 設定,確認基本連線正常後再逐項調整。

程序名稱、程序路徑等規則,也取決於系統支援、核心權限及能否正確取得連線資訊。即使規則設定正確,也可能因為無法識別程序而未命中。排查時請查看連線記錄中的程序資訊與命中規則;不要把所有未命中情況都歸咎於規則順序。

遷移驗證:每次只變更一個變數

遷移的目標是確認哪些能力獲得補足,以及現有設定是否維持預期行為。建議依照以下順序逐步驗證,每一步都記錄結果再進行下一步,比一次啟用所有強化選項更容易找出問題。

  1. 備份:保存原有 Profile、本機規則、覆寫設定,以及目前使用的連接埠與 DNS 設定。訂閱網址可能包含存取憑證,請勿將完整內容貼到公開記錄中。
  2. 基本代理:先關閉 TUN,使用確認可用的節點測試本機 7890 代理入口,排除協定與驗證錯誤。
  3. 驗證規則:分別造訪應直連與應經代理連線的網站,檢查連線記錄中的命中規則及最終策略,不要只看網頁是否能開啟。
  4. 載入規則集:確認 provider 的載入狀態;檔案路徑錯誤、下載失敗與項目格式錯誤是不同問題,應依記錄分別處理。
  5. TUN 接管:最後才啟用 TUN,測試不遵循系統代理的應用程式,並檢查區域網路存取、其他 VPN 與網路切換。
  6. 更新訂閱:手動更新一次,確認自訂設定仍然保留,再安排自動更新。

是否值得遷移,主要取決於實際需求:若訂閱包含 VLESS、Hysteria2 等節點,或需要更細緻的規則與持續維護的 TUN 功能,mihomo 的優勢就相當明確。若現有連線異常,仍應先分辨是節點故障、設定錯誤或系統網路衝突。更換核心能補足功能缺口,卻不能取代對伺服器參數與本機路由的檢查。

欄位與規則的詳細說明,請參閱核心與設定參考;首次設定虛擬介面時,請依照TUN 模式教學逐項確認權限與接管範圍。