CLASH / LINUX / 設定查閱

Clash 術語手冊

從核心、設定欄位到系統服務,依部署流程查找術語。先分清「流量如何進入核心」與「進入後如何分流」,再找出需要調整的設定。

本頁收錄 24 個術語,每張卡片都能透過網址中的錨點直接引用。需要完整 YAML 範例,請參閱設定參考;首次部署可依照快速入門操作。

CORE / CLIENT

核心與用戶端

介面負責管理,核心負責處理連線;訂閱與節點則是設定資料,不代表軟體的執行狀態。

mihomo 核心
mihomo 是負責連線至代理伺服器、解析規則及處理 DNS 的網路代理核心,沿用 Clash 設定體系並持續擴充。它可由圖形用戶端管理,也能在 Linux 上以獨立程序執行;核心版本與圖形介面版本是不同概念。排查欄位是否可用時,請查看實際執行中的核心版本,而非只看用戶端的「關於」頁面。
mihomo -v
圖形用戶端
圖形用戶端提供訂閱匯入、策略選擇、日誌檢視及服務管理介面,通常會在背景呼叫代理核心。用戶端儲存的介面設定不一定等同核心實際載入的設定;排查時應確認目前設定、覆寫項目及核心日誌。選擇 Clash Verge Rev 或 FlClash 時,也須確認安裝套件是否適用於你的 Linux 發行版與處理器架構。
查看 Linux 用戶端
訂閱
訂閱通常是用來取得代理節點或完整設定的遠端網址,本身並非代理協定。回傳內容可能是節點清單,也可能包含策略組、DNS 與規則;匯入前請確認格式相容,並將訂閱網址視為可能含有存取憑證的敏感資訊。更新訂閱可能會覆蓋本機修改;需要長期保留的設定,應放入用戶端支援的覆寫機制。
proxy-providers
節點
節點是一組連線至代理伺服器所需的參數,包括協定類型、伺服器位址、連接埠,以及驗證或傳輸選項。節點顯示名稱只是設定中的引用名稱,不能單憑名稱判斷伺服器位置、出口位址或可用性。節點寫入設定後,還須由策略組或規則實際選用,才會承接相應連線。
proxies / type / server / port
延遲與健康檢查
用戶端顯示的延遲通常是連線至指定測試網址所需的時間,涵蓋哪些網路環節則取決於測試方式。延遲不等於下載頻寬,也無法代表所有網站的使用體驗;比較結果時請使用相同的測試網址,逾時後再檢查日誌與實際請求。健康檢查用來判斷節點是否可用;檢查過於頻繁會增加網路請求,也可能喚醒行動裝置。
health-check / url / interval

PROTOCOL

代理協定

本機應用程式連線的代理入口,與核心連線至遠端節點所用的協定,是兩段不同的連線。

HTTP 代理
HTTP 代理是應用程式明確連線的代理入口;HTTPS 請求通常透過 CONNECT 建立通道。入口使用 HTTP 協定,不代表目標網站只能使用 HTTP;瀏覽器或命令列工具仍須設定正確的代理位址與連接埠。代理位址中的協定前綴描述應用程式如何連線至代理,不應只因目標網址是 HTTPS 就任意改用 HTTPS 代理入口。
http://127.0.0.1:7890
SOCKS5
SOCKS5 是通用代理協定,可用於 TCP 連線;應用程式與伺服器都支援時,也能轉送 UDP。網域名稱由本機或代理端解析,取決於應用程式設定;例如 curl 的 socks5h 位址會將網域名稱交由代理端處理。設定 SOCKS 入口後若只有部分應用程式可用,請先確認這些應用程式是否支援該協定,而非直接修改分流規則。
socks5h://127.0.0.1:7890
Shadowsocks
Shadowsocks 是加密代理協定,設定通常包含伺服器位址、連接埠、加密方式與密碼。它描述的是核心連線至遠端伺服器的方式,而非本機監聽入口;加密方式須與伺服器端一致,外掛設定也須雙方支援。連線失敗時,請分別確認協定參數與伺服器連線狀況,不要將本機 mixed-port 填為遠端服務的連接埠。
type: ss / cipher / password
Trojan
Trojan 通常透過 TLS 連線至遠端代理服務,設定包含伺服器位址、連接埠、密碼及憑證相關參數。SNI 用於 TLS 交握時指示伺服器名稱,不一定與連線位址相同;憑證錯誤時,請先檢查網域名稱、系統時間與憑證鏈。停用憑證驗證會改變安全性界線,不應作為長期處理連線問題的預設做法。
type: trojan / sni / password

CONFIG.YAML

設定欄位

欄位名稱維持原樣。修改層級、連接埠或 DNS 行為後,請先測試設定,再重新載入服務。

YAML
YAML 是 mihomo 設定檔使用的資料格式,以縮排表示層級,清單項目通常以連字號開頭。同一層級的欄位須保持一致縮排,不可用 Tab 取代空格;修改後請先測試設定,再重新載入服務。含特殊符號的字串可用引號括起來,避免複製訂閱網址或密碼時被誤判為其他結構。
mihomo -t -d ~/.config/mihomo
mixed-port
mixed-port 用來指定同時相容 HTTP 與 SOCKS 的本機混合代理連接埠,應用程式可依支援的代理類型連線至同一入口。連接埠存在不代表所有應用程式都會自動使用;還須設定系統代理、應用程式代理或相應環境變數,並檢查監聽位址。7890 是常見範例值,並非固定要求;若發生連接埠衝突,可更換並同步調整應用程式設定。
mixed-port: 7890
external-controller
external-controller 用來指定核心控制 API 的監聽位址,供面板查詢連線、切換策略或調整執行狀態。它不是網頁流量的代理入口;本機使用時建議優先綁定迴圈位址,遠端管理則須設定 secret 並限制網路存取範圍。若誤將面板連接埠填為系統代理連接埠,可能會造成核心已啟動,但應用程式無法正常連線。
external-controller: 127.0.0.1:9090
Fake-IP
Fake-IP 模式會在 DNS 請求中回傳供內部映射使用的合成位址,讓核心在後續連線時對應原始網域名稱。這個位址並非真實伺服器位址;部分區域網路服務或特殊應用可能需要加入 fake-ip-filter,調整後也須留意既有的 DNS 快取。看到合成位址本身不代表解析失敗,關鍵在於後續連線能否由核心正確接收並還原。
dns.enhanced-mode / fake-ip-filter
DNS 洩漏
DNS 洩漏通常是指解析請求離開預期的 DNS 處理路徑,例如連線由代理承接,查詢卻仍送往本機網路的解析器。請一併檢查系統 DNS、瀏覽器安全 DNS、應用程式內建解析及 TUN 接管範圍,不能只憑網頁能否開啟來判斷。不同應用程式可能採用不同解析路徑,應搭配封包擷取或日誌確認實際目的位址與傳輸路徑。
dns / nameserver / dns-hijack
proxy-providers
proxy-providers 會將節點來源整理為可引用的獨立集合,策略組透過 use 引用集合名稱。HTTP 類型可用 interval 設定更新間隔,並以 health-check 檢查節點;提供節點不代表也提供 rules 或 DNS 設定。擷取失敗時,請分辨是下載請求失敗,還是內容解析失敗;前者涉及網路路徑,後者則與資料格式有關。
proxy-providers / use / interval

RULES / POLICY

規則與策略組

規則決定連線交由誰處理,策略組則決定使用哪個出口;兩者透過名稱相互關聯。

規則分流
規則分流會依網域名稱、目標 IP、連接埠或其他條件,決定連線要直連、拒絕或套用某項策略。一般規則依序比對,前面先命中的規則優先;調整規則時,請先查看連線記錄中的命中項目,再判斷是否要調整順序或目標策略。結尾的 MATCH 通常負責兜底;若放得太前面,後續規則便無法命中。
rules / DOMAIN-SUFFIX / MATCH
策略組
策略組會將節點、內建策略或其他群組組合成規則可引用的目標。select 用於手動選擇,url-test 依測試結果選擇,fallback 則依可用性切換;群組名稱須與規則中的引用一致,群組之間也應避免形成循環引用。自動選擇也會受到測試網址、檢查間隔與容差影響,不代表每次建立新連線時都會重新測試所有節點。
proxy-groups / select / url-test / fallback
GeoIP 與 GeoSite
GeoIP 依據 IP 資料集比對位址歸屬,GeoSite 則依據網域名稱資料集比對網站分類。兩者都不是即時地理定位,也不保證涵蓋所有 CDN 或新網域;使用前請確認資料來源、分類名稱及核心支援狀況。發生分流錯誤時,先確認規則比對的是網域名稱還是解析後的 IP,再決定要補上網域規則或更新資料。
GEOIP / GEOSITE
rule-providers
rule-providers 會將規則內容整理成獨立集合,再由 RULE-SET 規則引用。集合的 behavior 與 format 必須符合檔案內容,例如網域集合與完整規則集合的格式就不相同;最後套用哪項策略仍由引用處指定。它與 proxy-providers 不同,提供的是比對條件,而非可連線的代理節點。
rule-providers / RULE-SET / behavior
Rule、Global 與 Direct 模式
Rule 模式依設定規則分流,Global 模式會將進入核心的連線交由全域策略處理,Direct 模式則直接連線至目標。模式只影響已進入核心的流量;切換為 Global 不會自動接管未設定代理的應用程式,也不等同啟用 TUN。排查時可切換模式縮小範圍,確認問題出在規則選擇還是節點連線,再恢復日常設定。
mode: rule / global / direct

LINUX / RUNTIME

Linux 系統元件

權限、程序與路由屬於系統層級;設定語法正確,不代表執行條件也已具備。

TUN 模式
TUN 透過虛擬網路裝置接收 IP 封包,搭配路由與 DNS 設定接管應用程式流量。Linux 通常需要相應的網路管理權限;啟用 tun.enable 後,仍須檢查裝置、路由及其他 VPN 是否衝突,不能只看介面上的開關。tun.stack 決定協定堆疊的實作方式,與 rule 或 global 這類分流模式屬於不同設定。
tun.enable / tun.stack / tun.auto-route
systemd 使用者服務
systemd 使用者服務由使用者層級的管理器執行,透過 systemctl --user 管理,服務檔通常位於 ~/.config/systemd/user/。它與系統層級服務的管理範圍、權限及日誌脈絡不同;使用者登出後是否繼續執行,也取決於使用者管理器的生命週期與 linger 設定。修改服務檔後,須先執行 daemon-reload,再重新啟動服務。
systemctl --user status mihomo
Linux capabilities
Linux capabilities 可將部分特權拆分為可獨立授予程序的能力,例如 CAP_NET_ADMIN 涉及網路裝置與路由管理。為二進位檔設定能力前,請確認檔案來源與實際需求;替換可執行檔後,原有的檔案能力可能失效,須重新檢查。檔案能力、systemd 的能力限制與執行環境都會影響結果;遇到權限錯誤時,請搭配服務日誌排查。
CAP_NET_ADMIN / getcap / setcap
代理環境變數
http_proxy、https_proxy 與 all_proxy 會向支援這些變數的應用程式提供代理位址,no_proxy 則指定略過代理的目標。變數通常由啟動環境繼承,不會自動影響已在執行的程式;不同工具對大小寫及協定格式的支援也可能有所差異。桌面瀏覽器、終端機命令與 systemd 服務的環境可能各不相同,因此終端機測試成功,不代表所有應用程式都已使用代理。
http_proxy / https_proxy / all_proxy / no_proxy