首頁/設定手冊

Clash 設定檔完整參考

config.yaml 是 Clash 的唯一「大腦」。這一篇按頂層欄位逐一拆解:每個欄位是什麼類型、預設值是多少、什麼時候需要改它──把它當字典查,比翻原始碼快得多。

🕒 建議收藏隨時查閱 🧭 涉及行為差異見進階設定 🔄 最近更新:2026 年 7 月

基礎網路欄位

這幾項決定 Clash 在本機監聽哪些連接埠、以什麼方式接收流量,幾乎每份設定都會用到。

portnumber預設無

HTTP 代理監聽連接埠,例如 7890。設定系統代理時,HTTP/HTTPS 都會指向這個連接埠。

socks-portnumber預設無

SOCKS5 代理監聽連接埠。部分工具(下載器、命令列程式)只支援 SOCKS5,需要單獨設定這個連接埠。

mixed-portnumber預設無

混合連接埠,同一個連接埠同時接受 HTTP 與 SOCKS5 連線。現代客戶端一般只需要設定這一個連接埠,比分開寫 portsocks-port 更省心。

allow-lanboolean預設 false

是否允許區域網路內的其他裝置透過本機 IP 連線這個代理連接埠。想用手機連線電腦上跑的 Clash 時需要開啟,同時建議搭配下面的 authentication 使用,避免區域網路內被陌生裝置白用。

bind-addressstring預設 *

代理連接埠繫結的網路卡位址,* 表示監聽所有網路卡。一般無需修改。

運行模式與日誌

moderule | global | direct預設 rule

rulerules 清單分流(推薦日常使用);global 強制所有流量走同一個代理群組,常用於臨時除錯;direct 所有流量直連,等同於關閉代理但保留客戶端運行。

log-levelsilent | error | warning | info | debug預設 info

日誌詳細程度。排查連線問題時可臨時改成 debug,查看每條規則的具體比對過程;日常使用建議保持 info,避免日誌檔案迅速膨脹。

ipv6boolean預設 false

是否啟用 IPv6 支援。如果所在網路與部分節點原生支援 IPv6,可以開啟以提升相容性;若不確定,各地網路的 IPv6 支援程度差異頗大,維持關閉通常較為保險。

外部控制器與面板

external-controllerstring如 127.0.0.1:9090

開啟一個 RESTful API 監聽位址,搭配的 Web 控制面板(Dashboard)就是透過這個介面讀取代理狀態、連線清單與即時流量的。絕大多數帶介面的客戶端會自動幫你設定好這一項。

secretstring預設空白

存取 external-controller 介面所需的金鑰。如果 allow-lan 開啟、面板又暴露在區域網路中,務必設定一個金鑰,否則區域網路內任何人都能讀取/修改你的代理設定。

proxies:節點定義

proxies 是一份清單,每一項描述一個具體的代理節點,欄位隨協定不同而變化,但都包含這幾個通用欄位:

欄位說明
name節點顯示名稱,規則和代理群組裡引用的就是這個名稱
type協定類型:ss / vmess / trojan / socks5
server伺服器位址(網域或 IP)
port伺服器連接埠
其餘欄位按協定不同,例如 Shadowsocks 需要 cipherpassword,VMess 需要 uuidalterId
config.yamlyaml
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 遠端節點集合,替代手寫節點清單
urlurl-test / fallback / load-balance用於健康檢測的測速位址,一般用輕量的 generate_204 類介面
intervalurl-test / fallback / load-balance健康檢測間隔(秒)
toleranceurl-test延遲容差(毫秒),避免節點在相近延遲間頻繁切換
strategyload-balanceconsistent-hashinground-robin,決定分配演算法

rules:分流規則

完整的規則類型清單見進階設定 · 規則類型詳解。這裡只強調格式:每一行都是逗號分隔的三段式 類型,值,動作MATCH 例外,只有兩段)。

config.yamlyaml
rules:
  - DOMAIN-SUFFIX,github.com,自動選擇
  - GEOIP,CN,DIRECT
  - MATCH,自動選擇

dns:網域解析

欄位詳解與 Fake-IP / Redir-Host 兩種模式的取捨,見進階設定 · DNS 與 Fake-IP。核心欄位速查:

欄位類型說明
enableboolean是否啟用內建 DNS 模組(TUN 模式下必須啟用)
enhanced-modefake-ip / redir-host網域解析策略,見進階設定對比
fake-ip-rangestringFake-IP 使用的虛擬位址段,需與本機區域網段不衝突
nameserverstring[]預設使用的上游 DNS 伺服器
fallbackstring[]當結果被判定為不可信時使用的備用 DNS
fallback-filterobject決定何時啟用 fallback 的判定條件,如按 geoip-code 判斷

tun:虛擬網路卡

底層原理見進階設定 · TUN 模式底層原理。核心欄位:

欄位類型說明
enableboolean是否啟用 TUN 模式
stacksystem / gvisor網路堆疊實作方式,見進階設定對比
auto-routeboolean是否自動設定系統路由表指向虛擬網路卡
auto-detect-interfaceboolean自動偵測實體網路卡,避免手動指定出口介面
dns-hijackstring[]需要被劫持接管的 DNS 請求位址範圍

profile:快取策略

profile.store-selectedboolean預設 false

開啟後,你在 select 類型代理群組裡手動切換的節點會被記住,下次啟動客戶端或更新訂閱後依然保持你上次的選擇,而不是重置回設定檔裡寫的預設節點。

profile.store-fake-ipboolean預設 false

是否快取 Fake-IP 的網域對應關係。開啟可以減少重啟後的重複對應開銷,但極少數情境下可能導致對應與真實解析結果暫時不一致。

一份最小可用設定

把以上內容拼起來,一份能實際運作的最小設定大致是這樣(實際使用時 proxies 通常由訂閱自動產生,無需手寫):

config.yamlyaml
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 並匯入客戶端,就是一個能正常分流的最小系統。之後按需逐步加上 dnstunrule-providers 等模組即可。