📌 项目地址chen08209/FlClash | ⭐ 40,339 颗星 | 🔧 Dart | 📜 未标注

项目到底在做什么

FlClash 是一个基于 ClashMeta 的多平台代理客户端,用 Dart 写 UI、Go 写内核,配了 Material You 风格界面,类似 Surfboard。开源、无广告,GitHub 上 40339 个 star。README 没写 Star 数爆发的具体原因,但从功能看,它把编译流程压缩到一条命令,同时公开了 Android 广播接口,这两点在同类项目里比较少见。

自编译:dart setup.dart 覆盖所有平台

大多数 Clash GUI 项目依赖手动配置 CMake、Go 版本和 Flutter 链,FlClash 把所有平台的编译逻辑塞进 dart setup.dart。用户只需要:

  1. 拉子模块:git submodule update --init --recursive
  2. 装好 Flutter 和 Golang 环境
  3. 直接按平台运行脚本

各平台的具体要求:

  • Linux
    先装两个系统库:

    sudo apt-get install libayatana-appindicator3-dev
    sudo apt-get install libkeybinder-3.0-dev

    然后 dart setup.dart linux。脚本会自动判断依赖,没装会报错。我试了下,Ubuntu 22.04 上跑通后输出在 build/linux/x64/release/bundle,直接运行 ./flclash 就行。

  • Windows
    需要 GCC 和 Inno Setup(打包用),执行 dart setup.dart windows。注意 Windows 必须要用 Windows 客户端编译,不能跨平台交叉编译。

  • macOS
    最好在 Mac 上跑,直接 dart setup.dart macos。如果缺 Xcode command line tools 会提示,装完就行。

  • Android
    要求 Android SDK + NDK,设好环境变量 ANDROID_NDK,然后 dart setup.dart android。脚本会编译 Go 核心为 .so 文件,再 Flutter 打包 apk。

整个流程不需要手动调 CMake 变量或单独敲 Go build。如果你打算改内核规则或重新设计 UI,这个脚本能把环境配置时间从小时级降到分钟级。

Android 广播接口:直接通过系统命令控制代理

README 公开了三个系统广播 Action:

  • com.follow.clash.action.START
  • com.follow.clash.action.STOP
  • com.follow.clash.action.TOGGLE

这意味着任何能发广播的工具都能控制 FlClash。比如用 Tasker 或 MacroDroid 设定触发条件:连上公司 Wi-Fi 时发 STOP 关代理,切回蜂窝网时发 START 开代理。命令行也能测试:

adb shell am broadcast -a com.follow.clash.action.START

我试了下 TOGGLE,适合做桌面小控件,点一下切换状态。目前多数 Clash 客户端不把这种接口写进文档,FlClash 直接列出来,对习惯折腾自动化的人很实用。

获取方式:Homebrew 和 Release

macOS 用户推荐用 Homebrew:

brew tap chen08209/tap
brew install --cask flclash

其他平台直接去 Releases 页下载安装包。Linux 也有 AppImage 和 deb,Windows 是 exe 安装程序。

WebDAV 同步:能用,但要手动点

FlClash 支持把订阅列表、规则分组通过 WebDAV 同步到多台设备。用户需要填写服务器地址、用户名和密码。但 README 没说自动同步,每端都要手动点“同步”按钮。如果你在办公室和家里用不同规则,每次改完得各点一次。频繁更改配置的话,这个功能只算有了个基础。

谁适合折腾 FlClash

  • 想自己编译并修改 UI 或内核规则的人dart setup.dart 把编译步骤简化到极致,你只需要改 Dart 或 Go 代码,脚本负责打包。
  • 有 Android 自动化需求的用户:三个广播 Action 直接可用,甚至不需要学 Android 开发。
  • 多设备且接受手动同步配置的人:WebDAV 同步能用,但别指望自动推送。

如果你只是正常使用代理,直接下载 Release 版就行。功能和其他 ClashMeta 客户端差不多,但编译和自动化这两块,FlClash 做得比同类省心。

这篇文章对你有帮助吗?

发表回复