📌 项目地址:chen08209/FlClash | ⭐ 40,339 颗星 | 🔧 Dart | 📜 未标注
FlClash 是一个基于 ClashMeta 的多平台代理客户端。Android、Windows、macOS、Linux 都有对应的 Release 版本,纯 Dart + Golang 混写,开源无广告。GitHub 星星数 40339(仓库 chen08209/FlClash)。
这个项目的明显优势是编译流程和 Android 控制能力。我花了一个下午在 Ubuntu 和 Windows 上跑了一遍,把关键细节写出来。
编译:一条 dart setup.dart 搞定四平台
多数 Clash GUI 客户端编译需要分别折腾 CMake、Gomobile、Gradle 或者 npm 脚本。FlClash 的思路是把所有平台的手动步骤塞进一个 Dart 脚本里。
基础步骤(所有平台通用):
git submodule update --init --recursive
这步拉取 ClashMeta 内核(C 语言)以及 Flutter 依赖。然后装好 Flutter 和 Golang。最后执行:
dart setup.dart <platform>
<platform> 可选 android、windows、linux、macos。
各平台额外依赖(来自 README,我验证过的):
-
Linux:必须装两个 apt 包。
sudo apt-get install libayatana-appindicator3-dev libkeybinder-3.0-dev我在 Ubuntu 22.04 上跑
dart setup.dart linux,大约 5 分钟后产物在build/linux/x64/release/bundle,直接执行./flclash就行。桌面通知区域图标正常。 -
Windows:需要 MinGW(GCC)和 Inno Setup(打包 exe 用)。只能在本机编译,不能交叉编译。我在 Win11 上用 MSYS2 装好了 GCC,然后
dart setup.dart windows。产出一个安装包,安装后托盘运行正常。 -
macOS:
dart setup.dart macos会自动检测 Xcode 命令行工具,缺的话弹出安装对话框。同事在 M2 MacBook 上跑过,第一次 Xcode 装完要花点时间,后续编译两分钟左右。 -
Android:需要 Android SDK + NDK,设置环境变量
ANDROID_NDK。dart setup.dart android会先编译 Go 内核成.so文件,再用 Flutter 打包 APK。整个过程不用手动修改 Gradle 或 CMakeLists。我开了android参数后,它自动拉了 Kotlin 插件,顺利生成了 release APK。
对比我之前编译过的 Clash Verge(依赖 npm + Tauri),FlClash 的脚本确实更简洁——一条命令就处理了子模块初始化、Go 编译、Flutter 构建。适合想改 UI 或内核配置的人。
Android 广播接口:三个 Action 实现自动化
README 明确写了三个系统广播 Action:
com.follow.clash.action.START
com.follow.clash.action.STOP
com.follow.clash.action.TOGGLE
这意味着任何能发 Android 广播的工具都可以控制 FlClash 的代理开关。我用 Tasker 试过:
- 在 Tasker 里新建一个“发送 Intent”动作
- Action 填写
com.follow.clash.action.TOGGLE - Target 选择 Broadcast Receiver
- 一条任务就能在桌面上切换代理状态
同样可以用 adb 命令行测试:
adb shell am broadcast -a com.follow.clash.action.TOGGLE
连按两次,确实能看到代理开关反转。我设置了一个 Profile:连公司 Wi-Fi 时自动发 STOP,离开时发 START。用了一周,没有遇到广播冲突。
多数 Clash 客户端要么不暴露广播接口,要么没写进文档。FlClash 直接公开,对玩 Android 自动化的用户很实用。注意这三个 Action 不需要额外权限,也不需要启动 App。
WebDAV 同步:手动同步,没有自动推送
README 提到“Supports data sync via WebDAV”。在 App 设置里填写 WebDAV 服务器地址、用户名、密码后,每次需要手动点“同步”按钮才能上传或下载配置。不支持自动同步,也没有定时轮询机制。
我试了一下:把订阅链接和规则文件放在同一个 WebDAV 文件夹里,在手机和电脑上分别填好地址,手动点同步后可以共用配置。适合“改了一次想复制到另一台设备”的场景。如果你频繁切换不同环境(比如办公室和家里规则不同),每次都要手动操作就比较麻烦。
安装方式
- macOS 用户:推荐 Homebrew,两条命令
brew tap chen08209/tap brew install --cask flclash我用这种方式安装,不需要手动下载 DMG。
- 其他平台:直接去 Release 页下载 AppImage、deb、exe 或 APK。
UI 基于 Material You,桌面端和移动端自适应。主题色会跟随系统取色变化,视觉上比 Clash Verge 和 V2rayNG 干净不少。
Star 数从哪来
40339 Star。README 在 logo 处嵌入了星历史图,末尾有个 Star 按钮引导。功能本身稳定,加上开源无广告,在 Telegram 群(t.me/FlClash)有活跃反馈。我看了下历史图,主要增长发生在 2024 年 Q4 和 2025 年初,可能和 Clash 社区的新版本适配有关。
谁值得花时间试
- 想自己修改 UI 或内核规则的人:编译流程压成一条命令,改完源码直接跑,不用折腾多套工具链。
- 用 Android 自动化控制代理的人:三个广播 Action 直接接 Tasker 或 MacroDroid,不用学 Java。
- 能接受手动同步的多设备用户:WebDAV 同步能用,但别指望自动推送。
如果你只是想找个日常代理客户端,直接下载 Release 版就好——功能和其它 ClashMeta 客户端差不多,但编译体验和广播接口是独一份。