PROTOCOL REFERENCE

Clash 協議與核心技術參考

從協議設計、連線特徵、資源占用、行動裝置電量與訂閱相容性五個面向,比較 SS、VMess、Trojan、VLESS、Hysteria2 與 TUIC,並說明原版 Clash、Clash Meta 與 mihomo 的關係。

六類代理協議 mihomo 核心 行動端取捨 訂閱相容性

快速上手與系統查閱的分工

首次安裝、匯入訂閱、選擇代理模式和驗證連線,請先依照快速上手教學完成主要操作。本手冊適合已能正常使用客戶端、需要了解協議差異或處理相容性問題的使用者。需要安裝客戶端時請前往安裝包頁面;遇到連接埠、DNS、系統代理或啟動錯誤時,可繼續查看疑難排解

01 · DECISION MODEL

選擇協議先看限制,不看名稱新舊

協議、傳輸與客戶端是三個層次

在 Clash 客戶端中看到節點名稱時,名稱通常不能直接說明技術條件。真正決定連線行為的是協議類型、承載方式、加密或驗證參數,以及伺服器端實作。SS、VMess、Trojan、VLESS、Hysteria2 和 TUIC 屬於協議層;TCP、WebSocket、gRPC、HTTP/2、QUIC 等屬於傳輸或承載層;Clash Plus、Clash Verge Rev、FlClash、Clash Nyanpasu、Clash Meta for Android 等則是圖形客戶端。圖形客戶端負責匯入設定、切換策略和呼叫核心,最終能否識別某種協議,取決於客戶端內建的核心及其設定解析能力。

因此,不能把「某客戶端支援匯入訂閱」等同於「訂閱中的每一種節點都能執行」。訂閱可能成功下載並解析,但其中某些節點使用了目前核心不認識的傳輸參數;也可能節點能建立 TCP 連線,卻因驗證欄位、TLS 主機名稱或 UDP 設定不一致而無法完成握手。選擇時應從伺服器提供的完整參數出發,再確認客戶端和核心是否涵蓋這些欄位,而不是只比較節點名稱中的協議縮寫。

五個面向構成可重複使用的判斷架構

第一項是網路路徑。穩定的有線或 Wi-Fi 環境通常不需要過度追求複雜的壅塞控制,結構簡單的 TCP 協議更容易排查。高抖動、隨機丟包或頻繁切換基地台的行動網路,才更能展現基於 QUIC 的協議在連線遷移和丟包恢復方面的設計價值。第二項是裝置資源。桌上型電腦更重視吞吐量與相容性,手機還要考慮持續喚醒、背景保活、健康檢查和發熱。路由器與小型伺服器則受 CPU 架構、記憶體和並行連線數限制。

第三項是業務類型。網頁瀏覽由大量短連線和 DNS 查詢組成;影片和大型檔案更重視持續吞吐量;語音、即時協作和遊戲會產生 UDP 流量,對抖動比峰值頻寬更敏感。第四項是伺服器端可控程度。如果只能使用現成訂閱,應優先選擇訂閱中參數完整、客戶端已穩定識別的節點。如果可以同時調整伺服器端與客戶端,才適合比較壅塞控制、憑證、ALPN、UDP 中繼等更細節的選項。第五項是維護成本。參數越多,升級、遷移和跨客戶端重複使用時越容易出現欄位差異;可觀測、可回復的設定通常比理論上更快但難以定位的組合更適合日常使用。

判斷面向 優先確認的問題 常見誤區
網路路徑 丟包、抖動、NAT 變化是否頻繁 只憑一次測速決定長期協議
裝置資源 是否長期在背景執行,CPU 與電量是否受限 把桌面端結果直接套用到手機
流量類型 主要是短連線、持續下載還是即時 UDP 只比較峰值吞吐量
相容範圍 核心、訂閱轉換和伺服器端欄位是否一致 匯入成功就認為所有節點都可用
維護成本 是否有穩定的回復選項和明確的錯誤記錄 一次疊加過多實驗參數

先建立基準,再比較替代方案

可靠的選擇不是從六種協議同時測速開始。先挑選一個參數完整、運作穩定的節點作為基準,固定客戶端、核心、網路、DNS 與測試目標,只替換協議節點。觀察連線建立時間、持續傳輸、切換網路後的恢復、背景重新連線和記錄錯誤,而不是只記錄測速頁面的瞬時數字。行動端至少要分別測試前景連續使用、鎖定螢幕後台保持,以及 Wi-Fi 與行動網路切換,因為這三種狀態的排程策略不同。

也應保留規則模式與直連結果作為對照。某個網站變慢,可能是規則將資源分配到不同策略組,也可能是 DNS 回傳不同位址,不一定來自協議本身。先確認同一目標確實經過待測節點,再下結論。選擇的目標不是找出抽象意義上的「最快協議」,而是找到在目前路徑、裝置和維護條件下錯誤最少、恢復明確、長期波動可接受的組合。

02 · TCP FAMILIES

SS、VMess、Trojan 與 VLESS 的設計取捨

SS:結構精簡,依賴明確的加密方法

Shadowsocks 通常簡稱 SS。其核心思路是以較輕量的協議結構承載代理流量,透過預先共享的密碼和指定加密方法保護資料。現代設定應使用目前核心支援的 AEAD 方法,並確保伺服器端與客戶端的加密方法、密碼和連接埠完全一致。SS 本身欄位較少,匯入訂閱和跨客戶端遷移相對直接,記錄中的失敗原因也較容易沿著連接埠、密碼、加密方法和網路可達性逐項排查。

欄位少不代表所有 SS 節點表現都相同。伺服器端實作、加密演算法的硬體加速、UDP 中繼、外掛參數和底層網路都會影響結果。部分訂閱還會附帶 plugin 與 plugin-opts,用於增加額外承載層;如果目前核心不支援指定外掛,即使基礎的 server、port、cipher 和 password 都正確,節點仍然無法使用。面對資源有限的路由器,SS 經常是容易理解的起點,但應在目標架構上測試加密開銷,不能只根據桌面處理器的結果推斷。

VMess:身分、時間與傳輸選項較多

VMess 來自 V2Ray 生態系,設定通常包含使用者識別、alterId、加密選項、網路傳輸和 TLS 等欄位。歷史設定中常可看到不同的 alterId 值,較新的伺服器部署通常採用更精簡的組合,但客戶端仍可能為了相容舊訂閱而保留解析欄位。VMess 的驗證過程對時間狀態較敏感,裝置時間明顯偏差時可能出現驗證失敗,因此排查時除了檢查位址和使用者識別,也應確認系統時間同步正常。

VMess 的實際複雜度主要來自可搭配多種傳輸方式。TCP、WebSocket、HTTP 和 gRPC 對路徑、反向代理與伺服器端設定有不同要求。WebSocket 設定需要核對 path 與 Host;gRPC 需要核對 service-name;啟用 TLS 時還要檢查 servername、憑證驗證和 ALPN。訂閱轉換工具有時會遺漏較少見的傳輸欄位,表現為節點名稱存在、基礎資訊正確,但握手始終失敗。處理這類問題時,應逐欄比較轉換前後的單一節點設定,而不是不斷切換代理模式。

Trojan:以 TLS 承載,憑證參數是關鍵

Trojan 通常透過標準 TLS 連線承載資料,驗證核心是密碼。其設定表面上不複雜,但 TLS 相關欄位決定連線能否建立。server 是實際連線位址,servername 或 SNI 用於 TLS 握手中的主機名稱,兩者可以相同,也可能不同。若使用網域連線,DNS 解析、憑證有效性與主機名稱匹配都必須成立。若訂閱將網域替換為 IP,卻沒有保留正確的 servername,常見結果是 TCP 可達但 TLS 驗證失敗。

部分使用者會直接開啟 skip-cert-verify 來繞過憑證錯誤,這會掩蓋網域、憑證鏈或系統時間問題。更穩妥的順序是先確認裝置時間,再檢查 servername 是否對應憑證名稱,然後確認伺服器端憑證鏈和網路路徑。只有在明確知道憑證驗證失敗原因並接受相應風險時,才應調整驗證策略。Trojan 也可以使用 WebSocket 或 gRPC 等承載方式,排查邏輯與 VMess 類似:先確認 TLS,再核對 path、Host 或 service-name,最後檢查 UDP 與策略組行為。

VLESS:減少協議層負擔,安全性依賴傳輸層

VLESS 同樣來自 V2Ray 體系,但設計上不在協議層提供與 VMess 相同的加密機制,通常依賴 TLS 或其他安全傳輸提供機密性和身分驗證。它使用使用者識別進行驗證,常見設定包括 uuid、flow、network、tls、servername,以及與傳輸對應的附加欄位。由於協議層處理更直接,VLESS 經常用於需要靈活傳輸組合的部署,但「欄位更精簡」不代表可以省略安全傳輸。

VLESS 設定的相容性問題集中在擴充能力。不同核心對 flow、Reality、客戶端指紋、傳輸細節和 UDP 行為的支援時間並不一致。mihomo 支援多種 VLESS 擴充功能,但具體可用欄位仍應以目前核心文件和執行記錄為準。訂閱中出現未知欄位時,解析器可能忽略它,也可能拒絕整個節點;忽略比報錯更難發現,因為節點看似已匯入,卻在執行階段失敗。遷移到另一個客戶端前,應確認關鍵擴充沒有在轉換過程中消失。

proxies:
  - name: "SS baseline"
    type: ss
    server: example.com
    port: 443
    cipher: aes-128-gcm
    password: "your-password"
    udp: true

上例只展示 SS 節點的最小結構,用於辨識欄位關係。實際位址、連接埠、密碼和加密方法必須來自伺服器端設定。YAML 對縮排敏感,列表項目下的欄位需要保持在同一層級;密碼中含有冒號、井字號或其他特殊字元時應使用引號。設定載入失敗與連線失敗是兩類問題:前者先檢查 YAML 語法和欄位名稱,後者再檢查網路、驗證與伺服器端狀態。

03 · QUIC TRANSPORT

Hysteria2 與 TUIC:面向不穩定路徑的 QUIC 方案

為什麼選擇 QUIC 作為基礎

傳統 TCP 連線由作業系統維護壅塞控制和重傳狀態,代理協議再在其上承載應用程式資料。QUIC 建立在 UDP 之上,將可靠傳輸、加密握手和多路串流管理放到使用者空間實作。它可以減少不同邏輯串流之間的相互阻塞,並更靈活地處理連線遷移。當手機從 Wi-Fi 切換到行動網路、出口位址變化或鏈路出現短暫丟包時,設計良好的 QUIC 實作有機會比重新建立整套 TCP 與 TLS 連線更快恢復。

這種能力並非無條件帶來收益。部分網路會限制或限速 UDP,企業網路、防火牆和公共熱點也可能直接封鎖相關連接埠。QUIC 的使用者空間處理會占用 CPU,並產生計時器、確認和保活活動;在低階裝置或長期於背景執行的手機上,資源成本可能高於簡單的 TCP 節點。判斷 Hysteria2 或 TUIC 是否適合,首先要確認 UDP 路徑穩定,再比較實際業務中的恢復速度和波動,不能只看理想網路中的單次大型檔案速度。

Hysteria2:以吞吐量為導向的壅塞控制

Hysteria2 使用 QUIC,並針對高丟包、高延遲路徑設計傳輸控制。設定通常包含伺服器位址、驗證資訊、TLS 主機名稱,以及可選的頻寬、混淆或憑證驗證設定。mihomo 中常見的節點類型為 hysteria2。驗證欄位可能在訂閱中表示為 password 或 auth,不同設定來源的命名需要由解析器正確對應。連線失敗時應先區分 UDP 無法連線、TLS 失敗與驗證失敗,因為三者的修復方向完全不同。

Hysteria2 的頻寬相關參數不應隨意填成裝置測速上限。壅塞控制需要依據路徑能力調節傳送節奏,宣告值過大可能導致排隊、丟包和抖動增加,過小則會限制可用吞吐量。如果服務提供者已產生完整訂閱,通常先保留其參數;只有在自行管理兩端並具備持續測試條件時才進行調整。對於影片下載等持續流量,可觀察一段時間內的平均速度和緩衝穩定性;對於語音或互動業務,應優先觀察抖動、重傳和切換網路後的恢復,而不是峰值。

TUIC:低延遲連線與 UDP 承載

TUIC 同樣建構在 QUIC 之上,設定中常見 uuid、password、server、port、sni、alpn、udp-relay-mode 與壅塞控制選項。不同世代的伺服器端和核心實作對欄位組合可能有所差異,匯入舊訂閱時尤其需要注意驗證結構。若 uuid 與 password 只保留其中一項,或 ALPN 與伺服器端不一致,連線會在握手或驗證階段終止。記錄中若出現憑證主機名稱問題,應先檢查 sni;若直接逾時,則優先驗證 UDP 連接埠和網路路徑。

TUIC 對 UDP 業務具有直接吸引力,但不代表所有應用程式都應強制經過 TUN。系統代理通常涵蓋支援 HTTP 或 SOCKS 的應用程式,TUN 則接管更廣泛的 IP 流量。若只為瀏覽器和常見桌面應用程式使用代理,系統代理的資源與排錯成本通常較低;需要處理遊戲、命令列程式或不讀取系統代理的應用程式時,再考慮 TUN。協議選擇與接管方式是兩個獨立變數,不應因選擇 TUIC 就預設開啟所有網路接管功能。

項目 Hysteria2 TUIC 檢查重點
基礎傳輸 QUIC / UDP QUIC / UDP 網路是否允許目標 UDP 連接埠
驗證 通常是密碼或驗證字串 通常是 UUID 與密碼 訂閱轉換是否保留所有欄位
TLS SNI、憑證驗證、ALPN SNI、憑證驗證、ALPN 主機名稱與系統時間是否正確
調校 頻寬宣告與壅塞控制 壅塞控制與 UDP 中繼方式 先保留預設值,再進行單一變數測試

QUIC 節點的標準排查路徑

第一步是在同一網路上測試一個已知可用的 TCP 節點,確認 DNS、規則和客戶端整體正常。第二步檢查目標 UDP 連接埠是否可能受到目前網路限制,可切換到另一個 Wi-Fi 或行動網路比較,但不要同時修改節點參數。第三步讀取核心記錄:逾時通常指向網路可達性,TLS 報錯指向 SNI、憑證或時間,驗證失敗則檢查密碼與使用者識別。第四步確認客戶端內建的是支援該節點類型的 mihomo 核心,並檢查訂閱轉換是否保留 ALPN、壅塞控制與 UDP 欄位。

如果 Hysteria2 或 TUIC 在某個網路上持續失敗,而 TCP 協議穩定,不必強行調整參數。保留一個 SS、Trojan 或 VLESS over TCP 節點作為回復策略更實用。協議選擇應允許不同網路使用不同策略組:家庭 Wi-Fi 可以選擇經驗證的 QUIC 節點,受限公共網路則自動或手動切回 TCP 節點。這樣能將網路路徑差異明確納入設定,而不是試圖用一套參數涵蓋所有環境。

04 · PERFORMANCE

連線速度、資源占用與行動端電量

連線建立時間與持續吞吐量不是同一項指標

網頁開啟速度受 DNS、TCP 或 QUIC 握手、TLS、伺服器處理和頁面資源數量共同影響。協議握手較輕,只能減少其中一部分時間;如果 DNS 緩慢或頁面需要連線到多個網域,節點的單連線優勢未必能轉化為明顯體驗。持續下載則更依賴路徑容量、壅塞控制和伺服器端出口。短連線測試應重複造訪多個目標並排除快取影響,持續傳輸測試應維持足夠時間,觀察速度是否穩定、是否週期性歸零,以及切換網路後的恢復情況。

多路複用也需要謹慎理解。將多個邏輯連線放到較少的底層連線中,可以減少重複握手,但底層連線出現壅塞或中斷時,影響範圍也會擴大。TCP 上的多路複用仍可能受到單條 TCP 連線丟包恢復影響;QUIC 的多串流設計能減少串流之間的阻塞,但會增加使用者空間的狀態管理。對於大量短請求,多路複用可能有效;對於少量長時間的大流量連線,收益不一定明顯。預設關閉或開啟都不應視為絕對結論,應依應用程式類型進行測試。

CPU、記憶體與加密開銷

SS 的資源消耗與加密方法、處理器指令集和並行數相關。支援硬體加速的桌面處理器可以高效處理常見 AEAD 演算法,而某些低功耗架構對另一類演算法更友善。Trojan、VMess over TLS 和 VLESS over TLS 都要承擔 TLS 處理,實際開銷還取決於傳輸層是否使用 WebSocket、gRPC 或額外的多路複用。Hysteria2 與 TUIC 除了加密外,還要在使用者空間維護 QUIC 的確認、重傳、壅塞和串流狀態。

記憶體占用通常不是由協議名稱單獨決定。連線數量、規則規模、DNS 快取、TUN 路由、記錄等級和 provider 數量,都可能比單一節點的差異更明顯。路由器出現記憶體壓力時,應先減少不必要的規則集、縮短過多的 provider 鏈路、限制詳細記錄持續寫入,再比較協議。桌面端則應觀察長時間執行後是否持續增加,而不是只記錄剛啟動時的數值。發生異常增加時,保存設定結構和觸發步驟,比簡單判斷某協議「更吃記憶體」更有助於定位。

行動端耗電主要由喚醒頻率決定

手機電量表現不僅取決於加密運算,更取決於無線模組和 CPU 被喚醒的頻率。頻繁的節點健康檢查、較短的 DNS 快取、持續記錄、背景測速和過於積極的保活,都會增加喚醒次數。即使每次處理量很小,長時間累積也會明顯影響待機。基於 QUIC 的節點可能為了維持 NAT 對映而傳送保活封包,TUN 模式還要處理更多系統流量;如果裝置上有大量背景應用程式,這些因素會疊加。

最佳化順序應先處理全域行為,再更換協議。將健康檢查間隔設定為符合故障發現需求的合理值,不要讓多個 provider 同時高頻探測;只保留實際使用的策略組;除錯結束後恢復一般記錄等級;不需要接管所有流量時優先使用系統代理;確認區域網路連線開關與實際需求一致。完成這些調整後,再在同一時段比較 TCP 與 QUIC 節點。測試期間應保持螢幕亮度、應用程式活動和網路類型相近,否則系統排程差異會掩蓋協議差異。

使用狀態 主要開銷來源 建議觀察項目 優先調整
前景瀏覽 DNS、短連線、規則比對 首個封包時間與失敗重試 DNS 與規則命中
影片或下載 持續加密、壅塞控制 平均吞吐量與緩衝穩定性 節點路徑與協議基準
鎖定螢幕後台 保活、健康檢查、應用程式喚醒 待機耗電與重新連線頻率 檢查間隔和記錄等級
TUN 接管 系統所有流量處理、DNS 對映 CPU 喚醒與異常應用程式流量 路由範圍和排除項目

建立可重複的測試記錄

測試表至少應記錄裝置、作業系統、客戶端、核心、網路類型、接管方式、DNS 模式、節點協議和測試時段。一次只修改一個變數,例如先固定規則模式與系統代理,只替換 SS 和 Hysteria2 節點;下一輪再固定節點,比較系統代理與 TUN。每輪同時記錄成功率和錯誤類型。若五次連線中有兩次逾時,即使成功時速度很高,也不適合作為自動選擇組的唯一節點。

行動端電量至少應觀察一個完整的日常使用週期,並查看系統電量頁面中客戶端的前景與背景活動。短時間執行幾分鐘無法代表待機保活成本。出現耗電異常時,可以先停止所有主動健康檢查並關閉詳細記錄,再逐項恢復,以定位喚醒來源。關於背景執行與省電策略的進一步步驟,可閱讀Clash 手機耗電快怎麼辦

05 · CORE FAMILY

原版 Clash、Clash Meta 與 mihomo 的家族關係

原版 Clash 奠定設定結構

原版 Clash 建立了廣泛使用的 YAML 設定模型:proxies 定義節點,proxy-groups 組織選擇、自動測試與回復,rules 依序比對流量,proxy-providers 和 rule-providers 從外部來源載入內容。系統代理、mixed-port、DNS 與規則模式等概念也由此成為多種客戶端的共同介面基礎。大量訂閱和教學沿用這套結構,因此即使原版核心已停止維護,其設定語意仍然是理解生態系相容性的起點。

原版支援的協議和擴充範圍有限。後續出現的 VLESS、Reality、Hysteria2、TUIC,以及更豐富的 DNS、TUN 和規則能力,不應預設能在原版核心執行。某份設定只使用 SS、VMess、Trojan 和基礎規則時,可能看起來具有較高相容性;一旦加入 Meta 擴充欄位,就需要明確核心。判斷設定歸屬時,應查看節點 type、DNS 增強選項、TUN 欄位與規則類型,而不是只看檔案名稱是否叫作 config.yaml。

Clash Meta 擴充協議與網路能力

Clash Meta 在 Clash 設定模型上擴充協議、傳輸、DNS、TUN 和規則能力,目標之一是控制常見設定的遷移成本。它支援更多來自不同生態系的節點類型,使一個核心可以處理 SS、VMess、Trojan、VLESS、Hysteria2、TUIC 等多種設定。對使用者而言,最明顯的變化是訂閱中的新協議不再需要為每種協議單獨安裝不同核心;對客戶端開發者而言,則可以圍繞較統一的控制介面建立策略、連線和記錄介面。

相容性仍然是有方向性的。基礎 Clash 設定通常較容易遷入 Meta 系核心,而使用 Meta 擴充功能的設定無法反向保證在原版核心執行。即使欄位名稱相同,預設值和邊界行為也可能隨實作演進。跨核心遷移時,應先驗證設定能否載入,再檢查 DNS、規則和 UDP 行為,最後測試每類節點。不要在遷移前同時改寫規則集和節點格式,否則出現問題時無法判斷是核心差異還是設定變更。

mihomo 是目前沿用的名稱

mihomo 是 Clash Meta 專案後續採用的名稱。許多圖形客戶端介面仍會使用 Clash、Meta 或 Clash Meta 作為生態系稱呼,但內建核心可能顯示為 mihomo。看到這些名稱時,需要區分專案歷史名稱、客戶端品牌和實際核心檔案。Clash Plus、Clash Verge Rev、FlClash、Clash Nyanpasu 等客戶端可圍繞 mihomo 提供介面;Clash Meta for Android 則在名稱中保留 Meta。名稱不同不代表設定體系完全分裂,關鍵仍是核心建置與支援欄位。

安裝包選擇應從裝置平台和維護狀態出發。本網站下載頁首推 Clash Plus,並同時列出 Windows、macOS、Android、iOS 與 Linux 上可用的客戶端。熟悉命令列、伺服器或路由器環境的使用者可以直接使用 mihomo 核心,但需要自行管理設定、服務啟動、記錄和升級。一般桌面與手機使用者使用圖形客戶端更容易處理系統代理、TUN 權限、設定更新和策略切換。具體客戶端組合請參考客戶端比較安裝包頁面

核心分支 定位 協議範圍 設定遷移注意事項
原版 Clash 基礎設定模型與規則體系 傳統協議與基礎代理能力 不能假設支援 Meta 擴充欄位
Clash Meta 擴充協議、DNS、TUN 與規則能力 涵蓋 VLESS、Hysteria2、TUIC 等擴充功能 基礎設定遷入較直接,反向遷移需刪減
mihomo Meta 系專案目前的延續 持續承接多協議與擴充能力 依目前文件確認欄位與預設行為

客戶端版本與核心能力不能混為一談

圖形客戶端更新可能只改變介面、設定管理或系統整合,也可能同時更換核心;核心更新則可能增加協議欄位、修正連線問題或調整預設值。排查相容性時應記錄兩者,而不是只說「Clash 不能用」。記錄通常會顯示核心名稱或啟動資訊,客戶端的關於頁面也可能提供核心資訊。若同一訂閱在兩個客戶端上的表現不同,應先比較核心類型和設定解析結果,再比較系統代理、TUN 權限與 DNS 設定。

手動替換核心檔案需要謹慎。圖形客戶端可能對核心檔案名稱、啟動參數、控制連接埠和權限有固定約定,直接覆蓋可能導致無法啟動或介面無法連線核心。更穩妥的方法是使用客戶端提供的核心更新機制,或在獨立目錄執行 mihomo 進行對照測試。伺服器上部署獨立核心時,則應使用服務管理器控制啟動順序和自動恢復,並將設定檢查放在重新載入之前,避免語法錯誤導致現有連線中斷。

mihomo -t -f config.yaml
mihomo -d ./profile

第一條命令用於檢查指定設定檔,第二條示範以獨立工作目錄啟動。實際可執行檔名稱和路徑取決於平台與安裝方式。設定檢查通過只表示語法與已知欄位可以被讀取,不代表所有遠端節點都能連線;啟動後仍需透過記錄、策略組和實際請求驗證網路行為。

06 · SUBSCRIPTIONS

訂閱格式、設定相容性與欄位保真度

節點連結、節點清單與完整設定

「訂閱」可能指三種不同內容。第一種是由多個協議連結組成的節點清單,例如 ss、vmess、trojan 或 vless 連結;客戶端或轉換服務負責將連結解析為 Clash 節點。第二種是已轉換好的 proxies 清單,只包含節點,不含完整規則和 DNS。第三種是完整的 Clash 或 mihomo 設定,除節點外還包含 proxy-groups、rules、rule-providers、dns、tun 等部分。匯入前先判斷類型,可以避免把完整設定當成節點 provider,或用訂閱更新覆蓋本地規則。

節點連結適合跨工具傳遞,但並非所有擴充參數都有統一表達方式。VLESS 的 flow、Reality 欄位,Hysteria2 的頻寬與混淆參數,TUIC 的驗證和壅塞控制選項,都可能因連結規範、產生端或轉換端不同而遺失。完整 YAML 能表達更多欄位,但對目標核心的依賴更明確。需要在多個 mihomo 客戶端之間遷移複雜設定時,保留 YAML 通常比反覆轉成分享連結更可靠。

proxy-providers 負責來源,不等於協議轉換

proxy-providers 可以讓 mihomo 從檔案或 URL 載入節點集合,並依 interval 更新。它適合將節點來源與主設定分離,再由多個策略組引用同一個 provider。provider 的 health-check 可以定期造訪測試位址,用於判斷節點是否可用,但檢查頻率會影響網路請求和行動端耗電。provider 讀取的是目標核心能夠解析的內容;如果遠端回傳的是不相容格式,單純放入 provider 並不會自動完成任意協議轉換。

proxy-providers:
  primary:
    type: http
    url: "https://example.com/subscription.yaml"
    path: ./providers/primary.yaml
    interval: 21600
    health-check:
      enable: true
      interval: 1800
      url: "https://www.example.com/"

範例中的網域僅用於表示結構。url 應替換為實際訂閱位址,並避免公開分享含有存取憑據的連結。path 指向核心工作目錄下的快取檔案;interval 是更新週期;health-check 的 interval 是健康檢查週期,兩者含義不同。測試位址應穩定、回應較小,並與實際網路目標具有可比性。若多個 provider 都設定很短的檢查週期,客戶端會持續產生背景連線,行動端尤其需要控制頻率。

轉換過程最容易遺失擴充欄位

訂閱轉換通常經歷解析來源格式、對應欄位、產生目標 YAML 三個步驟。傳統 SS、VMess 和 Trojan 的常見欄位對應較成熟,但外掛、gRPC、Reality、客戶端指紋、Hysteria2 與 TUIC 的擴充項目更容易受到轉換器能力限制。轉換後應抽查每種協議至少一個節點,比較 server、port、uuid 或 password、network、tls、servername、alpn、flow、udp 等關鍵欄位。不要只比較節點數量;數量相同也可能存在欄位遺失。

節點名稱也可能影響管理。轉換器為了去重會重新命名節點,而 proxy-groups 中若直接寫入舊名稱,載入時會出現找不到代理的錯誤。使用 providers 引用節點集合可以減少名稱耦合,但規則目標與策略組名稱仍必須存在。遷移完整設定時,先檢查所有規則最終指向的策略組,再檢查策略組引用的節點或 provider,形成從 rules 到 proxy-groups 再到 proxies 的引用鏈。

YAML 語法正確仍可能存在語意錯誤

YAML 檢查可以發現縮排、重複結構和類型問題,卻無法確認遠端位址、密碼、SNI 或規則目標是否正確。常見語意錯誤包括連接埠被寫成字串後遭某些解析器拒絕、布林值使用不一致、同名策略組重複、規則指向不存在的群組、provider 路徑沒有寫入權限,以及節點啟用了伺服器端不支援的 UDP。應先執行核心設定檢查,再啟動並觀察第一輪 provider 更新、DNS 初始化和節點握手記錄。

當完整訂閱由服務方維護時,本地修改可能在下一次更新時被覆蓋。需要長期保留的規則應放在客戶端支援的覆寫、合併或本地設定層,而不是直接編輯遠端快取檔案。不同客戶端對覆寫機制的名稱和能力不同,遷移前應匯出本地規則。Clash Plus 等客戶端可以簡化設定管理,但仍需要區分遠端訂閱、產生後的執行設定和本地覆寫三個層次,排查時確認實際生效的是哪一份。

內容形式 適用用途 主要風險 遷移建議
協議分享連結 傳遞單一或少量節點 擴充欄位表達不完整 匯入後核對關鍵參數
節點 YAML 作為 proxy-provider 來源 不含策略組與規則 保留獨立主設定
完整設定 複製完整執行環境 依賴特定核心擴充功能 先檢查核心,再分層遷移
轉換後的訂閱 連接不同格式生態系 欄位、名稱或類型遺失 逐協議抽查,不只看數量

07 · USE CASES

依裝置與網路情境選擇協議

桌面辦公與日常網頁

Windows、macOS 與 Linux 桌面環境通常具備充足的處理能力,協議選擇應優先考慮穩定性和設定可維護性。已有 SS、Trojan、VMess 或 VLESS 節點穩定運作時,沒有必要只因出現較新的協議名稱就更換。網頁和協作軟體以短連線、DNS 和 TLS 請求為主,規則準確、DNS 回應穩定、系統代理連接埠正確,往往比協議之間的小幅效能差異更重要。

客戶端方面,本網站在各平台首推 Clash Plus,同時提供 Clash Verge Rev、FlClash、Clash Nyanpasu 等選擇。選擇 GUI 後先以規則模式和系統代理建立基準;只有應用程式不讀取系統代理或需要處理更廣泛流量時,再啟用 TUN。協議節點可以設定一個手動選擇組和一個自動回復組,日常固定使用已驗證節點,故障時再切換,避免頻繁自動測速造成連線波動。

行動網路與頻繁切換存取點

Android 與 iOS 裝置會經歷鎖定螢幕、背景限制、Wi-Fi 與行動網路切換、NAT 對映變化等狀態。若目前網路對 UDP 友善,Hysteria2 或 TUIC 可以作為切換網路後恢復和即時 UDP 的候選;若公共網路經常限制 UDP,應保留 Trojan、VLESS over TCP、VMess 或 SS 作為回復方案。行動端不宜將大量節點放入高頻自動測試組,節點越多、檢查越密集,背景喚醒越明顯。

測試時應分別觀察前景瀏覽、即時通訊、鎖定螢幕後恢復和網路切換。若 QUIC 節點切換網路後恢復快速,但鎖定螢幕待機耗電增加,可延長健康檢查、減少策略組並檢查保活設定;若仍不合適,預設使用 TCP 節點,把 QUIC 節點留給即時業務或特定網路。協議不是永久綁定裝置的選擇,可以透過策略組依使用狀態切換。

影片、大型檔案與持續傳輸

持續傳輸應關注平均吞吐量、速度波動和長連線穩定性。在高丟包路徑上,Hysteria2 的壅塞控制可能更容易維持吞吐量;TUIC 也可以利用 QUIC 的多串流與恢復能力。但伺服器端出口、線路容量和目標網站限制仍然是上限。在穩定且低丟包的網路中,設定良好的 SS、Trojan 或 VLESS 同樣能取得可靠結果,而且資源開銷和排錯路徑更直接。

不要同時開啟多路複用、修改頻寬宣告、切換 TUN 和更換 DNS 來追求速度。先固定接管方式和 DNS,比較協議節點;確定節點後再測試多路複用;最後才調整壅塞參數。每一步都保留前一項結果,速度出現週期性下降時查看是否伴隨丟包、重新連線、策略組切換或 DNS 更新。只有單一變數的記錄才能說明最佳化來自何處。

即時語音、遊戲與 UDP 應用程式

即時業務對抖動和丟包恢復敏感,峰值頻寬通常不是主要指標。首先確認應用程式流量確實經過 Clash:部分應用程式不使用系統代理,需要 TUN 或應用程式自身的代理設定。然後確認節點宣告 udp: true,且伺服器端支援 UDP 中繼。Hysteria2 與 TUIC 以 QUIC 為基礎,適合列入候選,但若 UDP 路徑品質不佳,它們本身也會受影響。SS、Trojan、VMess 與 VLESS 的 UDP 支援則取決於核心、節點設定和伺服器端實作。

遊戲情境不應只用網頁測速選擇節點。應觀察實際工作階段中的連線保持、切換地圖或重新配對時是否中斷,以及 NAT 變化後的恢復情況。TUN 接管後若區域網路裝置探索、列印或投放異常,需要檢查私有位址規則和路由排除項,而不是更換協議。即時業務的策略組最好只使用少量經驗證的節點,避免自動選擇在工作階段期間切換出口。

路由器、伺服器與低資源裝置

這類裝置首先受 CPU 架構、記憶體、儲存寫入和服務管理限制。基礎 SS 設定通常便於建立資源基準,Trojan 或 VLESS over TLS 可作為需要 TLS 承載的候選;Hysteria2 與 TUIC 應在目標硬體上實際測試使用者空間 QUIC 的開銷。不要只憑協議文件推斷低階 ARM 或其他架構上的效能。規則集大小、DNS 快取和並行連線同樣會占用資源,必要時精簡規則與 provider。

直接執行 mihomo 時,應將設定檢查、啟動、記錄輪替和故障恢復納入服務管理。路由器作為區域網路閘道器還要正確處理轉送、防火牆和 DNS,問題範圍比桌面系統代理更大。若只需要讓同一個 Wi-Fi 下的少量裝置使用代理,可以先閱讀區域網路共享代理設定,評估 mixed-port 與 allow-lan 是否已經滿足需求,再決定是否部署透明接管。

情境 優先候選 備用方向 關鍵驗證
桌面網頁與辦公 參數完整的 SS、Trojan、VMess、VLESS Hysteria2 或 TUIC DNS、短連線成功率、系統代理
行動網路 經驗證的 Hysteria2、TUIC 或穩定 TCP 節點 保留跨網路可用的 TCP 回復節點 切換網路後恢復、背景耗電、UDP 可達性
持續下載 路徑穩定且平均吞吐量高的節點 調整壅塞參數前先更換路徑 長時間波動、重新連線與伺服器端容量
即時 UDP Hysteria2、TUIC 或確認支援 UDP 的節點 少量固定回復節點 抖動、工作階段保持、TUN 路由
低資源裝置 簡單設定與精簡規則 依硬體實測 QUIC CPU、記憶體、並行連線與記錄寫入

08 · MIGRATION

協議測試、設定遷移與故障定位

遷移前建立可恢復的最小設定

從舊客戶端遷移到 Clash Plus、Clash Verge Rev、FlClash 或其他 mihomo 客戶端時,先保留舊客戶端可運作的設定,不要立即刪除。在新客戶端中只匯入一個節點或一個 provider,建立包含 DIRECT、單一代理和 MATCH 的最小規則,確認核心啟動、DNS 和系統代理正常。基準通過後,再加入完整策略組、規則集和 TUN。這樣可以將客戶端安裝問題、核心相容問題和複雜設定問題分開。

若從原版 Clash 設定遷入 mihomo,多數基礎欄位可以繼續使用,但仍應檢查 DNS 和 TUN 的預設行為。若反向遷移,則需要刪除 VLESS、Hysteria2、TUIC 等原版不支援的節點及 Meta 擴充規則。策略組引用必須同步更新,否則設定會因目標不存在而失敗。任何批次修改都應先複製檔案,並使用核心檢查命令確認語法,再替換正在執行的設定。

按階段讀取記錄

啟動階段記錄回答「設定能否載入」。重點查看 YAML 解析、未知欄位、provider 檔案、監聽連接埠和 TUN 權限。更新階段記錄回答「遠端內容能否取得並解析」,重點查看訂閱請求、回傳格式、快取路徑和節點數量。連線階段記錄回答「目標流量是否命中規則並完成握手」,重點查看規則目標、節點名稱、DNS、逾時、TLS 和驗證資訊。將不同階段混在一起會導致錯誤判斷,例如訂閱更新成功並不能證明節點握手成功。

常見的 dial tcp timeout 表示在規定時間內沒有完成 TCP 連線,可能來自位址無法連線、連接埠受阻、DNS 結果異常或伺服器端未監聽;connection refused 表示目標明確拒絕連線,優先檢查連接埠與服務狀態;TLS 錯誤應檢查系統時間、servername 和憑證;authentication failed 指向密碼、UUID 或驗證字串。QUIC 節點若持續逾時,應先切換網路判斷 UDP 路徑,再檢查協議參數。更多記錄文字和定位順序請參考Clash 執行記錄怎麼看

連接埠、系統代理與 TUN 的分層檢查

mixed-port 常用於同時提供 HTTP 與 SOCKS 入口。開啟系統代理後,作業系統應指向客戶端實際監聽的位址與連接埠;如果連接埠被其他程式占用,核心可能啟動失敗,介面開關也不代表監聽已成功。可以先關閉其他代理工具,再查看記錄中的監聽錯誤。區域網路共享還需要 allow-lan、防火牆和正確的監聽位址,不能只將本機位址填入另一台裝置。

TUN 模式位於更低的接管層,需要系統權限、虛擬網卡或相應的網路擴充功能。啟用後無法上網時,先關閉 TUN 回到系統代理基準。如果系統代理正常,表示節點、訂閱和基本 DNS 大致可用,問題更可能出在 TUN 權限、路由或 DNS 劫持。然後重新啟用 TUN,逐項檢查自動路由、介面選擇、私有位址排除和 DNS 模式。不要在 TUN 故障時同時更換協議節點,否則會失去有效對照。

協議替換採用單一變數順序

從 VMess 切換到 VLESS,或從 Trojan 切換到 Hysteria2 時,應盡量保持目標服務、客戶端、規則、DNS 和接管方式一致。先確認新節點能在手動選擇組中單獨連線,再加入自動測試或回復組。測試網頁、持續下載、UDP 應用程式和切換網路後恢復四類行為,並記錄錯誤。若新協議只在某類業務中表現較好,可以建立專用策略組,而不是一次性替換全域預設。

複雜協議的調校應分層進行:第一輪使用訂閱預設參數;第二輪只調整傳輸相關選項;第三輪再考慮多路複用、頻寬或壅塞控制;最後處理 TUN 與 DNS。每一輪都應能回到上一步。調整參數後若效能下降,應撤銷最近一次變更,而不是繼續疊加設定。可恢復性是正式環境設定的重要屬性,能讓升級核心、切換客戶端和更換網路時都有明確退路。

mode: rule
mixed-port: 7890
allow-lan: false
log-level: info

rules:
  - DOMAIN-SUFFIX,example.com,DIRECT
  - GEOIP,LAN,DIRECT
  - MATCH,PROXY

這段內容展示用於排查的基礎結構:規則模式、混合連接埠、區域網路開關、一般記錄等級和三條規則。實際設定還需要定義名為 PROXY 的策略組或代理。規則依序比對,明確網域應放在更通用的 GEOIP 與 MATCH 之前。若記錄顯示目標命中 DIRECT,就不應繼續排查代理協議握手,而應先修正規則目標。

建立最終選擇記錄

完成測試後,為每個預設節點記錄協議、傳輸、TLS 主機名稱、適用網路、是否支援 UDP、對應 provider 和回復節點。不需要保存密碼等敏感內容,只記錄定位所需的結構資訊。行動端另外記錄是否啟用 TUN、健康檢查間隔和背景限制;路由器記錄核心架構、服務啟動方式和規則集來源。下一次客戶端或核心更新後,依照同一份記錄重新測試,比重新憑感覺選擇更可靠。

最終設定通常不需要涵蓋所有協議。保留一到兩個穩定的 TCP 節點、一個經驗證的 QUIC 節點,再透過清晰的策略組組織,已足以應付多數桌面與行動情境。節點數量過多會增加健康檢查、名稱管理和故障定位成本。協議手冊的作用不是要求同時啟用所有技術,而是協助辨識每種方案要解決的問題、依賴的條件,以及失敗時的回復路徑。

提交預設設定前的檢查清單

  • 核心明確為 mihomo,客戶端與裝置平台相符。
  • 訂閱中的關鍵協議欄位在匯入和轉換後仍然存在。
  • 至少保留一個經不同網路驗證的 TCP 回復節點。
  • Hysteria2 或 TUIC 已確認目標 UDP 連接埠可達。
  • 系統代理基準正常後,才啟用並排查 TUN。
  • 健康檢查間隔符合行動端電量和故障發現需求。
  • 規則目標、策略組、節點與 provider 引用均能相互對應。
  • 設定檢查通過,並完成網頁、持續傳輸、UDP 與切換網路測試。