mihomo 內核 · 規則分流參考站

Clash Verge官網 用戶端下載與設定參考

本站整理 mihomo 內核說明、訂閱匯入步驟與 規則分流寫法,五大平台用戶端與內核檔案的下載入口都集中在下載頁;初次使用依安裝、匯入訂閱、選擇模式、驗證連線四步走完即可。

永久免費 程式碼開源 中文說明 GPL-3.0 授權

設定抽屜

五個設定項,決定用戶端怎麼分流

mode、dns、tun、proxy-providers 與 external-controller 是設定檔中最常被改動的五個段落。左側切換可查看每一段解決什麼問題,右側是對應的 config.yaml 片段。

mode 決定內核拿到一條連線之後怎麼處理。rule 依規則表由上往下比對,命中哪一條就走該條對應的策略;global 把全部流量交給同一個出口,direct 相當於暫時關閉代理。日常維持 rule 即可,只有在判斷「是規則寫錯還是節點不通」時才切到 global 做對照。用戶端介面上的模式開關改的就是這一行,切回 rule 之後要確認策略組裡至少有一個可用節點,否則命中 PROXY 的連線會直接失敗。

mode: rule        # rule / global / direct
log-level: info
ipv6: false
規則模式全域模式直連模式分流順序

dns 段決定網域由誰解析、走哪條鏈路。enhanced-mode 設成 fake-ip 時,內核先回傳一個虛擬位址給應用程式,真實解析在代理鏈路裡完成,明文查詢不會出現在本機網路;設成 redir-host 則先解析再連線,相容性更好但更容易被中間設備看到。nameserver 填加密解析位址(DoH 或 DoT),fallback 用來接住被汙染的回應結果。改完這一段建議重新啟動內核,只重新載入設定有時不會重建解析快取。

dns:
  enable: true
  enhanced-mode: fake-ip
  nameserver:
    - https://223.5.5.5/dns-query
  fallback:
    - tls://1.1.1.1:853
fake-ipDoH網域解析DNS 外洩

tun 由內核建立一塊虛擬網卡,把系統層級的流量整體接管,不再依賴應用程式是否遵守系統代理設定。終端機指令、容器、遊戲用戶端這類不讀代理設定的程式,只有開啟 tun 之後才會走規則。開啟前先確認權限:Windows 需要以管理員身分執行,macOS 首次開啟會要求授權安裝網路元件。stack 選 gvisor 相容性最好,system 借用系統協定堆疊、吞吐量更高,但個別系統上會和防火牆衝突。不需要接管全域流量時保持關閉即可。

tun:
  enable: true
  stack: gvisor      # gvisor / system / mixed
  auto-route: true
  dns-hijack:
    - any:53
虛擬網卡系統代理gvisor全域接管

proxy-providers 把訂閱連結從 proxies 裡拆出來,交給內核依固定間隔取得,多個策略組可以共用同一份節點集合,訂閱換位址時只改這一處。health-check 決定可用性偵測的位址與間隔,偵測失敗的節點在策略組裡會被暫時跳過;path 指定快取檔案位置,取得失敗時內核繼續用上一次的快取,不會因為一次網路抖動就把節點清空。interval 的單位是秒,設得太短會被訂閱服務限流,一般從 3600 起。

proxy-providers:
  sub-a:
    type: http
    url: "https://example.com/api/v1/client/subscribe?token=xxxx"
    interval: 3600
    path: ./providers/sub-a.yaml
    health-check:
      enable: true
      url: https://www.gstatic.com/generate_204
      interval: 300
訂閱更新健康檢查節點過濾本機快取

external-controller 是內核對外開放的控制介面,用戶端介面、第三方面板與指令碼靠它讀取目前策略、切換節點、查看連線清單。GUI 用戶端啟動內核時會自動寫入這一行並產生隨機金鑰,手動部署內核時才需要自己指定。預設監聽 127.0.0.1:9090,只有本機能存取;要放到區域網路或伺服器上,必須同時設定 secret,否則同網段任何人都能改你的分流規則與節點選擇。

external-controller: 127.0.0.1:9090
secret: "your-password"
控制介面面板金鑰本機監聽

開源生態

內核、用戶端與規則集的維護界線

同一份設定檔可以被不同用戶端驅動,因為真正解析它的是內核。釐清三層各自負責什麼,更換用戶端或內核時就不必把規則重寫一遍。

用戶端與內核是兩層

mihomo 負責解析設定、建立連線、執行規則;Clash Verge Rev、FlClash 這類用戶端負責介面、訂閱管理與內核行程的啟停。同一個內核可以被不同用戶端驅動,設定檔格式一致,更換用戶端時把 profile 匯出再匯入即可,規則與策略組不需要重寫。

分支關係與設定相容性

原版 Clash 內核已經停止維護,社群在其設定格式上持續開發,形成 Meta 與 mihomo 這條分支,新增 VLESS、Hysteria2、TUIC 等協定支援,以及 rule-providers、proxy-providers 這類設定能力。目前仍在更新的用戶端基本上都以 mihomo 為內核,設定檔裡能寫哪些欄位,以 mihomo 的文件為準。

規則集是獨立維護線

分流規則被拆成網域、IP、行程等類型的清單檔案,由不同專案分別維護,內核透過 rule-providers 視需要取得。這樣更新規則不需要改動設定檔,用戶端只要保留參照即可。挑選規則集時看更新頻率與分類粒度,比看項目總數更有意義。

更新機制分三層

用戶端的更新分三層:介面、內核、訂閱與規則集。多數用戶端把內核當作可更換元件,設定裡能指定版本或手動替換二進位檔;訂閱與規則集則依各自設定的間隔定時取得。出現連線異常時,先確認三層的設定與時間是否對得上,再去看具體錯誤訊息。

常見問題精選

入門前最常遇到的四個問題

這裡收錄最常被問到的四則,完整的分類問答在常見問題頁,術語解釋在術語手冊。

訂閱更新失敗先檢查什麼

先確認訂閱連結本身能在瀏覽器裡開啟並回傳內容,再回到用戶端看更新日誌與時間戳記。多數失敗是連結過期、網域被本機 DNS 攔下,或訂閱服務暫時限流;把連結重新匯入一次,通常能排除快取與舊設定的干擾。

訂閱與節點疑難排解清單 →

用戶端顯示已連線但網頁打不開

依序查三個地方:dns 段是否啟用並指向加密解析、模式是否被切到 direct、連線日誌裡目標網域命中了哪條規則。三項都正常時,再換一個節點驗證是不是出口本身的問題。

連線異常排解步驟 →

rule 模式和 global 模式有什麼差別

rule 依規則表逐條比對,不同網域走不同出口;global 把全部流量交給同一個出口。模式只改變內核的處理方式,不影響節點本身,排解問題時切到 global 做對照最快。

術語手冊:模式與分流 →

自訂規則寫在設定檔的哪一段

寫在 rules 段,語法是「類型,比對內容,策略名稱」三個部分。規則多了可以拆成獨立的規則集檔案,用 rule-providers 引入,這樣更新規則不必改動主設定檔。

協定手冊:規則寫法 →

查看全部常見問題 →

下載 Clash