Clash — 规则驱动的高速代理工具
跨平台、模块化、支持多种代理协议,为高阶网络自由而生。极致性能,灵活策略组,开源透明。
⚡ 低延迟 · 毫秒级路由决策 · 策略自动切换
核心特性 · 定义自由网络
规则灵活
支持策略组、延迟测试、自动选择及域名/IP 规则集,提供高度可自定义的路由能力,满足高阶分流需求。
全平台覆盖
Windows / macOS / Linux / Android / iOS 一致体验,图形化面板与命令行双模式,随时随地安全连接。
高性能
基于原生 Go 语言实现,极低内存占用,并发处理强大,延迟测试与节点优选确保最快响应。
开源透明
MIT 协议开放源代码,社区驱动迭代,全球数千贡献者共同维护,确保安全可靠,无后门担忧。
跨平台 · 无缝体验
开放生态 · 全球贡献者
⭐ 28.7k
GitHub Stars
最新 Release: v1.18.4
🌐 1.2k+
社区配置仓库
每日活跃规则集
版本日志 · 持续进化
v1.18.4 稳定版 · 2025-02-20
✨ 优化内存占用 & 提升策略组切换速度;修复特定协议下 DNS 解析异常;增加新规则类型 RULE-SET 性能改进。
v1.18.2 稳定版 · 2025-01-08
🎉 支持 VLESS 协议,优化隧道并发性能;日志系统重构,支持更细粒度的 debug 输出;Web UI 交互增强。
v1.17.0 预览版 · 2024-11-12
🚀 引入新型节点筛选算法,延迟探测更智能;配置热重载稳定性提升;大量社区PR合并,感谢贡献者。
常见问题 · 深入解读 Clash
📌 1. Clash 如何在不同操作系统上快速安装并保证兼容性?
- 步骤一: 访问官网下载区,根据您的操作系统选择对应安装包 — Windows 运行.exe,macOS 使用 .dmg,Linux 使用二进制或包管理器。
- 步骤二: 下载完成后,解压至指定目录,Windows 用户建议使用便携版,macOS/Linux 将二进制加入 PATH 环境变量。
- 步骤三: 准备核心配置文件 config.yaml,可选用社区模板或一键生成器配置监听端口与代理节点。
- 步骤四: 通过终端执行 `clash -f config.yaml` 或使用图形界面客户端(如 Clash Verge)启动服务。
- 步骤五: 验证代理是否生效:设置系统/浏览器代理为 HTTP/Socks5 地址(默认127.0.0.1:7890),访问测试网站。
- 步骤六: 如需开机自启,Windows 创建快捷方式至启动文件夹;Linux 配置 systemd 服务;macOS 使用 launchctl 管理。
✅ 以上就是跨平台安全安装 Clash 的标准流程,保证配置文件一致即可无缝迁移。
⚙️ 2. 如何编写高效规则并利用策略组实现自动节点切换?
- 步骤一: 明确分流需求:国内流量直连、国外流量代理、广告拦截等。基础规则使用 GEOIP, DOMAIN-SUFFIX 等。
- 步骤二: 定义策略组类型:select(手动选择)、url-test(自动测速选择最低延迟)、fallback(故障转移)。
- 步骤三: 在配置文件中设置 proxies 节点列表,并建立 proxy-groups 引用这些节点,例如组名 “PROXY”。
- 步骤四: 编写规则路由:首先处理 DOMAIN-KEYWORD,再处理 DOMAIN-SUFFIX,最后 GEOIP 兜底,并指定最终策略组。
- 步骤五: 启用 url-test 策略组时配置 interval 和 tolerance 参数,自动选择延时最低节点提升体验。
- 步骤六: 使用 `clash -t` 检测配置文件正确性,访问 RESTful API (9090端口) 实时调整策略组选择器。
💡 细致规则与策略组搭配能实现智能化流量分发,降低手动切换频率,提高访问速度。
🚀 3. 如何最大程度优化 Clash 性能,降低内存与延迟?
- 步骤一: 精简规则集:避免过多冗余条目,使用 RULE-SET 远程加载规则,减少配置文件体积。
- 步骤二: 调整 DNS 设置:启用 `enhanced-mode` 为 fake-ip 或 redir-host,并设置国内DNS上游加快解析。
- 步骤三: 设置合理的 `find-process-mode` 为严格模式可根据进程名代理,降低非必要 CPU 消耗。
- 步骤四: 对于大规模节点订阅,使用 `url-test` 间隔检测调整为 300s,避免高频网络探测。
- 步骤五: 启用 GEOIP 数据库缓存以及规则编译优化,Clash Premium 版本体验 P2P 连接加速。
- 步骤六: 定期清理日志级别为 info 或 warning,配合 `keep-alive-interval` 保证长连接稳定性。
🔧 经过以上调优,即使在复杂网络环境下 Clash 也能保持极低开销与快速响应。
🔒 4. Clash 如何确保代理过程中的数据安全及隐私防泄漏?
- 步骤一: 推荐使用支持加密的协议如 Shadowsocks AEAD、VMess 或 Trojan,规避明文传输风险。
- 步骤二: 开启 `global` 模式并禁用 `bypass` 确保所有流量经代理,同时防止 DNS 泄漏。
- 步骤三: 配置 `fallback` DNS 和 `hosts` 规则,避免真实 IP 泄露到境外 DNS 服务器。
- 步骤四: 设置混合路由策略,对于敏感应用(如网银)强制直连或走独立安全链路。
- 步骤五: 定期更新 Clash 版本,社区审查代码确保无后门,从官方 GitHub 或可信源下载。
- 步骤六: 使用外部访问控制列表(ACL)以及 `authentication` 字段为 RESTful API 设置密码,防止未授权控制。
🛡️ 遵循以上规范可显著提升隐私保护等级,使 Clash 成为可靠的安全代理网关。
💻 5. 开发者如何参与 Clash 开源社区并遵守 MIT 协议?
- 步骤一: Fork 官方仓库 (Dreamacro/clash),阅读贡献指南和 code_of_conduct。
- 步骤二: 在本地开发环境编译:需要 Go 1.19+,克隆代码并运行 `make` 生成二进制文件。
- 步骤三: 选择 open issues 标注为 "help wanted" 或者新增功能、修复 bug,编写测试用例。
- 步骤四: 提交 PR 前确保代码格式规范,并添加清晰的功能描述,遵循 commit 规范。
- 步骤五: 社区 Maintainer 审查后合并,遵循 MIT 协议可自由二次开发但保留版权声明。
- 步骤六: 参与讨论与设计 RFC,为生态研发更多优秀插件或 GUI 面板成为核心贡献者。
🌍 Clash 社区欢迎任何人贡献代码、文档或推广,共同维护全球开源力量。
🛠️ 6. 日常使用中常见报错及故障排查方法(代理失效、无法启动)
- 步骤一: 检查配置文件语法:运行 `clash -t -f config.yaml`,显示 valid configuration 表示通过。
- 步骤二: 端口冲突:确保 7890/9090 等端口未被占用,修改 config 中的 `mixed-port` 或 `external-controller`。
- 步骤三: 代理失效时可查看日志输出 `clash -d .` 目录,观察 error 级别日志,常见 DNS 或订阅连接失败。
- 步骤四: 更新 GeoIP 数据库或规则集,过时的 IP 库可能导致路由错误,去官网下载最新 .dat 文件。
- 步骤五: 对于订阅更新失败,检查网络连通性,设置 `user-agent` 仿浏览器或更换订阅链接。
- 步骤六: 若系统代理设置无效,手动指向地址并使用 curl 测试:`curl -x 127.0.0.1:7890 https://www.google.com`。
🔎 系统掌握以上排查步骤,95% 的 Clash 日常问题均可迅速定位解决。