🧠 内核机制 · 2026 深度拆解
Clash Meta 规则与内核全解析
从 Rule‑based 传统分流到 Script 脚本动态控制,结合 Mihomo 内核机制,讲透规则匹配、策略调度与流量路径。
🔀 为什么要规则分流?
不分流的后果
- 国内流量绕行国外节点 → 速度慢、延迟高
- 所有流量经过代理 → 消耗宝贵流量
- 部分国内服务(银行、视频)检测异地IP → 功能异常
分流的优势
- 国内网站直连,速度零损耗
- 国外流量精准走代理,隐私与可用性兼顾
- 流媒体、AI工具单独指定优质节点
💡 规则的核心就是一句话:哪些走代理,哪些直连,交给 Matcher 决定。
⚙️ Mihomo (Clash Meta) 内核核心能力
📜 Script 支持
通过 JavaScript 脚本动态控制流量走向,突破静态规则限制。
🔄 动态规则与策略
支持 url-test、fallback 自动选择最优节点,实时故障转移。
🌐 TUN 模式
虚拟网卡接管所有流量,真正全局代理,游戏/UWP应用无死角。
📡 增强 DNS
支持 fake-ip 降低 DNS 污染风险,配合国内/国际DNS分流解析,大幅提升首次访问速度。
⚡ 与系统代理的区别
系统代理仅覆盖浏览器等特定应用;TUN模式从网络层接管所有连接,更彻底,适合命令行、游戏等场景。
🧩 规则系统详解:Rule vs Script
Rule‑based 传统规则
基于域名、IP、GEOIP的静态匹配,简单高效。
# DOMAIN 规则
- DOMAIN-SUFFIX,google.com,Proxy
- GEOIP,CN,DIRECT
- IP-CIDR,10.0.0.0/8,DIRECT
- DOMAIN-SUFFIX,google.com,Proxy
- GEOIP,CN,DIRECT
- IP-CIDR,10.0.0.0/8,DIRECT
Script‑based 脚本分流
使用 JavaScript 动态判断节点,根据请求内容实时决策。
// script 示例
function decide(metadata) {
if (metadata.host.includes('netflix'))
return 'Streaming';
return 'Proxy';
}
function decide(metadata) {
if (metadata.host.includes('netflix'))
return 'Streaming';
return 'Proxy';
}
| 对比维度 | Rule‑based | Script‑based |
|---|---|---|
| 判断能力 | 静态匹配 | 动态计算 |
| 性能消耗 | 极低 | 稍高 |
| 适用场景 | 常规分流 | 复杂策略、自建节点选择 |
📋 高价值规则模板(可复制)
🎬 Netflix 分流
- DOMAIN-SUFFIX,netflix.com,Streaming
- DOMAIN-SUFFIX,nflxvideo.net,Streaming
- DOMAIN-SUFFIX,nflxvideo.net,Streaming
🤖 OpenAI 分流
- DOMAIN-SUFFIX,openai.com,AI-Node
- DOMAIN-SUFFIX,challenges.cloudflare.com,AI-Node
- DOMAIN-SUFFIX,challenges.cloudflare.com,AI-Node
🌏 国内直连
- GEOIP,CN,DIRECT
- DOMAIN-SUFFIX,cn,DIRECT
- DOMAIN-SUFFIX,cn,DIRECT
📨 Telegram 分流
- DOMAIN-SUFFIX,telegram.org,Proxy
- IP-CIDR,91.108.56.0/22,Proxy
- IP-CIDR,91.108.56.0/22,Proxy
▶️ YouTube 优化
- DOMAIN-SUFFIX,googlevideo.com,Proxy
- DOMAIN-SUFFIX,youtube.com,Proxy
- DOMAIN-SUFFIX,youtube.com,Proxy
🧪 自定义负载均衡
proxy-groups:
- name: Auto
type: url-test
proxies: [A,B,C]
- name: Auto
type: url-test
proxies: [A,B,C]
🚀 高级玩法:策略组与故障转移
🧠 自动选择最优节点
使用 url-test 策略组,定期对节点测速,自动切换到延迟最低的节点,保证流畅体验。
- name: Best-Proxy
type: url-test
proxies: [Node1, Node2, Node3]
url: 'https://www.gstatic.com/generate_204'
interval: 300
type: url-test
proxies: [Node1, Node2, Node3]
url: 'https://www.gstatic.com/generate_204'
interval: 300
🔄 Fallback 故障转移
当主节点不可用时自动切换到备用节点,保障网络不中断。
- name: Fallback-Group
type: fallback
proxies: [Premium, Free]
url: 'https://cp.cloudflare.com'
type: fallback
proxies: [Premium, Free]
url: 'https://cp.cloudflare.com'
❓ 为什么写了规则却不生效?
规则按顺序从上至下匹配,一旦命中即停止。请检查:① 更精确的域名规则是否放在前面;② MATCH 兜底规则是否位置正确;③ 脚本返回值是否与策略组名称一致;④ DNS 解析是否因缓存导致未走规则。
🔍 Debug:日志分析与排错
📋 如何查看日志
在 Clash Verge 中打开「日志」面板,可实时看到每条请求匹配了哪条规则、使用了哪个节点。关键词:match、dial、error。
⚠️ DNS 冲突常见表现
若规则正确但仍无法访问,可能是 DNS 解析结果被污染。启用 fake-ip 或切换 DNS 服务器可以解决多数问题。