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),响应极快且服务稳定,不受内容影响。