mihomo
內核與客戶端當前 Clash 生態的主力核心,由社群在 Clash.Meta 的基礎上延續維護。相比原版核心,補齊了 VLESS、Hysteria2 等新協議,並提供更完整的 TUN 實作與 Geosite 支援。本站下載頁收錄的 GUI 客戶端多數都內建 mihomo,選擇客戶端時留意其核心版本即可。
glossary(7) · 26 entries
設定檔、客戶端介面與排錯日誌裡反覆出現的名詞,按五個分類逐條解釋。每個術語卡都有獨立錨點,可直接複製網址列連結分享;讀教學或手冊時遇到陌生概念,回來這一頁對照即可。
01 / core & clients
先分清「核心」與「客戶端」:核心負責收發流量與匹配規則,客戶端負責給核心套上圖形介面。生態裡這兩層經常被混著稱呼,理清了這一層,後面很多問題都好定位。
當前 Clash 生態的主力核心,由社群在 Clash.Meta 的基礎上延續維護。相比原版核心,補齊了 VLESS、Hysteria2 等新協議,並提供更完整的 TUN 實作與 Geosite 支援。本站下載頁收錄的 GUI 客戶端多數都內建 mihomo,選擇客戶端時留意其核心版本即可。
用 Go 編寫的規則式代理核心,定義了沿用至今的 YAML 設定格式,專案已於 2023 年停止更新。如今說「Clash」,更多指圍繞這套設定格式形成的整個生態,而非那個具體的核心程式;現役核心以 mihomo 為主。
在核心之上封裝圖形介面的桌面或行動應用程式,例如 Clash Verge Rev、Clash Plus、FlClash。客戶端負責訂閱管理、節點切換、系統代理與 TUN 開關等互動,底層的流量收發和規則匹配仍由核心完成。排錯時要先分清問題出在介面層還是核心層。
基於 Tauri 的跨平台桌面客戶端,內建 mihomo 核心,提供 Windows、macOS 與 Linux 版本。Linux 側有 deb 與 rpm 兩種安裝包,涵蓋 Debian 系與 Red Hat 系發行版,是 Linux 桌面環境下的常見選擇。
macOS 平台的選單列客戶端,由早期的 ClashX 換用 Meta 系核心演化而來,介面極簡、常駐選單列。專案目前已停止維護,既有安裝仍可運行,但不再取得功能更新,新用戶建議選擇仍在維護的客戶端。
02 / protocols
訂閱裡每個節點都對應一種協議。協議決定了流量如何加密與偽裝,也決定了它需要哪一代核心支援——遇到「不支援的 type」這類錯誤訊息,先來這裡查協議歸屬。
輕量加密代理協議,結構簡單、效能開銷低,是生態裡最早被廣泛支援的協議之一。Clash 設定中 type 寫作 ss,常見加密方式為 aes-128-gcm 與 chacha20-ietf-poly1305,新舊核心均可使用。
V2Ray 專案設計的傳輸協議,依賴 UUID 做身分鑑權,自帶時間校驗,本機時間偏差過大會導致連線失敗。可搭配 WebSocket、gRPC 等多種傳輸層,再疊加 TLS 加密,組合形態相當多元。
把代理流量偽裝成標準 HTTPS 的協議,必須運行在具有效憑證的 TLS 之上,通常監聽 443 埠。因為交握與傳輸都與一般網頁瀏覽一致,流量特徵上更難被識別,設定裡的 sni 欄位需與憑證網域相符。
VMess 的精簡後繼者,去掉了協議內建加密,把安全性完全交給外層的 TLS 或 REALITY,開銷更低。原版 Clash 核心不支援該協議,訂閱裡含 VLESS 節點時必須使用 mihomo 系核心的客戶端。
基於 QUIC 的代理協議,針對高丟包、高延遲連線做了壅塞控制優化,弱網環境下的吞吐表現突出。底層走 UDP,途中防火牆需放行對應埠口;同樣僅 mihomo 系核心支援。
03 / rules & routing
「哪些流量走代理、哪些直連」由規則系統決定。理解規則匹配順序與策略組的關係,是從「能用」到「用得順」的分水嶺。
設定檔裡自上而下逐條匹配的規則表,每條由「匹配類型,匹配值,策略」三段組成,如 DOMAIN-SUFFIX,example.org,PROXY。一旦命中即停止匹配,後面的規則不再生效,因此順序很重要;最後通常放一條 MATCH 規則兜底。
把多個節點組織成一個可選擇的群組。類型包括 select(手動選)、url-test(自動測延遲選最快)、fallback(故障轉移)與 load-balance(負載平衡)。規則的出口通常指向策略組而非單一節點,這樣換節點不必改規則。
按目標 IP 歸屬地匹配的規則類型,依賴客戶端本機的 GeoIP 資料庫。GEOIP,CN,DIRECT 是讓中國大陸 IP 直連的經典寫法。資料庫會過時,多數客戶端設定裡提供一鍵更新入口,存取歸屬判斷異常時先更新它。
按社群維護的網域分類庫匹配的規則類型,一條規則即可涵蓋整類網站,例如 GEOSITE,category-ads-all 常用於封鎖廣告網域。mihomo 原生支援,搭配 GeoIP 使用可以把手寫規則壓到很少。
把大量規則放進外部檔案,依 URL 訂閱並用 interval 欄位定時更新。設定主體裡只需一條 RULE-SET 引用,避免手動維護數千行規則;社群有多套持續更新的公開規則集可直接引用。
04 / network & ports
流量如何進入核心、網域如何解析、延遲數字代表什麼——這一組術語涵蓋代理連線上的網路層概念,也是排查「開了代理卻沒生效」時最常查的部分。
核心建立一塊虛擬網卡,在網路層接管系統全部流量的運作方式,可以涵蓋不遵循系統代理設定的程式與命令列工具。Linux 下需要授予相應權限或以特權方式運行核心,通常搭配 auto-route 自動接管路由表。
作業系統層級的 HTTP/SOCKS 代理設定,客戶端開啟後把桌面環境的代理指向本機監聽埠口(如 127.0.0.1:7890)。只有主動遵循該設定的應用程式才會走代理,瀏覽器基本都遵循,不少命令列工具則不認——這正是 TUN 模式存在的原因。
DNS 運作模式之一,由 enhanced-mode 欄位控制。核心對網域查詢回傳保留網段的虛擬位址(預設 198.18.0.0/16),流量到達後直接按網域匹配規則,省去一次真實解析,回應更快也較不受 DNS 污染影響。個別依賴真實 IP 的程式需要設定 fake-ip-filter 排除。
代理開啟後,網域解析請求仍然發往本地電信業者 DNS 的現象。它會暴露存取意圖,解析結果也可能被污染導致連線異常。啟用 Fake-IP,或在設定的 dns 段指定 DoH/DoT 加密上游,都可以避免洩漏。
Windows 的 UWP 應用程式(市集應用程式)預設被系統禁止存取本機環回位址 127.0.0.1,因此連不上本地代理埠口,表現為其他程式正常、唯獨市集應用程式不走代理。需用環回豁免工具逐個放行;Linux 與 macOS 沒有這項限制。
客戶端對節點發起一次 HTTP 探測(常用 Google 的 generate_204 位址)所測得的往返耗時,單位毫秒。數值反映連通性與回應速度,與下載頻寬沒有直接對應關係;逾時或錯誤代表該節點目前不可用,而非單純「慢」。
05 / config fields
config.yaml 頂層的幾個關鍵欄位,決定了核心監聽在哪、誰能連進來、怎麼被外部面板控制。改設定之前,先確認自己動的是哪一個。
在同一個埠口上同時監聽 HTTP 與 SOCKS5 兩種代理協議的欄位,常見取值 7890。系統代理與瀏覽器擴充功能都指向這個埠口即可,省去分別設定 port 與 socks-port 的麻煩;埠口被占用時改這裡,並同步更新系統代理設定。
控制是否允許區域網路內其他裝置連入本機代理埠口。設為 true 並搭配 bind-address 後,同一網段的手機、電視盒子把代理指向這台機器的位址與埠口,即可共用它的 Clash 代理;公共網路環境下務必保持關閉。
核心對外暴露的 RESTful API 監聽位址,常設 127.0.0.1:9090。metacubexd、yacd 等 Web 面板透過它讀取節點清單、切換策略組、查看即時連線;配套的 secret 欄位用於設定存取密碼,監聽非本機位址時必須設定。
運行模式欄位,三個取值:rule 依規則表分流、global 全部流量走代理、direct 全部直連。日常保持 rule 即可;排查「某網站到底該不該走代理」時,可暫時切到 global 或 direct 做對比測試,定位後記得切回來。
Clash 設定檔採用的資料格式,靠縮排表達層級,只能使用空格、不能使用 Tab,冒號後必須留一個空格。訂閱匯入出現「解析失敗」時,相當一部分本質是 YAML 語法錯誤;用編輯器的 YAML 校驗功能可以快速定位出錯行號。