Clash 核心
實際讀取設定、比對規則並建立代理連線的程式,通常在圖形介面背後執行。原始 Clash 與後續衍生核心並非同一個持續更新的程式,支援的協定和設定鍵也可能不同。排查「設定無法載入」時,請先在「關於」頁面或啟動記錄中記下核心名稱,不要只看視窗上顯示的用戶端名稱。
CLASH / 術語解析
先釐清流量由誰接管、規則選擇哪個出口,再查看 DNS 與訂閱。本文依設定項目分類整理 25 個術語,每個項目都可單獨連結。
找不到設定項目?可使用瀏覽器的頁面搜尋功能,輸入中文名稱或設定鍵。需要逐步操作時,請前往入門指南;已經遇到錯誤,請直接查看問題排查。
01 / 程式與操作介面
視窗負責操作,核心負責連線。先確認目前執行的程式,再判斷是否支援特定設定鍵。
實際讀取設定、比對規則並建立代理連線的程式,通常在圖形介面背後執行。原始 Clash 與後續衍生核心並非同一個持續更新的程式,支援的協定和設定鍵也可能不同。排查「設定無法載入」時,請先在「關於」頁面或啟動記錄中記下核心名稱,不要只看視窗上顯示的用戶端名稱。
承襲 Clash Meta 專案的代理核心,支援 Clash 格式設定,並擴充協定、DNS 與網路接管功能。有些舊教學仍使用「Meta 核心」這個名稱,閱讀時應依實際設定欄位判斷。即使用戶端支援 mihomo,也要確認目前實際使用的核心版本;更新介面程式不一定代表核心也已切換。
提供「設定」、「代理」、「記錄」等操作介面的應用程式,負責啟動核心、管理訂閱及設定系統代理。用戶端可能在訂閱原文之外合併連接埠、DNS 或覆寫內容,因此編輯器中看到的檔案不一定就是最終執行設定。若設定儲存後又恢復,請先確認用戶端是否接管該欄位,再決定要修改介面選項還是設定檔。
供用戶端或管理面板讀取連線狀態、切換策略組及調整執行設定的介面,例如監聽於 127.0.0.1:9090。這是管理入口,不是瀏覽器上網使用的代理連接埠。通常應限制為僅本機可存取;確實需要遠端管理時,應同時設定驗證與存取限制,不能只將監聽位址改成所有網路介面。
可同時接受 HTTP 代理與 SOCKS 代理連線的本機監聽連接埠,常見設定範例為 mixed-port: 7890,實際值請以用戶端目前設定為準。若要在應用程式中單獨設定代理,請填入正確的監聽位址與連接埠,不要填控制介面的連接埠。出現 address already in use 時,請先確認是否有其他用戶端占用相同連接埠。
02 / 連線方式
協定決定如何建立連線。即使協定名稱相同,驗證、傳輸與憑證參數也必須相符,不能只修改 type。
應用程式將 HTTP 請求交由代理處理;存取 HTTPS 時,通常會先透過 CONNECT 要求建立通道,再由應用程式與目標網站進行 TLS 通訊。「HTTP 代理」這個名稱本身,不代表應用程式到代理伺服器的連線已加密。瀏覽器可能會使用系統設定,其他應用程式則可能需要手動填寫,實際方式取決於應用程式是否支援該設定。
一種通用代理協定,可轉送 TCP,並透過 UDP ASSOCIATE 支援 UDP;能否使用取決於應用程式與伺服器的實作。此協定不會自動提供加密,也不會統一決定網域名稱的解析位置。有些工具以 socks5h 表示將網域解析交給代理端處理;這是該工具的位址寫法,使用前請查閱工具的參數說明。
使用約定的加密方式與密碼連線至伺服器的代理協定,在 Clash 設定中通常以 ss 表示。位址、連接埠、加密方式、密碼及可能使用的外掛參數,都必須與伺服器相符。匯入後無法連線時,請先確認核心是否支援該加密方式與外掛;重新貼上密碼,無法解決協定功能不相容的問題。
通常透過 TLS 建立加密連線的代理協定。除了位址、連接埠和密碼,也要留意伺服器憑證與 SNI。使用 IP 位址連線時,憑證驗證所需的網域名稱仍可能需要另外填寫。出現 x509 相關錯誤時,請先檢查系統時間、網域名稱與憑證鏈,不要把停用憑證驗證當成長期解法。
以 QUIC 為基礎的代理協定,需要目前使用的網路允許相應的 UDP 通訊;能開啟 TCP 網站,不代表這條連線路徑也能使用。Hysteria 2 與第一代 Hysteria 的驗證方式及參數不能直接互換,不能只修改協定名稱。持續逾時時,請先檢查核心支援、伺服器位址與 UDP 連線狀態,再分析頻寬等進階參數。
03 / 出口選擇
接管流量後,才會進行分流。判斷連線路徑時,必須同時查看符合的規則與策略組目前的選擇。
依網域、IP、程序等條件為連線選擇出口;rules 通常由上往下比對,並採用第一個符合的結果。例如 DOMAIN-SUFFIX,example.com,DIRECT 會讓該網域及其子網域直接連線。兜底用的 MATCH 一般放在最後;若提前放置,即使後面的細部規則設定正確,也不會再符合。
將多個節點或其他策略組整理成可供規則引用的出口,設定位置為 proxy-groups。select 通常用於手動選擇,url-test 則依測試結果選擇;策略組本身不會新增代理伺服器。規則引用的組名必須與定義完全一致,也要確認組內目前選取的項目,不能只看到符合組名就認定連線路徑正確。
rule 依規則選擇出口,global 通常交由全域策略組處理,direct 則讓進入核心的連線直接連線。模式決定如何處理流量,不會決定哪些應用程式會被接管,因此切換全域模式無法取代系統代理或 TUN。排查時可短暫比較不同模式的差異,但應先記下原設定,確認問題後再恢復所需的分流方式。
依 IP 位址所屬地區進行比對的資料與規則機制,例如 GEOIP,CN,DIRECT。資料庫結果反映的是 IP 位址的登記或推定地區,不代表使用者目前位置;CDN 位址也可能隨網路而變動。比對結果異常時,請檢查目前核心使用的資料格式、載入記錄和更新來源,不要只根據網頁顯示的地區判斷規則失效。
將一批比對條件放在獨立資源中,透過 rule-providers 宣告,再以 RULE-SET 規則引用,方便單獨維護與更新。規則集描述「哪些連線符合條件」,引用該規則集的規則才會決定「交由哪個出口處理」。檔案格式、behavior 與實際內容必須相符;即使下載成功,格式不符仍可能無法載入。
繼續閱讀:選擇代理模式 · GeoIP 更新與比對異常排查。
04 / 解析與流量接管
網域解析與流量接管是兩回事。網頁能開啟,不代表每一筆查詢都走在預期路徑上。
在建立連線前,將網域名稱解析為 IP 位址的系統。用戶端的 dns 設定只會影響經過該解析路徑的請求;瀏覽器內建的加密 DNS、應用程式自行解析及系統快取都可能改變結果。看到 no such host 時,請先確認失敗的是目標網域還是代理伺服器網域,再檢查相應的解析路徑。
先將映射用的虛擬 IP 回傳給應用程式,再由核心依照映射找回網域名稱並處理連線,目的是保留網域資訊並減少部分解析等待。常見的虛擬位址範圍為 198.18.0.0/16,並非網站的真實伺服器位址。若應用程式取得虛擬位址後繞過核心直接連線,可能會連線失敗;處理相容性時,應針對特定網域評估過濾,不要任意擴大排除範圍。
透過虛擬網路介面與路由接管 IP 流量,可涵蓋部分不使用系統代理的程式,設定通常位於 tun 之下。此模式需要系統權限,並須配合路由與 DNS;開啟後不代表裝置的所有通訊都一定會經過代理。與其他 VPN 同時使用時,請先檢查路由衝突;確認是否成功接管時,應查看連線記錄,而不只是開關狀態。
原本應透過指定路徑送出的網域查詢,實際上卻交由其他解析器處理,例如仍透過本機網路的 DNS 查詢。判斷時應一併考量作業系統、瀏覽器、用戶端與測試頁面的查詢方式,不能只根據解析器顯示的國家或地區下結論。排查時可先統一瀏覽器與系統的解析設定,再查看查詢與連線記錄,逐項確認路徑是否符合預期。
向作業系統登記本機代理位址,讓遵循系統設定的應用程式使用,不會強制重新導向所有網路封包。命令列工具、遊戲或自行管理網路設定的程式可能完全忽略此設定,需要個別設定代理或評估使用 TUN。若關閉用戶端後瀏覽器也無法連線,請先確認系統是否仍保留指向已停止監聽連接埠的代理位址。
05 / 資料與檔案
匯入成功只代表已讀取資料,還要確認目前設定已啟用、引用完整,且出口實際可用。
從指定網址取得並定期更新代理資料或完整設定的機制;不同來源回傳的內容與格式可能不同。完整的 Clash 設定通常包含節點、策略組和規則;純節點訂閱則未必能直接作為完整設定啟用。連結可能包含存取憑證,分享截圖或記錄前應遮蔽完整網址;更新成功後也要確認目前啟用的是這份設定。
一筆可供核心連線的代理伺服器設定,通常包含協定、伺服器位址、連接埠和驗證資訊。節點名稱只是顯示標籤,標示的地區或線路名稱不能證明實際位置、速度或可用性。節點可直接寫在 proxies 中,也可由代理集合載入;分享設定以利排查時,應移除驗證資訊,而不只是更改顯示名稱。
用戶端透過指定出口連線至測試位址並記錄耗時;結果可能包含連線、交握與等待回應的時間,不一定只是網路往返時間。延遲低不等於下載速度快,測試成功也不代表所有目標網站都能連線。比較節點時,請使用相同的測試位址與條件;若顯示逾時,應搭配記錄判斷是連線失敗、解析失敗,還是測試目標無法連線。
Clash 常用的結構化文字格式,透過縮排、冒號和清單符號表示層級;縮排應使用空格,不要使用 Tab。config.yaml 是常見檔名,不代表目前核心支援檔案中的每個設定鍵。修改後請先檢查語法,再確認策略組名稱與資源引用;由訂閱管理的檔案也可能在下次更新時被覆蓋,若要保留修改,應使用用戶端支援的覆寫機制。
透過 proxy-providers 獨立載入一組代理項目,再由策略組透過 use 引用的機制。這和匯入完整訂閱設定不同:出口資料可以單獨更新,主設定中的規則與組別架構則會保留。若集合下載完成但代理清單為空,請檢查資源格式、引用名稱與篩選條件,不要將規則集檔案誤填到代理集合。
接著操作:匯入 Clash 訂閱連結的步驟 · 排查節點逾時。