← 返回信息流
GitHub 热榜GitHub Trending · 日·5 天前

开源项目 FlClash 由 chen08209 发布

原标题:chen08209/FlClash
Dart40,295 stars+190 今日

速览

FlClash 是一款基于 ClashMeta 内核开发的跨平台代理客户端,支持多平台运行。其核心亮点在于界面简洁、易于使用,并承诺开源免费且无广告,适合需要稳定网络代理服务的用户。

AI 深度解读

这是什么

FlClash 是一个基于 ClashMeta 内核构建的多平台代理客户端,由开发者 chen08209 在 GitHub 上开源。该项目主要使用 Dart 语言开发,依托 Flutter 框架实现了跨平台能力,同时底层依赖 Go 语言编写的核心逻辑。

作为一个开源且无广告的项目,FlClash 旨在提供简洁、易用的网络代理体验。它在桌面端(Linux, Windows, macOS)和移动端(Android)均表现良好,目前已在 GitHub 获得约 40,000+ 星标,属于热门开源项目之一。其设计哲学强调现代化 UI 体验与功能实用性的平衡。

解决的问题

  1. 原生 Clash 客户端体验割裂:传统的 Clash 客户端(如 Clash Verge, Clash for Windows)往往界面较为陈旧或配置复杂。FlClash 解决了用户对于现代化、美观且直观的用户界面的需求。
  2. 多平台一致性缺失:许多代理工具在桌面和移动端体验差异巨大。FlClash 通过 Flutter 实现了“一次编写,多端运行”,确保用户在手机和电脑上获得一致的交互逻辑和视觉风格。
  3. 配置同步痛点:用户通常需要在多个设备间维护相同的订阅链接和配置。FlClash 通过集成 WebDAV 支持,解决了多设备间配置数据同步的难题,避免了手动复制粘贴的繁琐。
  4. 广告与臃肿问题:市面上部分免费代理工具捆绑广告或功能冗余。FlClash 坚持开源、无广告、轻量化的原则,回归工具本质。

核心功能

  • 多平台支持:全面覆盖 Android、Windows、Linux 和 macOS 四大主流平台。
  • 现代化 UI 设计
    • 基于 Material You Design 设计语言,提供类似 Surfboard 的清爽界面。
    • 自适应多种屏幕尺寸,支持深色模式(Dark Mode)及多种颜色主题。
  • 订阅管理
    • 支持导入订阅链接(Subscription Link)。
    • 支持通过 WebDAV 进行数据同步,实现多设备配置无缝衔接。
  • 系统级集成
    • Linux:支持系统托盘图标,通过 libayatana-appindicator3-devlibkeybinder-3.0-dev 实现桌面环境集成。
    • Android:支持通过 Intent Action 控制代理状态:
      • com.follow.clash.action.START:启动代理
      • com.follow.clash.action.STOP:停止代理
      • com.follow.clash.action.TOGGLE:切换代理状态
  • 底层内核:基于 ClashMeta,继承了其强大的规则解析能力和性能优势。

亮点 / 与同类相比

  1. UI/UX 领先

    • 相比传统 Clash 客户端(如 Clash Premium 原版或早期 Verge 版本),FlClash 的 Material You 设计更加符合现代操作系统的设计规范,视觉体验更流畅、年轻。
    • 自适应布局使得其在平板或大屏设备上也能良好展示。
  2. 技术栈优势

    • Dart + Flutter + Go:混合架构结合了 Flutter 的跨平台 UI 能力和 Go 的高性能网络处理。相比纯前端或纯原生方案,开发效率和运行效率取得了较好平衡。
    • 构建脚本自动化:提供 dart setup.dart 脚本,自动处理各平台的依赖安装(如 Linux 的 apt 包、Android 的 NDK 设置等),降低了编译门槛。
  3. 轻量与纯净

    • 无广告、无捆绑软件。
    • 代码开源透明,社区活跃,便于审计和安全验证。
  4. WebDAV 同步

    • 这是相比许多同类竞品的一大亮点。用户可以将配置存储在私有云盘(如 Nextcloud、Seafile 等)或公共 WebDAV 服务中,实现真正的“一处修改,处处同步”。

适合谁用 / 上手

适合人群:

  • 技术爱好者:喜欢折腾开源工具,关注 UI 设计和用户体验的用户。
  • 多设备用户:同时使用 Android 手机和 Windows/Linux/macOS 电脑,需要配置同步的用户。
  • Clash 用户:熟悉 Clash 规则体系,但希望获得更现代化客户端体验的用户。
  • 开发者:对 Flutter 或 Go 技术栈感兴趣,希望参考其架构实现的开发者。

上手指南:

  1. 环境准备

    • 安装 Flutter SDK 和 Go 语言环境。
    • 根据目标平台安装相应依赖:
      • Android:安装 Android SDK 和 NDK,设置 ANDROID_NDK 环境变量。
      • Windows:安装 GCC 和 Inno Setup。
      • Linux:安装 libayatana-appindicator3-devlibkeybinder-3.0-dev(也可通过 setup 脚本自动安装)。
      • macOS:无需额外复杂依赖,需 macOS 客户端环境。
  2. 获取代码

    git clone <repository-url>
    cd FlClash
    git submodule update --init --recursive
    
  3. 构建应用: 使用提供的 setup 脚本进行平台特定构建:

    • Android: dart setup.dart android
    • Windows: dart setup.dart windows
    • Linux: dart setup.dart linux
    • macOS: dart setup.dart macos
  4. 使用

    • 导入订阅链接。
    • 配置 WebDAV 地址、用户名和密码以实现同步。
    • 选择主题和颜色模式。
    • 启动代理即可使用。

提示:对于非开发者用户,建议直接前往 GitHub Releases 页面下载预编译的二进制文件,无需自行编译。

查看原文 →github.com