Clash for windows

规则驱动的代理引擎生态

Clash 是一个用 Go 语言开发的跨平台、基于规则的代理工具,支持多种代理协议,提供灵活的网络流量控制功能。它具有高性能、配置灵活、界面友好等特点,是网络开发者和高级用户的理想选择。

开源免费 跨平台 高性能 规则驱动 多协议
立即下载 配置指南 了解更多
clash

核心特性

Clash 提供了丰富的功能和灵活的配置选项,满足不同用户的需求

灵活配置

支持YAML格式配置文件,规则灵活,可根据需要自定义代理规则和策略组。支持正则表达式匹配和脚本功能。

高级功能

支持TUN模式、MITM解密、流量统计、延迟测试、负载均衡、故障转移等高级功能,满足专业用户需求。

高性能

采用Go语言编写,性能优异,内存占用低,支持多平台运行,响应迅速。支持多线程处理,可充分利用多核CPU性能。

多协议支持

支持 Shadowsocks、VMess、Trojan、Snell、SOCKS5、HTTP等多种代理协议,兼容性强,可与主流代理服务兼容。

跨平台

支持 Windows、macOS、Linux 等多种操作系统,同时提供 Android 和 iOS 客户端,满足不同设备使用需求。

开源透明

完全开源,代码在GitHub公开,任何人都可以审查代码、提交问题或贡献代码。遵循MIT许可证,可自由使用和修改。

快速开始

只需简单几步,即可开始使用 Clash 管理您的网络代理

1

下载安装

根据您的操作系统下载对应的 Clash 客户端,并按照安装向导完成安装。

2

获取配置

从您的代理服务提供商获取订阅链接,或手动创建配置文件。

3

导入配置

在 Clash 客户端中导入配置文件或订阅链接,系统会自动获取节点信息。

4

开始使用

选择合适的代理节点,开启系统代理,即可开始安全浏览网络。

核心功能概述

Clash 是一款用 Go 语言开发的支持规则代理的跨平台代理客户端,支持多种代理协议,提供灵活的网络流量控制功能。

提示: Clash 的核心是一个命令行工具,但也有第三方提供的图形界面客户端,如 Clash for Windows、ClashX (macOS)、Clash for Android 等。

主要特性

  • 基于规则的代理:支持根据域名、IP、地理信息、URL正则等条件自动选择代理节点,支持用户自定义规则
  • 多协议支持:支持 Shadowsocks、ShadowsocksR、VMess、Trojan、Snell、SOCKS5、HTTP 等协议
  • 代理组功能:支持负载均衡、故障转移、自动选择、手动选择等多种策略组类型
  • RESTful API:提供 HTTP 接口,方便与其他工具集成,支持远程配置和控制
  • MITM 支持:支持中间人攻击方式的 HTTPS 解密(需安装证书),可用于流量分析和过滤
  • TUN 模式:支持透明代理,可代理所有流量,无需为每个应用单独配置代理
  • 流量统计:实时显示上行/下行流量,支持按代理节点统计流量使用情况
  • 延迟测试:自动测试各代理节点的延迟,帮助选择最优节点
  • 脚本功能:支持通过 JavaScript 脚本自定义处理逻辑,提供高度灵活性

配置文件详解

Clash 使用 YAML 格式的配置文件,结构清晰,易于理解和修改。主要配置部分包括:

代理配置 (proxies)

定义代理服务器列表,支持多种协议和自定义参数。每个代理节点可以设置名称、类型、服务器地址、端口、密码、加密方式等参数。

代理组 (proxy-groups)

将多个代理组合成策略组,支持以下类型:

  • select:手动选择代理,用户可以从列表中选择使用的代理
  • url-test:自动选择延迟最低的代理,定期测试节点延迟并自动切换
  • fallback:故障转移,按顺序尝试代理,自动切换到第一个可用的代理
  • load-balance:负载均衡,将流量分配到多个代理,提高总体带宽
  • relay:链式代理,流量依次通过多个代理,提供额外匿名性

规则 (rules)

定义流量匹配规则,支持多种匹配条件和代理目标。规则按顺序匹配,先匹配的规则生效。

配置文件示例

# Clash 配置文件示例
port: 7890
socks-port: 7891
redir-port: 7892
allow-lan: false
mode: Rule
log-level: info
external-controller: 127.0.0.1:9090

proxies:
  - name: "香港节点1"
    type: ss
    server: hk1.example.com
    port: 443
    cipher: aes-256-gcm
    password: "your-password"

  - name: "日本节点1"
    type: vmess
    server: jp1.example.com
    port: 443
    uuid: "your-uuid"
    alterId: 0
    tls: true

proxy-groups:
  - name: "自动选择"
    type: url-test
    proxies: ["香港节点1", "日本节点1"]
    url: "http://www.gstatic.com/generate_204"
    interval: 300

rules:
  - DOMAIN-SUFFIX,google.com,自动选择
  - DOMAIN-SUFFIX,github.com,自动选择
  - IP-CIDR,192.168.1.0/24,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,自动选择

高级功能

TUN 模式

TUN 模式是 Clash 的核心功能之一,它允许 Clash 拦截系统所有网络流量,无需为每个应用程序单独配置代理。这在以下场景特别有用:

  • 某些应用程序不支持系统代理设置
  • 需要代理所有流量,包括 UDP 流量
  • 在路由器等网络设备上部署 Clash

脚本功能

Clash 支持通过 JavaScript 脚本扩展功能,可以自定义规则匹配逻辑、修改请求/响应等。例如,可以编写脚本实现:

  • 根据时间自动切换代理策略
  • 根据请求内容动态选择代理
  • 修改 HTTP 请求头或响应内容
  • 实现自定义的负载均衡算法

混合配置

Clash 支持混合配置,可以同时使用本地配置文件和使用远程订阅。这对于需要自定义规则又希望自动更新节点列表的用户非常有用。

协议概览

Clash 支持多种代理协议,每种协议都有其特点和适用场景。下表列出了 Clash 支持的主要协议及其特性:

协议 类型 加密 混淆 性能 适用场景
Shadowsocks SOCKS5代理 AES、Chacha20等 支持插件 日常翻墙、流媒体
VMess 自定义协议 AES-128-GCM等 内置 中高 V2Ray生态、需要高级功能
Trojan 伪装为HTTPS TLS加密 HTTPS流量伪装 高审查环境、稳定性要求高
Snell Surge私有协议 自定义 支持 Surge兼容、需要高性能
SOCKS5 标准代理 可选 不支持 简单代理、内网穿透
HTTP/HTTPS HTTP代理 HTTPS支持TLS 不支持 简单HTTP代理、爬虫

协议详细介绍

Shadowsocks

Shadowsocks 是一个轻量级、高性能的 SOCKS5 代理,专为绕过网络审查而设计。它采用简单的协议设计,性能优异,资源占用低,是目前最流行的代理协议之一。

特点:

  • 轻量级,性能优异
  • 支持多种加密算法(AES-256-GCM、Chacha20等)
  • 支持插件系统,可扩展功能
  • 客户端和服务端实现丰富

VMess

VMess 是 V2Ray 项目设计的加密传输协议,相比 Shadowsocks 提供了更多的功能和控制选项。它支持动态端口、传输层配置等高级功能。

特点:

  • 功能丰富,支持多种传输方式(TCP、mKCP、WebSocket等)
  • 支持动态端口分配
  • 提供完整的传输层安全(TLS)支持
  • 支持流量伪装和元数据混淆

Trojan

Trojan 是一个将代理流量伪装成 HTTPS 流量的工具,利用 TLS 加密和伪装技术,使代理流量看起来像正常的 HTTPS 流量,从而更难被识别和干扰。

特点:

  • 完全伪装成 HTTPS 流量
  • 使用标准的 TLS 加密,与正常 HTTPS 无区别
  • 抗主动检测能力强
  • 性能接近原生 TLS
注意: 不同协议适用于不同的网络环境。在审查严格的网络环境中,推荐使用 Trojan 或 VMess + TLS + WebSocket 等具有更好伪装能力的协议。

基础配置

Clash 的配置文件使用 YAML 格式,以下是一个基础配置的结构:

# 基础配置示例
port: 7890 # HTTP代理端口
socks-port: 7891 # SOCKS5代理端口
redir-port: 7892 # 透明代理端口
allow-lan: false # 是否允许局域网连接
mode: Rule # 代理模式:Rule(规则)/Global(全局)/Direct(直连)
log-level: info # 日志级别:silent/error/warning/info/debug
external-controller: 127.0.0.1:9090 # 外部控制接口
secret: "" # 外部控制密码,留空为无密码

# 实验性功能
experimental:
  ignore-resolve-fail: true

配置文件结构

一个完整的 Clash 配置文件通常包含以下几个部分:

  1. 端口设置:定义 Clash 监听的端口
  2. 代理节点 (proxies):定义可用的代理服务器
  3. 代理组 (proxy-groups):将代理节点分组,定义选择策略
  4. 规则 (rules):定义流量路由规则
  5. DNS 设置 (dns):定义 DNS 服务器和解析策略
  6. 主机映射 (hosts):定义域名到 IP 的映射

规则配置详解

规则是 Clash 的核心功能之一,它决定了流量如何被路由。Clash 支持多种规则类型:

域名匹配规则

# 匹配特定域名
DOMAIN,example.com,Proxy
# 匹配域名后缀
DOMAIN-SUFFIX,google.com,Proxy
# 匹配域名关键字
DOMAIN-KEYWORD,facebook,Proxy
# 匹配完整域名(正则)
DOMAIN-MATCH,^www\.example\.com$,Proxy

IP匹配规则

# 匹配IP或CIDR
IP-CIDR,192.168.1.0/24,DIRECT
# 匹配IP-CIDR6(IPv6)
IP-CIDR6,2001:db8::/32,Proxy
# 匹配指定地理位置的IP
GEOIP,CN,DIRECT
# 匹配指定端口的流量
SRC-PORT,80,Proxy

其他规则类型

# 进程名匹配(仅macOS/Windows)
PROCESS-NAME,chrome.exe,Proxy
# 网络接口匹配
NETWORK-INTERFACE,eth0,Direct
# 用户规则(最后匹配)
RULE-SET,telegram,DIRECT
# 匹配所有剩余流量
MATCH,Proxy

规则匹配顺序

Clash 按照配置文件中规则的顺序进行匹配,一旦匹配到规则就会停止后续匹配。因此,应将更具体的规则放在前面,将通用规则放在后面。

提示: 可以使用 RULE-SET 规则引入外部规则集,这样可以将规则按功能分类,使配置文件更加清晰。例如,可以将广告规则、隐私保护规则、流媒体规则等分别放在不同的规则集中。

代理组配置

代理组允许您将多个代理节点组合在一起,并定义选择策略。Clash 支持多种代理组类型:

代理组类型

  • select:手动选择模式,用户从代理列表中选择一个使用
  • url-test:自动测速选择,定期测试代理延迟,自动选择延迟最低的节点
  • fallback:故障转移模式,按顺序尝试代理,使用第一个可用的节点
  • load-balance:负载均衡模式,将流量分配到多个代理节点
  • relay:链式代理,流量依次通过多个代理节点

代理组配置示例

proxy-groups:
  # 手动选择组
  - name: "手动选择"
    type: select
    proxies: ["香港节点", "日本节点", "美国节点", "DIRECT"]

  # 自动测速组
  - name: "自动选择"
    type: url-test
    proxies: ["香港节点", "日本节点", "美国节点"]
    url: "http://www.gstatic.com/generate_204"
    interval: 300 # 测速间隔(秒)

  # 故障转移组
  - name: "容灾备用"
    type: fallback
    proxies: ["主节点", "备用节点1", "备用节点2"]
    url: "http://www.gstatic.com/generate_204"
    interval: 300

  # 负载均衡组
  - name: "负载均衡"
    type: load-balance
    proxies: ["节点1", "节点2", "节点3"]
    url: "http://www.gstatic.com/generate_204"
    interval: 300
    strategy: round-robin # 负载均衡策略

各平台客户端

Clash for Windows

Windows 平台最流行的 Clash 客户端,功能完整界面友好。

系统要求: Windows 7+

立即下载

ClashX (macOS)

macOS 平台推荐的 Clash 客户端,轻量级,菜单栏应用。

系统要求: macOS 10.12+

下载 .dmg 文件

Clash for Android

Android 平台的 Clash 客户端,功能强大,支持多种协议。

系统要求: Android 5.0+

下载 APK 文件

Clash 核心

命令行版本,适用于高级用户、开发者和服务器环境。

支持:Windows/macOS/Linux

访问 GitHub 发布页

官方核心与图形界面

Clash 项目分为核心(Core)和图形界面(GUI)两部分。核心是命令行工具,提供了所有代理功能;图形界面则是基于核心开发的用户界面,方便普通用户使用。

注意: Clash 核心本身是命令行工具,以下提供的下载链接是第三方开发的图形界面客户端,它们包含了 Clash 核心并提供了友好的用户界面。

安装步骤

Windows 安装指南

  1. 从上方链接下载 Clash for Windows 安装包(.zip 文件)
  2. 双击解压后运行安装程序,按照向导完成安装
  3. 启动 Clash for Windows 应用程序
  4. 在系统托盘中找到 Clash 图标,右键点击选择配置
  5. 导入您的配置文件(YAML格式)或订阅链接
  6. 在系统托盘中右键点击 Clash 图标,选择"系统代理"启用代理
  7. 根据需要选择代理模式(规则/全局/直连)和代理节点

macOS 安装指南

  1. 下载 ClashX.dmg 文件
  2. 打开 dmg 文件,将 ClashX 拖拽到应用程序文件夹
  3. 首次运行时需要在系统偏好设置 > 安全性与隐私中允许运行
  4. 点击菜单栏中的 ClashX 图标,选择"配置" > "远程配置文件"
  5. 添加您的订阅链接或手动导入配置文件
  6. 在菜单栏中点击 ClashX 图标,选择"设置为系统代理"
  7. 选择代理模式并开始使用

Linux 安装指南

Linux 用户可以通过以下命令安装 Clash 核心:

# 下载最新版 Clash 核心(以 amd64 架构为例)
wget https://github.com/Dreamacro/clash/releases/download/v1.17.0/clash-linux-amd64-v1.17.0.gz

# 解压文件
gzip -d clash-linux-amd64-v1.17.0.gz

# 添加执行权限并移动到系统路径
chmod +x clash-linux-amd64-v1.17.0
sudo mv clash-linux-amd64-v1.17.0 /usr/local/bin/clash

# 创建配置目录
mkdir -p ~/.config/clash

# 下载配置文件(Country.mmdb 用于 GEOIP 规则)
wget -O ~/.config/clash/Country.mmdb https://github.com/Dreamacro/maxmind-geoip/releases/download/20231212/Country.mmdb

# 创建配置文件
nano ~/.config/clash/config.yaml

Android 安装指南

  1. 下载 Clash for Android APK 文件
  2. 在手机设置中允许安装来自未知来源的应用
  3. 安装 APK 文件并打开应用
  4. 点击"配置"添加您的配置文件或订阅链接
  5. 返回主界面,点击"启动"按钮开启代理
  6. 根据提示授予 VPN 权限

常见问题

Clash 是免费的吗?

是的,Clash 是一个完全开源免费的软件,遵循 MIT 许可证。您可以在 GitHub 上找到其源代码,并根据需要自由使用、修改和分发。但请注意,您需要自行获取可用的代理服务器。

Clash 支持哪些代理协议?

Clash 支持多种代理协议,包括 Shadowsocks、ShadowsocksR、VMess、Trojan、Snell、SOCKS5、HTTP 等。您可以根据自己的需求和服务商提供的服务选择合适的协议。

如何配置 Clash?

Clash 使用 YAML 格式的配置文件。您可以通过编辑配置文件来添加代理服务器、设置规则和策略组。也可以使用图形界面客户端(如 Clash for Windows、ClashX 等)来简化配置过程。大多数图形界面客户端都支持通过订阅链接自动更新配置。

Clash 有图形界面吗?

Clash 核心是一个命令行工具,但有第三方开发的图形界面客户端,如 Clash for Windows(Windows)、ClashX(macOS)和 Clash for Android(Android)。这些客户端提供了更友好的用户界面,但底层仍然使用 Clash 核心。

如何更新 Clash?

对于图形界面客户端,通常可以在设置中检查更新或从 GitHub 发布页面下载最新版本。对于命令行版本,您需要手动下载新版本替换旧版本。建议定期更新以获取新功能和安全性修复。

Clash 安全吗?

Clash 是一个开源软件,代码公开可审计。只要您从官方渠道下载,并确保配置文件来源可靠,使用是安全的。请注意保护好自己的配置信息,避免泄露敏感数据。不要使用来路不明的配置文件。

Clash 和 Clash Premium 有什么区别?

Clash Premium 是 Clash 的增强版本,提供了一些额外功能,如 TUN 模式、脚本支持、流量统计等。普通用户使用标准版即可满足需求,高级用户可能需要 Premium 版本的功能。

为什么 Clash 无法连接?

如果 Clash 无法连接,请检查以下几点:1) 配置文件是否正确;2) 代理服务器是否可用;3) 端口是否被占用;4) 防火墙是否允许 Clash 通过;5) 系统代理设置是否正确。您还可以查看 Clash 的日志以获取更多错误信息。

如何为 Clash 添加自定义规则?

您可以在配置文件的 rules 部分添加自定义规则。规则格式为:类型,参数,策略。例如:DOMAIN-SUFFIX,google.com,Proxy 表示所有 google.com 域名的流量都通过 Proxy 策略组。您也可以使用 RULE-SET 引入外部规则集。

Clash 支持负载均衡吗?

是的,Clash 支持负载均衡。您可以在 proxy-groups 中创建一个类型为 load-balance 的代理组,并将多个代理节点添加到该组中。Clash 会将流量分配到组内的各个节点,提高总体带宽和稳定性。

如何备份 Clash 配置?

Clash 的配置文件通常保存在以下位置:Windows: %USERPROFILE%\.config\clash\config.yaml;macOS: ~/.config/clash/config.yaml;Linux: ~/.config/clash/config.yaml。您可以定期备份此文件。图形界面客户端通常有导出配置功能。

Clash 会影响网络速度吗?

Clash 本身对网络速度的影响很小,因为它是用高性能的 Go 语言编写的。实际网络速度主要取决于您使用的代理服务器的性能、您的网络环境以及代理协议的选择。选择高质量的代理服务器和合适的协议可以获得最佳速度。