Clash config.yaml 完整指南
深入理解 Clash 設定檔的每個欄位含義,掌握代理節點、代理群組、規則分流、DNS 的完整寫法,自己動手寫出最符合需求的配置。
什麼是 config.yaml
config.yaml 是 Clash 的核心設定檔,採用 YAML 格式編寫。它告訴 Clash 核心:
監聽哪些連接埠
HTTP 代理、SOCKS5 代理、透明代理各自使用哪個連接埠
有哪些代理節點
所有節點的伺服器地址、協定類型、驗證資訊
如何分組與切換
節點按策略分組:手動選擇、自動測速、故障轉移
流量分流規則
哪些網域直連、哪些走代理、哪些拒絕
設定檔預設位置
%APPDATA%\clash-verge\profiles\
~/.config/clash-verge/profiles/
~/.config/clash-verge/profiles/
~/.config/mihomo/config.yaml
YAML 語法速查
在寫設定檔之前,先了解 YAML 的幾個核心規則,避免格式錯誤導致 Clash 無法啟動:
# 正確:用 2 個空格縮排
proxies:
- name: "節點A"
type: ss
# 錯誤:不能用 Tab 鍵
proxies:
- name: "節點A" # ← Tab,會報錯
- 開頭# 字符串列表
nameserver:
- 223.5.5.5
- 119.29.29.29
# 对象列表(每项多个字段)
proxies:
- name: "節點A"
type: ss
- name: "节点B"
type: vmess
# 含特殊字符时必须加引号
password: "p@ss:word#123"
# 纯字母数字可不加
log-level: info
# 布尔值不加引号
allow-lan: true
udp: false
## 整行注释
port: 7890 # 行末注释
# 注释可以帮你记录每项配置的用途
mode: rule # rule/global/direct
基礎配置參數
連接埠設置
Clash 通過本地連接埠對外提供代理服務,應用程式將代理地址指向這些連接埠。
# 方案一:分開設置(相容性最好)
port: 7890 # HTTP 代理連接埠
socks-port: 7891 # SOCKS5 代理連接埠
redir-port: 7892 # 透明代理連接埠(Linux/macOS,TUN 模式相關)
# 方案二:混合連接埠(推薦,HTTP+SOCKS5 合一)
mixed-port: 7890
# 與方案一互斥,選其一即可
port整數HTTP 代理連接埠,瀏覽器代理填寫此連接埠
socks-port整數SOCKS5 連接埠,適用於遊戲、命令列工具
mixed-port整數HTTP+SOCKS5 混合連接埠,推薦使用
redir-port整數透明代理連接埠,TUN/iptables 場景使用
allow-lan布林值是否允許區域網路其他設備使用此代理,預設 false
代理模式與日誌
mode: rule # rule(規則)| global(全局)| direct(直連)
log-level: info # silent | error | warning | info | debug
ipv6: false # 是否允許核心接受 IPv6 流量
rule規則模式日常使用首選,按規則自動分流
global全局代理所有流量走代理,臨時調試使用
direct全域直連所有流量不走代理,等同關閉
外部控制介面(RESTful API)
Clash 提供 RESTful API 用於外部控制,Web 管理面板(如 Metacubexd)通過此介面查看流量、切換節點。
external-controller: 127.0.0.1:9090 # API 監聽位址
secret: "" # API 存取金鑰(建議設置)
external-ui: ui # Web 面板檔案目錄(可選)
external-ui-url: "https://github.com/MetaCubeX/metacubexd/archive/gh-pages.zip"
external-controller 改為 0.0.0.0:9090 可允許區域網路內其他設備訪問 Web 面板,但務必同時設置 secret 防止未授權訪問。DNS 配置詳解
Clash 內建 DNS 模組,接管系統 DNS 解析後,可以實現更精準的分流和防止 DNS 洩漏。強烈建議開啟,尤其是規則模式和 TUN 模式下。
enhanced-mode:核心 DNS 工作模式
dns:
enable: true # 开启内置 DNS
listen: 0.0.0.0:53 # DNS 监听地址
ipv6: false # 是否解析 IPv6
enhanced-mode: fake-ip # fake-ip(推荐)或 redir-host
fake-ip-range: 198.18.0.1/16 # Fake-IP 地址池范围
fake-ip返回虛假 IP,連線請求立即發出,Clash 按網域比對規則推薦
redir-host正常 DNS 解析後,按真實 IP 比對 IP-CIDR 規則相容性好
上游 DNS 伺服器配置
dns:
# 国内 DNS(用于解析国内域名)
nameserver:
- 168.95.1.1 # HiNet DNS(台灣)
- 1.1.1.1 # Cloudflare DNS
- system # 跟隨系統 DNS
# 境外 DNS(用於解析非台灣網域,防止污染)
# 使用加密 DNS(DoT/DoH)避免被 ISP 劫持
fallback:
- tls://8.8.8.8:853 # Google DNS over TLS
- tls://1.1.1.1:853 # Cloudflare DNS over TLS
- https://dns.google/dns-query # Google DoH
# fallback 触发条件:被判定为非国内 IP 时使用 fallback DNS
fallback-filter:
geoip: true
geoip-code: TW # 非 CN IP 触发 fallback
ipcidr:
- 240.0.0.0/4 # 保留地址段也触发 fallback
fake-ip-filter:排除不走 Fake-IP 的網域
某些本地服務(如 NAS 發現、mDNS、QQ 登入驗證)依賴真實 IP,需要從 Fake-IP 中排除:
dns:
fake-ip-filter:
- '*.lan' # 區域網路網域直連
- '*.local' # 本機 mDNS
- localhost.ptlogin2.qq.com # QQ 登入驗證
- +.stun.*.* # STUN 服務(WebRTC)
- +.stun.*.*.*
- time.*.com # NTP 時間同步
- time.*.gov
- ntp.*.com
proxies — 代理節點配置
proxies 是一個列表,每個條目代表一個代理節點。以下是四種主流協定的完整寫法:
Shadowsocks
proxies:
- name: "🇭🇰 香港-SS" # 節點名稱,可自訂
type: ss
server: hk.example.com # 伺服器網域或 IP
port: 443
cipher: aes-256-gcm # 加密方式(常見:aes-256-gcm / chacha20-ietf-poly1305)
password: "your-password"
udp: true # 開啟 UDP 轉發(遊戲必開)
# 帶 obfs 混淆外掛的 SS(增強抗封鎖能力)
- name: "🇯🇵 日本-SS-obfs"
type: ss
server: jp.example.com
port: 80
cipher: chacha20-ietf-poly1305
password: "your-password"
plugin: obfs
plugin-opts:
mode: http # http 或 tls
host: bing.com # 偽裝的目標網域
VMess
# VMess + WebSocket + TLS(最常見搭配)
- name: "🇺🇸 美國-VMess-WS"
type: vmess
server: us.example.com
port: 443
uuid: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
alterId: 0 # 新版協定固定填 0
cipher: auto
network: ws # 傳輸協定:ws / grpc / tcp / h2
tls: true
servername: us.example.com # SNI,與 server 一致或 CDN 網域
ws-opts:
path: /vmess # 與伺服器端 path 一致
headers:
Host: us.example.com
# VMess + gRPC(低延遲,穿透性強)
- name: "🇸🇬 新加坡-VMess-gRPC"
type: vmess
server: sg.example.com
port: 443
uuid: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
alterId: 0
cipher: auto
network: grpc
tls: true
grpc-opts:
grpc-service-name: "vmess-grpc"
Trojan
- name: "🇯🇵 日本-Trojan"
type: trojan
server: jp.example.com
port: 443
password: "your-password"
sni: jp.example.com # TLS SNI(通常與 server 相同)
udp: true
skip-cert-verify: false # 正式環境保持 false,勿跳過憑證驗證
# Trojan + WebSocket(用於 CDN 中繼)
- name: "🇰🇷 韓國-Trojan-WS"
type: trojan
server: kr.example.com
port: 443
password: "your-password"
network: ws
ws-opts:
path: /trojan
headers:
Host: kr.example.com
Hysteria 2
基於 QUIC 的新一代協定,專為高丟包環境優化,適合國際線路提速。
- name: "⚡ 美國-Hysteria2"
type: hysteria2
server: us.example.com
port: 443
password: "your-password"
sni: us.example.com
skip-cert-verify: false
# 上傳/下載頻寬限速(單位 Mbps,依實際頻寬填寫)
up: "50 Mbps"
down: "200 Mbps"
up / down 填寫的是您本地的上傳/下載頻寬,不是節點頻寬。填寫準確值有助於 QUIC 發揮最佳性能,填寫過大反而會造成擁塞。proxy-groups — 代理群組詳解
代理群組是 Clash 最強大的特性之一。它將多個節點按照策略組合,讓流量規則可以指向「一組節點」而非單個節點。
select — 手動選擇
最基礎的代理群組類型,由用戶在用戶端介面手動選擇目前激活的節點。
proxy-groups:
- name: "🚀 節點選擇"
type: select
proxies:
- "⚡ 自動選擇" # 引用其他代理群組
- "🛡️ 故障轉移"
- "🇭🇰 香港-SS" # 引用單個節點(名稱必須與 proxies 中一致)
- "🇺🇸 美國-VMess-WS"
- "🇯🇵 日本-Trojan"
- DIRECT # 特殊值:直連,不走任何代理
- REJECT # 特殊值:拒絕連線(用於廣告攔截)
url-test — 自動選速
定期對所有節點發起延遲測試,自動切換到延遲最低的節點。
- name: "⚡ 自動選擇"
type: url-test
proxies:
- "🇭🇰 香港-SS"
- "🇺🇸 美國-VMess-WS"
- "🇯🇵 日本-Trojan"
- "⚡ 美國-Hysteria2"
url: 'http://www.gstatic.com/generate_204' # 測速目標 URL
interval: 300 # 測速間隔(秒)
tolerance: 50 # 切換容忍度(ms),差距超過此值才切換
lazy: true # 懶測速:有流量時才測,省資源
fallback — 故障轉移
按 proxies 列表順序優先使用第一個節點,當第一個節點不可用時自動切換到下一個,保證連通性。
- name: "🛡️ 故障轉移"
type: fallback
proxies:
- "🇭🇰 香港-SS" # 首選節點
- "🇯🇵 日本-Trojan" # 備用一
- "🇺🇸 美國-VMess-WS" # 備用二
url: 'http://www.gstatic.com/generate_204'
interval: 60 # 檢測間隔(秒),比 url-test 更短以快速感知故障
load-balance — 負載平衡
將不同的連線分散到多個節點上,適合多連線並發的下載場景,可提升整體吞吐量。
- name: "⚖️ 負載均衡"
type: load-balance
strategy: consistent-hashing # round-robin(輪詢)| consistent-hashing(雜湊,同網域走同節點)
proxies:
- "🇭🇰 香港-SS"
- "🇯🇵 日本-Trojan"
- "🇺🇸 美國-VMess-WS"
url: 'http://www.gstatic.com/generate_204'
interval: 300
rules — 規則配置詳解
規則決定了每一條網路請求的去向:直連、走哪個代理群組,還是直接拒絕。規則按從上到下的順序比對,命中第一條即執行,不再繼續往下比對。
規則類型一覽
DOMAIN
DOMAIN,google.com,策略
精確比對完整網域
DOMAIN-SUFFIX
DOMAIN-SUFFIX,google.com,策略
比對網域及其所有子網域
DOMAIN-KEYWORD
DOMAIN-KEYWORD,google,策略
網域包含關鍵字即比對
IP-CIDR
IP-CIDR,192.168.0.0/16,策略
比對目標 IP 地址段
IP-CIDR6
IP-CIDR6,::1/128,策略
比對 IPv6 地址段
GEOIP
GEOIP,CN,策略
按目標 IP 的地理位置(國家)比對
GEOSITE
GEOSITE,CN,策略
按預設網域資料庫比對(Mihomo 擴展)
PROCESS-NAME
PROCESS-NAME,steam.exe,策略
按發起請求的程序名比對(桌面端)
RULE-SET
RULE-SET,規則集名稱,策略
引用外部規則集文件(批量規則)
MATCH
MATCH,策略
兜底規則,比對所有未命中的請求(必須放最後)
規則比對優先級
DOMAIN)放越前面,越寬泛的規則(如 GEOIP)放後面,MATCH 必須放最後一行。DOMAIN 精確網域最高DOMAIN-SUFFIX 網域後綴DOMAIN-KEYWORD 網域關鍵字IP-CIDR / GEOIP IP 地址規則MATCH 兜底(放最後)必須最後常用規則寫法範例
rules:
# ===== 廣告與惡意網域攔截 =====
- DOMAIN-KEYWORD,adservice,REJECT
- DOMAIN-SUFFIX,doubleclick.net,REJECT
- DOMAIN-SUFFIX,googlesyndication.com,REJECT
# ===== 開發者工具走代理(精確比對優先) =====
- DOMAIN-SUFFIX,github.com,🚀 節點選擇
- DOMAIN-SUFFIX,githubusercontent.com,🚀 節點選擇
- DOMAIN-SUFFIX,npmjs.com,🚀 節點選擇
- DOMAIN-SUFFIX,docker.io,🚀 節點選擇
- DOMAIN-SUFFIX,docker.com,🚀 節點選擇
# ===== 依程序名規則(僅桌面端支援) =====
- PROCESS-NAME,steam.exe,🚀 節點選擇
- PROCESS-NAME,git,🚀 節點選擇
# ===== 私有位址直連 =====
- IP-CIDR,127.0.0.0/8,DIRECT
- IP-CIDR,172.16.0.0/12,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT
- IP-CIDR,10.0.0.0/8,DIRECT
# ===== 台灣 IP 直連 =====
- GEOIP,TW,DIRECT
# ===== 補底規則(未比對到的全走代理) =====
- MATCH,🚀 節點選擇
完整 config.yaml 範例
以下是一份結構完整、註解詳盡的 Clash 設定檔,包含三種協定節點、四種代理群組類型和完整的規則分流,可直接複製後按需修改:
# ============================================================
# Clash config.yaml 完整示例
# ============================================================
# --- 基礎設定 ---
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
ipv6: false
external-controller: 127.0.0.1:9090
secret: ""
# --- DNS 設定 ---
dns:
enable: true
listen: 0.0.0.0:53
ipv6: false
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- '*.lan'
- '*.local'
- localhost.ptlogin2.qq.com
- +.stun.*.*
- time.*.com
- ntp.*.com
nameserver:
- 168.95.1.1
- 1.1.1.1
fallback:
- tls://8.8.8.8:853
- tls://1.1.1.1:853
fallback-filter:
geoip: true
geoip-code: TW
# --- 代理節點 ---
proxies:
- name: "🇭🇰 香港-SS"
type: ss
server: hk.example.com
port: 443
cipher: aes-256-gcm
password: "your-ss-password"
udp: true
- name: "🇺🇸 美国-VMess"
type: vmess
server: us.example.com
port: 443
uuid: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
alterId: 0
cipher: auto
network: ws
tls: true
servername: us.example.com
ws-opts:
path: /vmess
headers:
Host: us.example.com
- name: "🇯🇵 日本-Trojan"
type: trojan
server: jp.example.com
port: 443
password: "your-trojan-password"
sni: jp.example.com
udp: true
# --- 代理群組 ---
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"
- "🇯🇵 日本-Trojan"
- "🇺🇸 美国-VMess"
url: 'http://www.gstatic.com/generate_204'
interval: 60
- name: "🎬 串流媒體"
type: select
proxies:
- "🇺🇸 美国-VMess"
- "🇯🇵 日本-Trojan"
- "🚀 節點選擇"
# --- 規則 ---
rules:
# 廣告攔截
- DOMAIN-KEYWORD,adservice,REJECT
- DOMAIN-SUFFIX,doubleclick.net,REJECT
# 串流媒體
- DOMAIN-SUFFIX,netflix.com,🎬 串流媒體
- DOMAIN-SUFFIX,nflxso.net,🎬 串流媒體
- DOMAIN-SUFFIX,disneyplus.com,🎬 串流媒體
- DOMAIN-SUFFIX,spotify.com,🎬 串流媒體
# 開發者工具
- DOMAIN-SUFFIX,github.com,🚀 節點選擇
- DOMAIN-SUFFIX,githubusercontent.com,🚀 節點選擇
- DOMAIN-SUFFIX,npmjs.com,🚀 節點選擇
- DOMAIN-SUFFIX,docker.io,🚀 節點選擇
# 私有位址直連
- IP-CIDR,127.0.0.0/8,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT
- IP-CIDR,10.0.0.0/8,DIRECT
# 台灣直連
- GEOIP,TW,DIRECT
# 補底:其餘走代理
- MATCH,🚀 節點選擇