ClearDeck 御流

关于

御流(ClearDeck)是一款 Android 上的本地网络防火墙。它用 Android 自带的 VPN 接口在本机查看每个应用的连接:命中规则的连接当场被拒绝,其余流量直连出去。没有任何流量经过我们的服务器 —— 因为我们根本没有服务器可以让它经过。

  • v0.1.0
  • GPL-3.0
  • Android 10 – 17

公司

御流由 北京烽鸿科技有限责任公司(Beijing Fenghong Technology Co., Ltd.)开发与维护。应用、这个网站,以及下面写到的各项许可义务,都由这家公司负责。

它建立在什么之上

御流不掩饰自己的来处。它的 Android 前端衍生自 ClashMetaForAndroid,内部的网络内核衍生自 mihomo 内核。两者都以 GPL-3.0 发布,御流整体也以 GPL-3.0 发布。

这既是许可义务,也是对「为什么它能用这么少的 CPU 做这么多事」的诚实回答 —— 隧道与规则匹配里最难的部分不是从零写出来的,功劳属于上游。

内置的广告与跟踪规则数据来自 anti-AD,以 MIT 许可发布。

规则名单由以下上游来源编译而来

来源 覆盖
EasyList 广告
EasyList Ad Servers 广告
217heidai/adblockfilters 广告
AWAvenue Ads Rule 广告、跟踪
EasyPrivacy 跟踪
AdGuard Tracking Protection 跟踪
Hagezi Threat Intelligence Feeds (TIF, mini) 恶意网址

值得一说的工程细节

有几个决定从外面看不见,却决定了应用的行为。

界面崩溃不会断掉 VPN

界面跑在应用进程里,内核跑在独立的 :tun 进程。界面崩了,隧道照常运行 —— 防护不会因为某个页面抛了异常而中断。

IPv4 与 IPv6 都抓

两个协议族都走隧道。只抓其中一个,IPv6 网络就会绕开所有规则,一条都命中不了。

控制通道只留在回环

本地控制通道只监听 127.0.0.1,端口随机,而且每次加载配置都会重新生成一个随机密钥。

核心逻辑能在桌面 JVM 上测

工程拆成 9 个 Gradle 模块。其中纯 Kotlin 的部分 —— core-rules 与 core-analytics —— 不依赖 Android,逻辑可以直接在普通 JVM 单元测试里跑(写作时有 19 个测试文件)。

它不会抓自己

御流把自己放进隧道不抓取的名单里:在部分设备上,让隧道抓到自己中继的 socket 会直接把网络断掉。

联系

对应用或这个网站有任何问题,可以写信到:

这个地址是占位符。正式的联系方式会在发布前公布在这里。

状态

御流的版本是 0.1.0,尚未公开发布。它没有上架任何应用商店,也没有 F-Droid 或 GitHub Releases,目前没有公开下载。将来发布时,源码必须能同时拿到 —— 这是 GPL-3.0 的要求。

法务

随应用一起发布的三份文档,在这里也能读到:

上线时通知你

第一个版本正在收尾。留下邮箱,准备好时我们通知你一次 —— 只发这一封。

预约通道即将开放。

仅用于上线通知,不发推广邮件,也不会分享给第三方。