TUN 模式
TUN(網路隧道)模式透過在作業系統核心層建立虛擬網卡,在驅動層攔截所有 TCP/UDP 流量,實現真正的全域代理——無需應用程式主動支援代理協定。
- 遊戲客戶端(Steam、Epic、UPlay)不走系統代理,延遲高或連不上
- 命令列工具
git clone、npm install、pip install無法走代理 - Electron 應用(VS Code、Discord)內部請求不經過系統代理
- 需要代理 UDP 流量(如語音通話、DNS-over-UDP、遊戲 UDP 協定)
如何開啟 TUN 模式
TUN 設定示例
# TUN mode configuration
tun:
enable: true
stack: mixed # mixed = gVisor(UDP) + system(TCP), best compatibility
auto-route: true # auto-add routing rules for TUN interface
auto-redirect: true # auto-redirect TCP connections (Linux)
auto-detect-interface: true
dns-hijack:
- any:53 # intercept all DNS queries to prevent leaks
strict-route: true # stricter routing, prevents traffic bypass
mixed 相容性最佳(TCP 走 system,UDP 走 gVisor);純 system 效能更高但 UDP 支援較弱;gvisor UDP 支援最完整但 CPU 佔用略高。
GEOIP,CN,DIRECT),避免國內流量也走代理造成速度下降。
YAML 規則分流設定
Clash 透過設定檔中的 rules 欄位控制每條流量的走向——國內流量直連、境外流量代理、廣告域名攔截。規則按順序匹配,命中第一條即生效。
規則型別速查
| 規則型別 | 匹配內容 | 示例 |
|---|---|---|
DOMAIN |
完整域名精確匹配 | DOMAIN,google.com,PROXY |
DOMAIN-SUFFIX |
域名字尾(含子域名) | DOMAIN-SUFFIX,github.com,PROXY |
DOMAIN-KEYWORD |
域名含關鍵詞 | DOMAIN-KEYWORD,google,PROXY |
IP-CIDR |
IP 地址段 | IP-CIDR,192.168.0.0/16,DIRECT |
GEOIP |
IP 歸屬地(國家/地區) | GEOIP,CN,DIRECT |
RULE-SET |
引用外部規則集檔案 | RULE-SET,reject,REJECT |
MATCH |
兜底規則(必須放最後) | MATCH,PROXY |
完整分流設定示例
# proxy groups
proxy-groups:
- name: PROXY
type: select
proxies:
- Auto-Speed-Test
- HK-01
- US-01
- name: Auto-Speed-Test
type: url-test
url: https://www.gstatic.com/generate_204
interval: 300
proxies:
- HK-01
- US-01
# rule-sets from community-maintained lists
rule-providers:
reject:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt"
path: ./ruleset/reject.yaml
interval: 86400
proxy:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt"
path: ./ruleset/proxy.yaml
interval: 86400
direct:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt"
path: ./ruleset/direct.yaml
interval: 86400
# rules — matched top to bottom, first match wins
rules:
- RULE-SET,reject,REJECT # block ads/trackers
- RULE-SET,direct,DIRECT # CN domains → direct
- RULE-SET,proxy,PROXY # known proxy domains
- DOMAIN-SUFFIX,cn,DIRECT
- GEOIP,LAN,DIRECT
- GEOIP,CN,DIRECT
- MATCH,PROXY # everything else → proxy
DNS 防汙染設定
DNS 汙染會導致境外域名被解析到錯誤 IP,造成連線失敗或流量被劫持。Clash 內建 DNS 模組,可啟用 DoH / DoT 加密解析,並針對國內外域名分別使用不同的 DNS 伺服器,解析速度更快、更安全。
明文 UDP 53 埠,運營商可輕易篡改響應內容,將境外域名指向封鎖 IP 或錯誤地址。
DNS-over-HTTPS 或 DNS-over-TLS,全程 TLS 加密,運營商無法篡改,徹底防止 DNS 汙染與劫持。
推薦 DNS 設定(國內外分流解析)
dns:
enable: true
ipv6: false
listen: 0.0.0.0:53
enhanced-mode: fake-ip # fake-ip prevents DNS leaks, recommended
fake-ip-range: 198.18.0.1/16
# Nameservers for domains NOT matched by nameserver-policy
nameserver:
- https://dns.google/dns-query # Google DoH
- https://cloudflare-dns.com/dns-query # Cloudflare DoH
- tls://1.1.1.1:853 # Cloudflare DoT
# Fallback: used when nameserver returns potentially polluted result
fallback:
- https://dns.google/dns-query
- https://doh.pub/dns-query # Tencent DoH (fast in CN)
# Fallback filter: if GEOIP is CN → use nameserver; else use fallback
fallback-filter:
geoip: true
geoip-code: CN
ipcidr:
- 240.0.0.0/4
# Policy: route specific domains to specific servers
nameserver-policy:
"geosite:cn":
- https://doh.pub/dns-query # fast domestic resolver for CN domains
- 114.114.114.114
"geosite:geolocation-!cn":
- https://dns.google/dns-query
- https://cloudflare-dns.com/dns-query
為每個域名分配虛假 IP,DNS 解析在本地立即返回,實際連線時再解析真實地址。防止 DNS 洩漏,解析速度最快。
先獲取真實 IP 再建立連線,相容性更好(如某些依賴真實 IP 的應用),但可能有輕微 DNS 洩漏風險。
訂閱管理與自動更新
訂閱連結(Subscription URL)是機場提供的一個 URL,訪問後返回包含所有節點資訊的 YAML 設定。透過 proxy-providers 可在設定檔中直接引用多個訂閱源,並設定自動重新整理間隔。
方式一:客戶端直接匯入訂閱連結
https:// 開頭,請求後返回 YAML 內容。
方式二:proxy-providers(多訂閱合併)
適合同時使用多個機場、或希望將訂閱與自定義規則分離的進階使用者。
# Reference multiple subscription sources
proxy-providers:
AirportA:
type: http
url: "https://your-airport-a.com/clash/subscribe?token=xxx"
interval: 86400 # refresh every 24 hours
path: ./providers/airport_a.yaml
health-check:
enable: true
interval: 600
url: https://www.gstatic.com/generate_204
AirportB:
type: http
url: "https://your-airport-b.com/clash/subscribe?token=yyy"
interval: 86400
path: ./providers/airport_b.yaml
health-check:
enable: true
interval: 600
url: https://www.gstatic.com/generate_204
# Use providers in proxy groups
proxy-groups:
- name: PROXY
type: select
use:
- AirportA # include all nodes from AirportA
- AirportB # include all nodes from AirportB
- name: Auto-Best
type: url-test
use:
- AirportA
- AirportB
url: https://www.gstatic.com/generate_204
interval: 300
常見訂閱問題
匯入訂閱後顯示「沒有節點」或節點為空
訂閱更新失敗,提示網路錯誤
如何將本地 YAML 檔案與線上訂閱合併使用?
proxy-providers 引用線上訂閱,再在 proxies 欄位中手動新增本地節點,然後在 proxy-groups 中同時引用 use(providers)和 proxies(手動節點)即可合併使用。
節點測速與延遲最佳化
Clash 的策略組(Proxy Group)支援多種自動選路模式,無需手動切換節點:url-test 自動選最低延遲,fallback 在節點故障時自動切換,load-balance 多節點負載均衡。
url-test
最常用
定期向測速 URL 傳送請求,自動切換到延遲最低的節點。適合對延遲敏感的場景(遊戲、影片)。
fallback
優先使用列表第一個節點,當該節點不可用時自動切換到下一個。適合有穩定首選節點、需要故障轉移的場景。
load-balance
多個節點輪詢分配流量,提升整體頻寬。適合同時進行多個下載任務的場景。
測速策略組設定示例
proxy-groups:
# Auto select lowest-latency node
- name: Auto-Best
type: url-test
url: https://www.gstatic.com/generate_204
interval: 300 # test every 5 minutes
tolerance: 50 # switch only if new node is 50ms faster (prevents thrashing)
lazy: true # only test when traffic is present
proxies:
- HK-01
- HK-02
- US-01
- SG-01
# Failover: use HK-01 first, switch if unavailable
- name: Failover
type: fallback
url: https://www.gstatic.com/generate_204
interval: 180
proxies:
- HK-01 # primary
- US-01 # backup 1
- SG-01 # backup 2
# Load balance across multiple nodes
- name: LoadBalance
type: load-balance
strategy: consistent-hashing # same domain always uses same node
url: https://www.gstatic.com/generate_204
interval: 300
proxies:
- HK-01
- US-01
- SG-01
# Manual selection group (top-level entry point)
- name: PROXY
type: select
proxies:
- Auto-Best
- Failover
- LoadBalance
- HK-01
- US-01
https://www.gstatic.com/generate_204(Google 204)或 https://cp.cloudflare.com/generate_204(Cloudflare 204),響應極快且服務穩定,不受內容影響。