Clash YAML 設定檔是整個代理系統的核心,掌握其結構與欄位規範是進階使用的必經之路。訂閱連結提供的設定往往是通用範本,並不針對具體場景最佳化。本文為 Clash 官方設定檔完整說明,系統講解每個核心欄位的定義與官方推薦的最佳實務寫法。
設定檔整體結構
一份完整的 Clash 設定檔由六個主要部分組成:全域參數、DNS 設定、代理節點(proxies)、策略組(proxy-groups)、規則(rules)以及可選的 TUN 設定。這六個部分共同決定了 Clash 如何處理你的每一條網路請求。
port: 7890
socks-port: 7891
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090
dns:
enable: true
enhanced-mode: fake-ip
nameserver: [1.1.1.1, 8.8.8.8]
proxies: [ ... ]
proxy-groups: [ ... ]
rules: [ ... ]
全域參數詳解
全域參數控制 Clash 的基本執行行為,以下是最常用的幾個欄位:
port與socks-port:分別是 HTTP 代理和 SOCKS5 代理的監聽連接埠,預設 7890/7891。也可以用mixed-port: 7890合併為一個連接埠同時支援兩種協定。allow-lan:設為true後,區域網路內的其他裝置也可以將 Clash 作為代理伺服器,適合路由器層級的共享代理場景。mode:全域代理模式,可選rule(智慧分流)、global(全部走代理)、direct(全部直連)。external-controller:開放 RESTful API 的位址和連接埠,各類 Dashboard(如 Yacd、MetaCubeXD)透過此介面與 Clash 通訊,實現圖形化控制。
proxies:代理節點設定
proxies 陣列中的每個物件代表一個代理伺服器節點。不同協定的必填欄位不同,但 name、type、server、port 是所有協定通用的必填項。
Clash(Mihomo 核心)支援 Shadowsocks、VMess、VLESS、Trojan、Hysteria2、TUIC 等二十餘種協定。以下是三種最常見協定的範例設定:
proxies:
- name: "🇭🇰 香港-01"
type: ss
server: hk.example.com
port: 8388
cipher: chacha20-ietf-poly1305
password: "your-password"
udp: true
- name: "🇺🇸 美國-01"
type: vmess
server: us.example.com
port: 443
uuid: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
alterId: 0
cipher: auto
tls: true
network: ws
ws-opts:
path: /ray
headers:
Host: us.example.com
- name: "🇯🇵 日本-01"
type: trojan
server: jp.example.com
port: 443
password: "your-password"
sni: jp.example.com
udp: true
proxy-groups:策略組
策略組是 Clash 區別於其他代理工具的核心優勢。它將多個節點組合成一個邏輯代理單元,支援手動選擇、自動測速、故障轉移、負載均衡四種工作方式,並且策略組之間可以相互巢狀引用,構建出靈活的分層代理架構。
proxy-groups:
- name: "🚀 節點選擇"
type: select
proxies: ["♻️ 自動選擇", "🇭🇰 香港-01", "🇺🇸 美國-01", DIRECT]
- name: "♻️ 自動選擇"
type: url-test
url: http://www.gstatic.com/generate_204
interval: 300
tolerance: 50
proxies: ["🇭🇰 香港-01", "🇯🇵 日本-01", "🇺🇸 美國-01"]
- name: "🎬 串流服務"
type: select
proxies: ["🇺🇸 美國-01", "🇯🇵 日本-01"]
上面的設定構建了一個兩層結構:「節點選擇」策略組作為對外暴露的入口,使用者可以在這裡手動選擇具體節點或選擇「自動選擇」策略組;「自動選擇」策略組會在背景持續測速,自動切換到延遲最低的節點。
rules:分流規則
規則清單按從上到下的順序逐條比對,一旦某條規則命中,立即執行對應動作並停止繼續比對。規則格式為 類型,比對值,策略,最後一條必須是 MATCH 兜底規則。
rules:
- DOMAIN,google.com,🚀 節點選擇
- DOMAIN-SUFFIX,youtube.com,🎬 串流服務
- DOMAIN-KEYWORD,facebook,🚀 節點選擇
- GEOIP,TW,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- MATCH,🚀 節點選擇
RULE-SET 引用社群維護的規則集,如 Loyalsoldier/clash-rules,包含了精心整理的本地直連域名和代理域名清單,開箱即用且定期更新。
設定最佳實務
在實際使用中,有幾個設定建議可以顯著提升體驗:第一,將常用的串流平台(Netflix、Disney+、YouTube)單獨設定策略組,方便根據需要解鎖不同地區的內容;第二,為 url-test 策略組設定合理的 tolerance(容差值),避免延遲差異很小時頻繁切換節點;第三,使用 external-controller 搭配 Yacd 或 MetaCubeXD 等 Dashboard,可以在瀏覽器中即時監控連線狀態和流量,大大方便排查問題。