一、config.yaml 是什麼?
config.yaml 是 Clash 核心的配置檔案,以 YAML 格式撰寫,定義了代理節點、策略群組、分流規則和 DNS 等所有執行參數。ClashX 在 macOS 上啟動時會自動讀取此檔案,路徑通常位於 ~/.config/clash/config.yaml。
掌握 config.yaml 的撰寫,意味著你可以完全自訂網路流量的走向——哪些走代理、哪些直連、哪些被封鎖,全部由你掌控。
- 靈活性高:比 GUI 介面提供更多進階選項
- 可攜性:一份配置可在多台裝置間共享
- 版本管理:可用 Git 追蹤配置變更歷史
二、YAML 基礎語法
YAML(YAML Ain't Markup Language)是一種人類友善的資料序列化格式。在撰寫 config.yaml 前,需要了解以下基本規則:
- 縮排:使用空格縮排(不能用 Tab),通常 2 個空格為一級
- 鍵值對:
key: value,冒號後必須有空格 - 列表:以
-開頭,表示陣列中的一個元素 - 註解:以
#開頭
# 基礎配置範例
port: 7890 # HTTP 代理埠
socks-port: 7891 # SOCKS5 代理埠
allow-lan: false # 是否允許區域網連線
mode: rule # 執行模式:rule/global/direct
log-level: info # 日誌等級:silent/error/warning/info/debug
external-controller: 127.0.0.1:9090 # RESTful API 位址
注意:YAML 對縮排非常敏感,縮排錯誤會導致整個配置檔案解析失敗。建議使用支援 YAML 語法高亮的編輯器(如 VS Code)進行編輯。
三、proxies 代理節點配置
proxies 是你定義所有代理伺服器的地方。Clash 支援多種協定,包括 Shadowsocks (SS)、VMess、Trojan 等。每個節點需要指定名稱、類型、伺服器位址和連接埠等參數。
Shadowsocks (SS) 節點
proxies:
- name: "香港節點-SS"
type: ss
server: hk.example.com
port: 8388
cipher: aes-256-gcm
password: "your-password-here"
udp: true
VMess 節點
- name: "日本節點-VMess"
type: vmess
server: jp.example.com
port: 443
uuid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
alterId: 0
cipher: auto
tls: true
network: ws
ws-opts:
path: /path
headers:
Host: jp.example.com
Trojan 節點
- name: "美國節點-Trojan"
type: trojan
server: us.example.com
port: 443
password: "your-trojan-password"
sni: us.example.com
skip-cert-verify: false
udp: true
四、proxy-groups 策略群組配置
策略群組是 Clash 的精華功能之一,它允許你將多個節點組合起來,並定義智慧選擇策略。常用的策略類型有:
- select:手動選擇,適合需要精確控制的場景
- url-test:自動測速選優,定期測試延遲並選擇最快節點
- fallback:故障轉移,按順序嘗試節點,失敗時自動切換
- load-balance:負載均衡,將流量分散到多個節點
proxy-groups:
- name: "🚀 節點選擇"
type: select
proxies:
- "♻️ 自動選優"
- "香港節點-SS"
- "日本節點-VMess"
- "美國節點-Trojan"
- DIRECT
- name: "♻️ 自動選優"
type: url-test
proxies:
- "香港節點-SS"
- "日本節點-VMess"
- "美國節點-Trojan"
url: http://www.gstatic.com/generate_204
interval: 300
tolerance: 50
- name: "🛡️ 故障轉移"
type: fallback
proxies:
- "香港節點-SS"
- "日本節點-VMess"
- "美國節點-Trojan"
url: http://www.gstatic.com/generate_204
interval: 300
- name: "⚖️ 負載均衡"
type: load-balance
proxies:
- "香港節點-SS"
- "日本節點-VMess"
strategy: consistent-hashing
url: http://www.gstatic.com/generate_204
interval: 300
五、rules 分流規則
分流規則決定了每一條網路請求的去向。Clash 按照規則列表從上到下依次匹配,命中後立即執行。常用的規則類型包括:
- DOMAIN-SUFFIX:匹配網域名稱後綴,如
google.com - DOMAIN-KEYWORD:匹配網域名稱中包含的關鍵字
- IP-CIDR:匹配目標 IP 段
- GEOIP:匹配 IP 所屬國家/地區
- MATCH:兜底規則,匹配所有未命中的請求
rules:
# 直連規則
- DOMAIN-SUFFIX,cn,DIRECT
- DOMAIN-SUFFIX,local,DIRECT
- DOMAIN-KEYWORD,baidu,DIRECT
# 代理規則
- DOMAIN-SUFFIX,google.com,🚀 節點選擇
- DOMAIN-SUFFIX,youtube.com,🚀 節點選擇
- DOMAIN-SUFFIX,github.com,🚀 節點選擇
- DOMAIN-KEYWORD,telegram,🚀 節點選擇
# IP 規則
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
- GEOIP,CN,DIRECT
# 兜底規則(必須放在最後)
- MATCH,🚀 節點選擇
提示:規則順序很重要。更具體的規則應放在前面,MATCH 兜底規則必須放在最後。規則越多,匹配速度可能越慢,建議控制在合理範圍內。
六、DNS 配置
DNS 配置直接影響網路存取的速度和安全性。Clash 提供了豐富的 DNS 選項,包括 nameserver、fallback 和 fake-ip 模式。
dns:
enable: true
listen: 0.0.0.0:53
enhanced-mode: fake-ip # redir-host 或 fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- "*.lan"
- "*.local"
- "localhost.ptlogin2.qq.com"
nameserver:
- https://doh.pub/dns-query # 騰訊 DoH
- https://dns.alidns.com/dns-query # 阿里 DoH
- 114.114.114.114
fallback:
- https://dns.google/dns-query # Google DoH
- https://cloudflare-dns.com/dns-query
- tls://8.8.4.4:853
fallback-filter:
geoip: true
geoip-code: CN
ipcidr:
- 240.0.0.0/4
- fake-ip 模式:回傳虛假 IP,減少 DNS 洩漏,速度更快,推薦大多數使用者使用
- redir-host 模式:回傳真實 IP,相容性更好,適合需要取得真實 IP 的場景
- fallback:當 nameserver 回傳的結果被汙染時,使用 fallback 中的 DNS 伺服器重新解析
七、常見問題 FAQ
Q1:配置檔案儲存後 ClashX 沒有生效?
確保 YAML 格式正確(無 Tab 縮排、冒號後有空格),然後在 ClashX 選單列點擊「配置」→「重新載入配置」。可使用線上 YAML 校驗工具檢查語法。
Q2:如何同時使用訂閱和自訂規則?
推薦使用 proxy-providers 功能引入訂閱節點,再在本機配置檔案中撰寫自訂策略群組和規則,兩者可以完美共存。
Q3:規則太多會影響效能嗎?
一般情況下,幾千條規則對效能影響很小。Clash 使用了高效的匹配演算法,但建議避免重複規則,並將高頻命中的規則放在前面。
Q4:fake-ip 和 redir-host 怎麼選?
推薦 fake-ip 模式:速度更快、防 DNS 洩漏。只在某些應用出現相容問題時才切換到 redir-host。可透過 fake-ip-filter 對特定網域名稱使用真實 IP。
Q5:如何查看目前使用的配置檔案路徑?
在 ClashX 選單列點擊「配置」→「開啟配置資料夾」,即可看到目前使用的 config.yaml 檔案位置。