Clash · 驾驭你的网络流量
开源、跨平台的代理工具,支持规则分流、策略组、延迟检测。为自由与效率而生。
⭐ 18.6k GitHub Stars
👥 380+ 贡献者
📥 500k+ 下载量
核心特性
🎯
规则分流
支持 DOMAIN、IP-CIDR、GEOIP 等灵活规则,精细化流量调度,按需代理。
⚙️
策略组
手动/自动节点选择,故障转移及负载均衡,确保高可用与效率。
🌐
全协议支持
HTTP/HTTPS/SOCKS5/VMess/Shadowsocks/Trojan,兼容主流协议生态。
🛠️
RESTful API
丰富的API接口,可动态控制代理状态,方便开发者集成。
⚡
低资源占用
基于 Go 原生实现,内存与CPU占用极低,高效运行。
📱
跨平台
Windows、macOS、Linux、Android、iOS 全生态覆盖。
支持的平台
工作原理
用户请求 → Clash核心 → 规则匹配 → 策略组决策 → 最佳节点转发
开发者心声
“Clash 的规则系统极其灵活,配合策略组让我的多地区网络访问效率提升了一个量级。”
- Alex Chen, SRE 工程师“开源社区活跃,文档详尽,自定义配置强大。是我日常开发必备工具。”
- Jamie Lin, 开源贡献者“跨平台支持完美,从 macOS 到路由器都能部署,资源占用非常低。”
- Sam Wang, 网络架构师常见问题
Clash 和同类工具(V2Ray/SS)的区别?
Clash 专注规则分流与策略组管理,支持多种协议入站出站,配置采用 YAML,更直观适用于复杂代理策略。而V2Ray更侧重于协议扩展性,Clash在用户体验及社区生态上更友好。
Clash 是否免费/开源?
是的,Clash 核心遵循 GPL-3.0 开源协议,完全免费,代码托管在 GitHub 上,任何人都可参与贡献和审计。
如何快速配置规则?
可参考官方文档模板,或使用订阅转换服务,Clash 支持主流机场订阅,内置 GUI 客户端也提供规则编辑功能。
遇到问题如何反馈?
优先查阅 GitHub Issues 及官方文档,也可加入 Telegram 社区或 Discord 频道,活跃开发者会及时解答。
深度指南 · 六大核心问题分步解析
1️⃣ 如何在不同平台上安装并启动 Clash?
- 步骤1: 首先访问官网下载区或GitHub Releases,根据操作系统选择对应二进制包(Windows .exe / macOS .dmg / Linux .deb等)。确保下载文件完整性。
- 步骤2: 安装后打开终端(或命令行),对于macOS可使用`brew install clash`,Linux可使用包管理器。Windows上解压并放到固定目录。
- 步骤3: 准备基础配置文件`config.yaml`,至少包含混合端口和代理节点信息。可从示例库获取模板。
- 步骤4: 执行`clash -f config.yaml`启动核心,如果使用图形化客户端则直接导入配置。
- 步骤5: 设置系统代理或浏览器插件指向Clash监听地址(默认7890端口),验证网络连通性。
- 步骤6: 配置开机自启:Windows添加任务计划;Linux使用systemd;macOS设置plist文件。至此完成完整部署。
2️⃣ 如何编写高效且易维护的Clash分流规则?
- 步骤1: 理解YAML语法结构,规则块位于`rules:`下方。每行规则格式为`类型,参数,策略`(例:DOMAIN-SUFFIX,google.com,Proxy)。
- 步骤2: 优先使用`DOMAIN-SUFFIX`匹配主流域名;`IP-CIDR`用于IP网段分流;`GEOIP`依据国家代码分流。
- 步骤3: 采用细化原则:将直连域名(例如内网、国内CDN)置于规则列表最上方,避免误代理。
- 步骤4: 使用`RULE-SET`引用外部规则集文件,减少冗余,便于多人协作维护。
- 步骤5: 末尾添加`MATCH`兜底策略(Proxy/Direct),确保所有流量都有去向。
- 步骤6: 通过Clash Dashboard或日志验证规则命中情况,调整次序优化命中效率,定期更新规则集。
3️⃣ 策略组的作用及如何配置负载均衡/故障转移?
- 步骤1: 策略组位于`proxy-groups`字段,支持类型:select(手动)、url-test(自动测速)、fallback(故障转移)、load-balance(负载均衡)。
- 步骤2: 新建策略组`name: Auto-Proxy`,类型`url-test`,设定测试地址(http://www.gstatic.com/generate_204)和间隔时间`interval: 300`。
- 步骤3: 将具体节点(proxies中的名称)加入`use`或`proxies`列表,节点顺序影响优选策略。
- 步骤4: 负载均衡策略`load-balance`需设置`strategy: consistent-hashing`,使同一请求流固定出口。
- 步骤5: 故障转移`fallback`会按列表顺序尝试可用节点,如第一个超时则顺延下一个,保障高可用。
- 步骤6: 最终在规则中把需要智能分流的域名指向该策略组名称,即可实现动态节点选择与冗余。
4️⃣ 如何优化Clash性能降低延迟和CPU占用?
- 步骤1: 禁用不必要的日志输出,设置`log-level: warning`或`error`,减少I/O开销。
- 步骤2: 使用`geox`模式预缓存IP数据库,避免每次查询外部API,配置`geoip-database`本地文件。
- 步骤3: 限制并发连接数,设置`keep-alive-interval`减少频繁握手,同时适当调大路由缓存。
- 步骤4: 对于大量规则,启用`rule-set`并开启`experimental`下的`rule-set-cache`优化匹配效率。
- 步骤5: 调整DNS配置,使用国内快速DNS比如`223.5.5.5`,并开启`enhanced-mode: fake-ip`降低查询延迟。
- 步骤6: 监控核心占用工具(如htop),如有异常则检查节点超时设置,优化节点健康检测间隔。
5️⃣ Clash运行异常,如何系统性调试定位故障?
- 步骤1: 检查配置文件语法:运行`clash -t -f config.yaml`,定位具体行号错误。
- 步骤2: 启用HTTP API和日志级别`debug`,访问REST API `http://127.0.0.1:9090/logs` 查看实时请求和规则命中情况。
- 步骤3: 验证代理端口是否监听:`netstat -an | grep 7890`,确保防火墙放行或关闭。
- 步骤4: 测试核心连通性:使用`curl -x socks5://127.0.0.1:7890 https://cip.cc` 查看出口IP是否符合预期。
- 步骤5: 若策略组不生效,检查`proxy-groups`引用节点名称是否和`proxies`中一致,注意名称空格。
- 步骤6: 查看社区issue或提交带详细日志的反馈,必要时更新到最新版本,排除已知bug。
6️⃣ 如何安全升级Clash版本并迁移旧配置?
- 步骤1: 备份当前config.yaml、Country.mmdb等核心文件至独立目录,防止升级覆盖。
- 步骤2: 前往GitHub Releases查看新版变更日志,确认配置文件字段是否存在破坏性变更。
- 步骤3: 执行对应平台的升级步骤,如macOS `brew upgrade clash`,或下载二进制替换旧文件。
- 步骤4: 新版启动前使用`clash -t`测试兼容性,若提示过时字段则根据文档修改配置文件。
- 步骤5: 重启核心并观察日志2-3分钟,检查策略组及规则是否正常工作,访问关键站点测试。
- 步骤6: 确认无误后删除旧版本备份,并将新配置同步到多设备,享受最新特性。
每个问题均按1-6步骤系统化解答,确保完整掌握Clash运维精髓。