首頁/設定手冊
Clash 設定檔完整參考
config.yaml 是 Clash 的唯一「大腦」。這一篇按頂層欄位逐一拆解:每個欄位是什麼類型、預設值是多少、什麼時候需要改它──把它當字典查,比翻原始碼快得多。
基礎網路欄位
這幾項決定 Clash 在本機監聽哪些連接埠、以什麼方式接收流量,幾乎每份設定都會用到。
HTTP 代理監聽連接埠,例如 7890。設定系統代理時,HTTP/HTTPS 都會指向這個連接埠。
SOCKS5 代理監聽連接埠。部分工具(下載器、命令列程式)只支援 SOCKS5,需要單獨設定這個連接埠。
混合連接埠,同一個連接埠同時接受 HTTP 與 SOCKS5 連線。現代客戶端一般只需要設定這一個連接埠,比分開寫 port 和 socks-port 更省心。
是否允許區域網路內的其他裝置透過本機 IP 連線這個代理連接埠。想用手機連線電腦上跑的 Clash 時需要開啟,同時建議搭配下面的 authentication 使用,避免區域網路內被陌生裝置白用。
代理連接埠繫結的網路卡位址,* 表示監聽所有網路卡。一般無需修改。
運行模式與日誌
rule 按 rules 清單分流(推薦日常使用);global 強制所有流量走同一個代理群組,常用於臨時除錯;direct 所有流量直連,等同於關閉代理但保留客戶端運行。
日誌詳細程度。排查連線問題時可臨時改成 debug,查看每條規則的具體比對過程;日常使用建議保持 info,避免日誌檔案迅速膨脹。
是否啟用 IPv6 支援。如果所在網路與部分節點原生支援 IPv6,可以開啟以提升相容性;若不確定,各地網路的 IPv6 支援程度差異頗大,維持關閉通常較為保險。
外部控制器與面板
開啟一個 RESTful API 監聽位址,搭配的 Web 控制面板(Dashboard)就是透過這個介面讀取代理狀態、連線清單與即時流量的。絕大多數帶介面的客戶端會自動幫你設定好這一項。
存取 external-controller 介面所需的金鑰。如果 allow-lan 開啟、面板又暴露在區域網路中,務必設定一個金鑰,否則區域網路內任何人都能讀取/修改你的代理設定。
proxies:節點定義
proxies 是一份清單,每一項描述一個具體的代理節點,欄位隨協定不同而變化,但都包含這幾個通用欄位:
| 欄位 | 說明 |
|---|---|
name | 節點顯示名稱,規則和代理群組裡引用的就是這個名稱 |
type | 協定類型:ss / vmess / trojan / socks5 等 |
server | 伺服器位址(網域或 IP) |
port | 伺服器連接埠 |
| 其餘欄位 | 按協定不同,例如 Shadowsocks 需要 cipher 與 password,VMess 需要 uuid 與 alterId |
proxies:
- name: 香港01
type: ss
server: hk01.example.com
port: 443
cipher: aes-256-gcm
password: "your-password"
- name: 日本01
type: trojan
server: jp01.example.com
port: 443
password: "your-password"
sni: jp01.example.com
如果訂閱連結是標準格式,客戶端會自動把這一整段解析出來,你通常不需要手寫──但理解結構有助於排查「某個節點連不上」時到底是哪個欄位出了問題。
proxy-groups:調度群組
四種類型(select / url-test / fallback / load-balance)的行為差異已經在進階設定詳細講過,這裡補充幾個常用的通用欄位:
| 欄位 | 適用類型 | 說明 |
|---|---|---|
proxies | 群組內包含哪些具體節點或子分組的名稱清單 | 群組內包含哪些具體節點或子分組的名稱清單 |
use | 全部 | 引用一個 proxy-providers 遠端節點集合,替代手寫節點清單 |
url | url-test / fallback / load-balance | 用於健康檢測的測速位址,一般用輕量的 generate_204 類介面 |
interval | url-test / fallback / load-balance | 健康檢測間隔(秒) |
tolerance | url-test | 延遲容差(毫秒),避免節點在相近延遲間頻繁切換 |
strategy | load-balance | consistent-hashing 或 round-robin,決定分配演算法 |
rules:分流規則
完整的規則類型清單見進階設定 · 規則類型詳解。這裡只強調格式:每一行都是逗號分隔的三段式 類型,值,動作(MATCH 例外,只有兩段)。
rules:
- DOMAIN-SUFFIX,github.com,自動選擇
- GEOIP,CN,DIRECT
- MATCH,自動選擇
dns:網域解析
欄位詳解與 Fake-IP / Redir-Host 兩種模式的取捨,見進階設定 · DNS 與 Fake-IP。核心欄位速查:
| 欄位 | 類型 | 說明 |
|---|---|---|
enable | boolean | 是否啟用內建 DNS 模組(TUN 模式下必須啟用) |
enhanced-mode | fake-ip / redir-host | 網域解析策略,見進階設定對比 |
fake-ip-range | string | Fake-IP 使用的虛擬位址段,需與本機區域網段不衝突 |
nameserver | string[] | 預設使用的上游 DNS 伺服器 |
fallback | string[] | 當結果被判定為不可信時使用的備用 DNS |
fallback-filter | object | 決定何時啟用 fallback 的判定條件,如按 geoip-code 判斷 |
tun:虛擬網路卡
底層原理見進階設定 · TUN 模式底層原理。核心欄位:
| 欄位 | 類型 | 說明 |
|---|---|---|
enable | boolean | 是否啟用 TUN 模式 |
stack | system / gvisor | 網路堆疊實作方式,見進階設定對比 |
auto-route | boolean | 是否自動設定系統路由表指向虛擬網路卡 |
auto-detect-interface | boolean | 自動偵測實體網路卡,避免手動指定出口介面 |
dns-hijack | string[] | 需要被劫持接管的 DNS 請求位址範圍 |
profile:快取策略
開啟後,你在 select 類型代理群組裡手動切換的節點會被記住,下次啟動客戶端或更新訂閱後依然保持你上次的選擇,而不是重置回設定檔裡寫的預設節點。
是否快取 Fake-IP 的網域對應關係。開啟可以減少重啟後的重複對應開銷,但極少數情境下可能導致對應與真實解析結果暫時不一致。
一份最小可用設定
把以上內容拼起來,一份能實際運作的最小設定大致是這樣(實際使用時 proxies 通常由訂閱自動產生,無需手寫):
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090
proxies:
- name: 節點01
type: ss
server: example.com
port: 443
cipher: aes-256-gcm
password: "your-password"
proxy-groups:
- name: 自動選擇
type: url-test
proxies: [節點01]
url: "https://www.gstatic.com/generate_204"
interval: 300
rules:
- GEOIP,CN,DIRECT
- MATCH,自動選擇
把這份檔案儲存為 config.yaml 並匯入客戶端,就是一個能正常分流的最小系統。之後按需逐步加上 dns、tun、rule-providers 等模組即可。