Feature Architecture

特性架构
深度解析

从规则分流引擎到 YAML 声明式配置,从 Fake-IP DNS 防泄漏到多协议无缝兼容——本文全面解析 Clash 的核心架构与工作原理,助您充分发挥这款高性能代理客户端的全部潜力。

Core Capabilities

六大核心能力
构建专业代理生态

Clash 以 Go 语言构建的高性能内核为基础,集成了代理工具所需的全部核心能力——每一项都经过社区多年打磨,已成为行业标准。

规则分流引擎

基于域名、IP、GeoIP、进程名等多维度精准路由,让境内外流量各行其道,彻底告别全局代理的带宽浪费。

深入了解 →

多协议无缝兼容

原生支持 Shadowsocks、VMess、Trojan、VLESS、Hysteria 2、TUIC 等全主流协议,单一内核替代所有碎片化客户端。

查看协议列表 →

YAML 声明式配置

采用对人类和机器均友好的 YAML 语法,支持版本控制,可通过订阅链接一键同步节点与规则,无需手动维护。

查看配置示例 →

DNS & Fake-IP 防泄漏

通过 Fake-IP 机制接管系统 DNS,彻底杜绝 DNS 查询泄露至运营商,在任何网络环境下保护您的真实位置与数字指纹。

了解工作原理 →

策略组 & 自动测速

支持选择(select)、自动测速(url-test)、故障转移(fallback)、负载均衡(load-balance)四种策略组类型,实现高可用代理路由。

详解策略组 →

RESTful API 外部控制

内置 HTTP RESTful API,允许 Yacd、MetaCubeX 等第三方面板实时切换节点、监控流量、管理规则,构建完整可视化管理体系。

API 文档 →
Rule-Based Routing Engine

规则分流引擎
精准流量路由

Clash 最核心也是最独特的竞争力在于其强大的规则分流系统(Rule-based Proxy)。与传统代理工具仅能实现"全局代理"或简单 PAC 列表不同,Clash 提供了细粒度的多维度流量路由控制。

规则按优先级从上到下依次匹配,命中即执行对应动作(PROXY / DIRECT / REJECT),最后一条 MATCH 规则作为兜底策略。

DOMAIN
精确域名匹配 匹配完整域名,如 google.com
DOMAIN-SUFFIX
域名后缀匹配 匹配指定域名及所有子域名
DOMAIN-KEYWORD
域名关键词匹配 域名中包含指定关键词即命中
GEOIP
地理位置 IP 匹配 基于 MaxMind GeoIP 数据库,精准识别中国大陆 IP(CN)等
IP-CIDR
IP 段精确匹配 匹配指定 CIDR 网段,支持 IPv4 / IPv6
PROCESS-NAME
进程名匹配 针对指定应用程序设置专属路由,精确到进程级别
RULE-SET
远程规则集订阅 从远程 URL 动态加载规则集,支持定期自动更新
MATCH
兜底规则(必须置末) 未被任何规则命中的流量的最终处理动作
config.yaml · rules 片段
# ── Rule-based routing configuration ── rules: # Exact domain → proxy - DOMAIN,google.com,PROXY - DOMAIN,youtube.com,PROXY - DOMAIN,openai.com,PROXY # Suffix matching → forward all subdomains - DOMAIN-SUFFIX,github.com,PROXY - DOMAIN-SUFFIX,twitter.com,PROXY # Keyword matching → catch CDN variants - DOMAIN-KEYWORD,googleapis,PROXY - DOMAIN-KEYWORD,gstatic,PROXY # Ad/tracker rejection - DOMAIN-SUFFIX,doubleclick.net,REJECT # Remote rule-set subscription (auto-updates) - RULE-SET,proxy-list,PROXY - RULE-SET,cn-domain,DIRECT # GeoIP: mainland China traffic → direct - GEOIP,CN,DIRECT # Final fallback - MATCH,PROXY
💡

Rule Providers 规则集订阅:通过 rule-providers 字段引入远程 YAML/TEXT 规则文件,Clash 会按设定间隔自动拉取更新,无需手动维护庞大的单体配置文件。

Multi-Protocol Support

全协议支持
一个内核搞定一切

Clash Meta(mihomo)内核在原版 Clash 基础上持续扩展,现已支持市面上几乎所有主流代理协议。无论您的机场或服务商使用何种协议,Clash 都能原生兼容,彻底告别多客户端并存的混乱局面。

协议名称 传输层 加密方式 伪装能力 推荐场景 支持版本
Shadowsocks TCP / UDP AEAD 加密 基础 兼容性最广,机场标配 原版 + Meta
ShadowsocksR TCP / UDP 多重混淆 混淆 旧版机场兼容 原版 + Meta
VMess TCP / WS / H2 / GRPC AES / ChaCha20 WebSocket TLS V2Ray 生态首选 原版 + Meta
VLESS TCP / WS / H2 / GRPC 无内置加密(依赖 TLS) TLS / Reality 轻量高性能,推荐新部署 Meta 专属
Trojan TCP TLS 原生 伪装 HTTPS 网站 抗主动探测最强 原版 + Meta
Hysteria 2 UDP (QUIC) TLS 1.3 QUIC 伪装 高延迟/丢包网络极速传输 Meta 专属
TUIC UDP (QUIC) TLS 1.3 QUIC 多路复用 低延迟场景优化 Meta 专属
Snell TCP AES-256-GCM 基础 Surge 生态配套使用 原版 + Meta
Socks5 / HTTP TCP 可选 TLS 局域网内部中转 原版 + Meta
Reality TCP XTLS / Vision 伪装真实网站 TLS 指纹 抗 TLS 指纹检测最优解 Meta 专属

新用户协议选择建议

对于新建节点,推荐优先选择 VLESS + Reality 组合(抗检测性最强)或 Hysteria 2(高延迟网络下速度最快)。两者均需 Clash Meta (mihomo) 内核支持。如需最广泛机场兼容性,Shadowsocks (AEAD) 仍是最稳妥的选择。

Configuration Standard

YAML 声明式配置
完整结构参考

Clash 采用 YAML 作为唯一配置格式。完整的配置文件由以下几个顶层字段构成——了解每个字段的作用,是精通 Clash 配置的第一步。

01 · 基础网络配置
# ── Basic network settings ── port: 7890 # HTTP proxy port socks-port: 7891 # SOCKS5 proxy port redir-port: 7892 # Transparent proxy port (Linux/macOS) tproxy-port: 7893 # TProxy port (Linux only) mixed-port: 7897 # HTTP + SOCKS5 combined port allow-lan: true # Allow LAN devices to use as gateway bind-address: '*' # Bind to all interfaces # Running mode: rule | global | direct mode: rule # Log level: silent | error | warning | info | debug log-level: info # External controller for dashboard panels (Yacd / MetaCubeX) external-controller: 127.0.0.1:9090 secret: 'your_api_secret'
02 · DNS 配置(含 Fake-IP)
# ── DNS configuration with Fake-IP ── dns: enable: true listen: 0.0.0.0:1053 ipv6: false # Fake-IP mode: prevents DNS leaks enhanced-mode: fake-ip fake-ip-range: 198.18.0.1/16 # Domains excluded from Fake-IP (LAN / local) fake-ip-filter: - '*.lan' - 'localhost.ptlogin2.qq.com' # Upstream DNS over HTTPS servers nameserver: - https://doh.pub/dns-query - https://dns.alidns.com/dns-query # Fallback DNS for non-CN domains (bypasses GFW) fallback: - https://1.1.1.1/dns-query - https://8.8.8.8/dns-query fallback-filter: geoip: true geoip-code: CN
03 · 代理节点(proxies)
# ── Proxy server declarations ── proxies: # Shadowsocks node - name: "SS-US-01" type: ss server: us1.example.com port: 8388 cipher: chacha20-ietf-poly1305 password: "your_password" udp: true # VLESS + Reality node (Meta only) - name: "VLESS-Reality-HK" type: vless server: hk1.example.com port: 443 uuid: "your-uuid-here" tls: true reality-opts: public-key: "your-public-key" short-id: "abcdef01" # Hysteria 2 node (Meta only) - name: "HY2-JP-01" type: hysteria2 server: jp1.example.com port: 443 password: "your_password" sni: jp1.example.com
04 · 策略组(proxy-groups)
# ── Proxy groups configuration ── proxy-groups: # Manual selection group - name: "PROXY" type: select proxies: ["Auto-Speed", "SS-US-01", "VLESS-Reality-HK"] # Auto url-test: picks lowest latency - name: "Auto-Speed" type: url-test url: "http://www.gstatic.com/generate_204" interval: 300 proxies: ["SS-US-01", "VLESS-Reality-HK", "HY2-JP-01"] # Fallback: switches on node failure - name: "Fallback" type: fallback url: "http://www.gstatic.com/generate_204" interval: 60 proxies: ["SS-US-01", "HY2-JP-01"] # Load balance across multiple nodes - name: "LoadBalance" type: load-balance strategy: round-robin proxies: ["SS-US-01", "VLESS-Reality-HK"]
Strategy Groups Architecture

策略组四大类型
高可用路由设计

select 手动选择

手动切换策略组

由用户在客户端界面手动选择当前激活的代理节点或子策略组。适用于需要精确控制使用哪个地区节点的场景,如固定使用美国节点访问 Netflix。

  • 支持嵌套其他策略组
  • 支持 proxy-providers 引入机场订阅
  • 支持包含 DIRECT / REJECT 特殊节点
url-test 自动测速

自动延迟测速策略组

定期对组内所有节点发送 HTTP 探测请求,自动选择延迟最低的节点作为当前活跃节点。无需手动测速,全程自动化保障最优网络体验。

  • url:延迟测试地址(推荐 gstatic 204)
  • interval:测速间隔(秒),推荐 300s
  • tolerance:容差值,避免频繁切换
fallback 故障转移

故障转移高可用策略组

按节点排列顺序依次使用,当当前节点探测失败时自动切换至下一个可用节点。适合对稳定性要求极高的业务场景,确保服务永不中断。

  • 有序降级:优先使用队列首位节点
  • 节点恢复后自动切回
  • 适合流媒体解锁专线保障
load-balance 负载均衡

负载均衡策略组

将流量分散至组内多个节点,支持 consistent-hashing(同域名固定节点)和 round-robin(轮询)两种策略,充分利用多节点带宽,提升整体吞吐量。

  • consistent-hashing:同源 IP 固定路由
  • round-robin:轮询均匀分配
  • 适合大流量多任务下载场景
DNS & Privacy Architecture

Fake-IP 机制
彻底杜绝 DNS 泄露

为什么普通代理存在 DNS 泄露?

传统代理模式下,浏览器会先向本地 ISP(互联网服务提供商)的 DNS 服务器查询目标域名的 IP 地址,再通过代理建立连接。这导致 DNS 查询记录会泄露给 ISP,暴露您的真实访问意图,即使流量本身经过加密。

Fake-IP 如何解决这个问题?

Clash 的 Fake-IP 模式在本地接管系统 DNS 解析,为每个待查询的域名立即返回一个虚假的本地 IP 地址(如 198.18.x.x),让应用程序立刻建立连接请求。Clash 内核识别到该虚假 IP 后,将真实的域名通过加密隧道发送至远端代理服务器进行 DNS 解析,从根本上阻断 DNS 查询泄露至 ISP

传统代理 DNS 流程(有泄漏)
浏览器发起请求 本地 ISP DNS 查询
(泄露访问意图)
代理隧道连接
Fake-IP 模式(零泄漏)
浏览器发起请求 Clash 本地 Fake-IP
(立即响应 198.18.x.x)
域名通过加密隧道
在远端解析
fake-ip 模式 推荐

本地返回虚假 IP,域名随加密隧道传递至远端解析。彻底防止 DNS 泄露,应用连接延迟最低。

redir-host 模式 兼容模式

先在本地进行 DNS 解析获取真实 IP,再根据 IP 规则判断路由。兼容性好,但存在 DNS 泄露风险。

⚠️

Fake-IP 过滤器(fake-ip-filter):部分本地服务(如 WeChat、QQ 的登录域名)不适合 Fake-IP,应通过 fake-ip-filter 字段将其排除,避免影响正常使用。

🔒

DoH 上游 DNS 推荐:国内推荐 https://doh.pub/dns-query(腾讯 DNSPod)或 https://dns.alidns.com/dns-query;Fallback 推荐 https://1.1.1.1/dns-query(Cloudflare)。

RESTful API & External Control

内置 RESTful API
构建可视化管理面板

Clash 内核内置 HTTP RESTful API,通过 external-controller 配置开放控制端口后,第三方面板(Yacd、MetaCubeX、clash-dashboard)可通过该 API 实现实时节点切换、流量监控、连接管理等所有核心操作,无需重启核心即可动态调整一切。

GET 代理与节点管理
GET /proxies 获取所有代理节点与策略组信息
PUT /proxies/:name 切换指定策略组的当前节点
GET /proxies/:name/delay 测试单个节点的实时延迟(ms)
GET 流量监控与连接
GET /traffic WebSocket 实时流量速率推送
GET /connections 获取当前所有活跃连接列表
DELETE /connections/:id 关闭指定连接
PUT 配置热更新
PUT /configs 热重载配置文件(无需重启内核)
PATCH /configs 动态修改单个配置字段
PUT /rules 热更新路由规则集
WS 实时日志流
GET /logs WebSocket 实时日志流,支持级别过滤
GET /version 获取当前内核版本信息
GET /memory 获取内核实时内存使用情况
推荐第三方管理面板
Yacd 轻量极简,加载速度最快,新手首选 GitHub →
MetaCubeX 功能最全,支持 Meta 专属特性,进阶用户推荐 GitHub →
Clash Dashboard 官方经典面板,稳定兼容所有版本内核 GitHub →
Performance Architecture

Go 语言内核
极致性能基础

~5MB
核心进程内存占用
远低于 Electron 类客户端的 200MB+
10k+
并发连接处理能力
Go 协程模型,高并发无压力
<1%
空闲时 CPU 占用率
事件驱动架构,零流量时几乎不消耗资源
ARM
全架构原生支持
x86 · ARM64 · ARMv7 · MIPS 软路由全覆盖

Go 协程并发模型

每个连接由独立 goroutine 处理,无线程切换开销,在高并发场景下性能随 CPU 核心数线性扩展。

规则匹配 O(1) 哈希查找

域名规则采用哈希表存储,无论规则数量多少,单次匹配始终在常数时间内完成,配置再庞大也不影响性能。

DNS 缓存与预解析

内置 DNS 结果缓存,Fake-IP 模式下无需等待远端 DNS 响应即可立即建立连接,大幅降低首包延迟感知。

跨平台单一二进制

Go 语言编译为单一可执行文件,无需安装依赖,支持 Windows / macOS / Linux / Android,部署零门槛。

Quick Start Guide

新手五步入门
从安装到畅游全球网络

无论您使用哪款操作系统,按照以下步骤操作,大约 5 分钟内即可完成 Clash 的全部配置,开始稳定流畅的国际网络访问。

01

选择并下载适合您平台的客户端

根据您的操作系统选择对应的图形化客户端(GUI)。Windows 用户推荐 Clash Verge Rev;macOS 用户推荐 Clash Verge Rev (macOS) 或 ClashX Pro;Android 用户推荐 Clash Meta for Android;Linux 用户推荐直接使用 Clash Meta 核心配合 Yacd 面板。

前往下载页 →
02

安装完成,首次启动

Windows 双击 .exe 安装包,按向导完成安装。macOS 将 .dmg 内的应用拖入 Applications 文件夹。Android 允许安装来自未知来源的 APK 后安装。首次启动时,部分客户端会提示授予系统代理权限,请允许。

03

导入机场订阅链接

在客户端界面找到「配置(Profiles)」或「订阅」页面,将您的机场服务商提供的订阅 URL 粘贴进去,点击「下载」或「更新」按钮。Clash 会自动解析所有节点信息和策略组配置,无需手动填写任何服务器参数。

04

选择节点并进行延迟测试

进入「代理(Proxies)」页面,对各策略组内的节点执行「延迟测试(Latency Test)」,选择延迟最低(通常绿色显示)的节点。如果机场订阅包含 url-test 自动测速组,Clash 会自动为您选择最优节点。

05

开启系统代理,立即享用

在客户端主界面开启「系统代理(System Proxy)」开关。此时 Clash 已自动接管您系统的全部网络流量,打开浏览器访问 Google、YouTube、GitHub,即可感受到速度提升。建议同时开启「开机自启」选项,下次重启后无需重新设置。

Frequently Asked Questions

配置常见问题
快速排查指南

Clash 开启后浏览器无法上网怎么办?

请检查:① 是否已在客户端开启「系统代理」开关;② 订阅配置是否已成功下载(配置页面显示节点列表);③ 选中的节点延迟测试是否正常(非 timeout);④ 防火墙是否阻止了 Clash 的网络访问。Windows 用户还需确认"以太网"或"Wi-Fi"属性中代理设置已被 Clash 正确接管(通常显示为 127.0.0.1:7890)。

如何判断 DNS 是否存在泄露?

访问 dnsleaktest.comipleak.net 进行检测。如果检测结果中的 DNS 服务器归属于您的中国 ISP(如电信、联通、移动),则存在泄露——此时建议在配置文件中将 DNS enhanced-mode 改为 fake-ip 模式并重启内核。

订阅链接更新后节点没有变化?

部分客户端存在本地缓存。请在「配置(Profiles)」页面手动点击订阅条目旁的「强制刷新」或「Update」按钮(而非直接切换到已有配置)。如仍无效,尝试删除该订阅后重新添加订阅链接,或检查订阅 URL 是否已过期需要机场重新生成。

如何配置 Clash 的 TUN 模式接管全部流量?

在配置文件中添加 tun: enable: true 并设置 stack: mixed(或 system),同时需要客户端以管理员/root 权限运行。TUN 模式可接管不走系统代理的程序(如某些游戏或 CLI 工具),实现真正的全局透明代理。注意 Windows 需额外安装 Wintun 驱动。

Clash Meta 和原版 Clash 的配置文件通用吗?

大部分通用。原版 Clash 的合法配置文件均可在 Clash Meta(mihomo)上正常运行。Meta 在此基础上扩展了 VLESS、Reality、Hysteria 2、TUIC 等新字段,如果您使用这些新协议节点,配置文件将无法在原版内核上加载(原版内核已于 2023 年停止维护,推荐全面迁移至 Meta 内核)。

如何在 Linux 服务器上部署 Clash 作为透明代理网关?

① 下载对应架构的 Clash Meta 核心二进制文件;② 编写 YAML 配置,开启 tproxy-port: 7893allow-lan: true;③ 使用 iptables / nftables 将流量转发至 7893 端口;④ 通过 systemd 配置开机自启守护进程。局域网内其他设备将网关指向该服务器即可享用代理。

已了解架构特性?

立即下载对应平台的 Clash 客户端,三分钟完成配置,开始畅享稳定快速的国际网络访问体验。

免费下载最新版本 GitHub 源码仓库