celzero/rethink-app
GitHub: celzero/rethink-app
一款 Android 端的 DNS + 防火墙 + VPN 重思工具,解决在移动设备上统一管理 DNS 安全与应用级网络控制的需求。
Stars: 4756 | Forks: 266
## Android 的 DNS + 防火墙 + VPN 重思
一款 [WireGuard](https://github.com/wireguard/wireguard-go) 客户端、[OpenSnitch](https://github.com/evilsocket/opensnitch) 风格的防火墙与网络监控 + 一款 [pi-hole](https://github.com/pi-hole/pi-hole) 风格的 DNS over HTTPS、DNS over TLS、DNSCrypt 客户端并支持黑名单。
[
](https://f-droid.org/packages/com.celzero.bravedns/)
[
](https://play.google.com/store/apps/details?id=com.celzero.bravedns)
[
](https://apps.obtainium.imranr.dev/redirect.html?r=obtainium://add/https://github.com/celzero/rethink-app)
*Release certificate SHA-256 digest*: `1f32d432e81a1dc5c00aafeb0c6636cd7819965d174420e59db9675dff7a88e9`。
换句话说,Rethink DNS + Firewall + VPN 有三种主要模式:VPN、DNS 和防火墙。VPN(代理)模式支持在分流配置中使用多个 WireGuard 上行链路。DNS 模式将应用生成的所有 DNS 流量路由到用户选择的任意 DNS-over-HTTPS / DNS-over-TLS / DNSCrypt 解析器,或在分流配置中通过 WireGuard 配置的 DNS。防火墙模式允许用户根据屏幕开启/关闭、应用前台/后台、非计量连接/计量连接等事件拒绝整个应用访问互联网;或基于应用商店定义的类别(如社交、游戏、工具、生产力)进行限制;或额外基于用户自定义的域名与 IP 黑名单。




*截图来自 [`v055e`](https://github.com/celzero/rethink-app/releases/tag/v0.5.5e)。*
### VPN / 代理
Rethink 支持通过 SOCKS5、HTTP CONNECT 和 WireGuard 隧道转发 TCP 与 UDP。分流隧道进一步帮助同时运行多个此类隧道,并允许用户将不同应用路由到不同隧道。例如,可以同时将 Firefox 通过 SOCKS5 连接到 Tor、Netflix 通过 WireGuard 连接到任意主流 VPN 提供商,以及 Telegram 或 WhatsApp 通过抗审查的 HTTP CONNECT 端点路由。
### 防火墙
防火墙并不真正关心连接本身,而是关注发起连接的行为。这与传统的防火墙不同,但与 [Little Snitch](https://www.obdev.at/products/littlesnitch/index.html)、[LuLu](https://objective-see.com/products/lulu.html)、[Glasswire](https://glasswire.com/) 等类似。
目前,通过捕获由 [`firestack`](https://github.com/celzero/firestack)(使用 Go 编写)管理的 `udp` 和 `tcp` 连接来实现每个应用的连接映射,并查询 [ConnectivityService 获取所有者](https://developer.android.com/about/versions/10/privacy/changes#proc-net-filesystem),该 API 仅在 Android 10 或更高版本中可用。在 Android 9 及更低版本上,通过读取 `procfs`(`/proc/net/tcp` 和 `/proc/net/udp`)来按需跟踪每个应用的连接,方式类似 [NetGuard](https://github.com/M66B/NetGuard/) 或 OpenSnitch。
### 网络监控
网络监控是一种类似成绩单的功能,用于记录每个应用在何时建立了多少连接以及连接到何处。跟踪 UDP / TCP(以及 Android 12+ 上的 DNS)是直接的。DNS 在 Android 11 及更低版本上更难追踪,因此目前使用一种启发式方法,可能在所有情况下都不适用。
### DNS over HTTPS 客户端
几乎所有与网络相关的代码(包括 DNS over HTTPS 分流隧道)都是 [Jigsaw-Code/outline-go-tun2socks](https://github.com/Jigsaw-Code/outline-go-tun2socks) 的硬分支,使用 Go 编写。UI 完全不同,但仅少量借鉴了 [Jigsaw-Code/Intra](https://github.com/Jigsaw-Code/Intra/)。分流隧道会拦截发送到 VPN DNS 端点的请求,并将其转发到用户选择的 DNS-over-HTTPS / DNS-over-TLS / DNSCrypt / Oblivious DNS-over-HTTPS 端点,同时记录端到端延迟、请求时间、DNS 请求查询本身及其响应。
### Rethink DNS 解析器
一个恶意软件与广告拦截 DNS over HTTPS 解析器,位于 `https://sky.rethinkdns.com/rs`(通过 Cloudflare Workers 部署到全球 300 多个位置),是应用的默认 DNS 端点,但用户可以自由更改。一个可配置的 DNS 解析器即将在 2026 年底推出,它允许用户添加或移除黑名单与白名单、添加重写规则、分析 DNS 请求。目前,一个免费使用的 DNS over HTTPS 端点可通过自定义黑名单在此处设置:[rethinkdns.com/configure](https://rethinkdns.com/configure)。
该解析器由 [FLOSS/fund](https://floss.fund/) 赞助,部署在 [Fly.io](https://fly.io/) 上的 `max.rethinkdns.com`,以及 [Deno Deploy](https://deno.com/deploy) 上的 `rdns.deno.dev`,除此之外还有默认部署在 [Cloudflare Workers](https://workers.dev) 上。该解析器是开源软件:[serverless-dns](https://github.com/serverless-dns/serverless-dns)。
### Rethink 代理网络
RPN 是一个多方中继,连接通过托管在 Cloudflare Workers 上的无服务器代理跳转,最终由 Windscribe 出口。启动时,用户可以自行托管第一个跳点或使用我们提供的节点。该服务于 2025 年 12 月上线,定价为每月 3 美元即可获得无限带宽。
该代理是开源软件:[serverless-proxy](https://github.com/serverless-proxy/serverless-proxy)。
### 翻译
请在 [Weblate](https://weblate.org/) 上帮助 [翻译 Rethink DNS + Firewall + VPN](https://hosted.weblate.org/engage/rethink-dns-firewall):
[](https://hosted.weblate.org/engage/rethink-dns-firewall) ### Rethink DNS + Firewall + VPN 不是 Rethink 不是匿名工具:它帮助用户应对无节制的审查与监控,但并不声称始终保护用户身份。 Rethink 并非旨在成为一个功能丰富的传统防火墙:它更接近 [Little Snitch](https://www.obdev.at/products/littlesnitch/index.html),而非 IP 表。 Rethink 不是防病毒软件:Rethink 可通过其基于 DNS 的黑名单阻止钓鱼攻击、恶意软件和恐吓网站,但不会主动缓解威胁或主动探测与响应。 ### Rethink DNS + Firewall + VPN 的目标 将 Android 设备转变为用户代理:用户可以按自己的意愿控制设备,而无需 root 权限。对于始终在线、始终连接的设备,关键在于捕获网络流量并以有意义的方式报告,让用户能够采取行动限制暴露,而不必完全消除它。以 DNS 为例——对于绝大多数(如果不是全部)连接,应用都会先发出 DNS 请求,通过跟踪这些请求即可获取大量关于 Android 上正在发生的事情以及责任应用的情报。 为所有人提供开放互联网的承诺:随着不可避免的 ECH(加密客户端问候)标准化以及 DNS-over-HTTPS 和 DNS-over-TLS 在操作系统与浏览器中的广泛采用,我们正逐步接近开放互联网。当然,*深度包检测* 仍是无法仅靠加密 DNS 缓解的可信威胁,但这也是一个通过最小(无需使用 VPN 或 IPFS 访问)实现最大影响的例子(例如绕过大多数国家的互联网审查)。Rethink 将继续以尽可能简单的方式让这些技术触手可及,尤其是那些以 10% 的努力实现 90% 效果的技术。 ## 开发 [](https://github.com/celzero/rethink-app/releases) [](https://github.com/celzero/rethink-app/actions/workflows/android.yml) [](https://www.apache.org/licenses/LICENSE-2.0) [](https://securityscorecards.dev/viewer/?uri=github.com/celzero/rethink-app) [](https://deepwiki.com/celzero/rethink-app) 1. 欢迎 fork 并提交可复现的 bug 修复的 pull request。 2. 代码库较为原始且缺乏文档与全面测试。如需帮助,请自由创建维基页面以突出构建、测试、编写和提交代码时的痛点。[DeepWiki](https://deepwiki.com/celzero/rethink-app) 和 [Copilot](https://github.com/copilot?prompt=https://github.com/celzero/rethink-app) 也可能有所帮助,但它们会生成幻觉内容。 3. 撰写描述性的提交信息,简洁说明所做的更改。 4. 每个提交必须引用项目中的一个开放问题,以确保没有重复工作并可参考之前的讨论。 5. 如果计划开发某项功能,请在开始工作前先在 [项目问题](https://github.com/celzero/rethink-app/issues/new) 中创建 GitHub issue 以启动讨论。 6. 正式版本通常每几个月发布一次,而 [alpha 版本每月发布一次](https://github.com/celzero/rethink-app/actions/workflows/nightly.yml)。 ## 原则(除非你有更好的方案) 我们尚未达到目标,也许永远也不会,但以下原则适用于项目可预见的未来。 - 正确、安全、弹性、快速,按此顺序。 - 易用、无 root、无 gimmick 特性,专注于反审查与反监控。 - 易用:所有 30 亿以上 Android 用户都应能使用。达到 CleanMaster / Instagram 级别的易用性。 - 无 root:任何功能都不应需要 root 权限。 - 无 gimmick:避免误导性内容,接近恐吓软件的行为。 - 反审查:特性聚焦于帮助每个人实现开放互联网,优先以尽可能高效的方式(经济与技术层面)。 - 反监控:如上所述,但特性进一步限制(未必完全消除)应用的监控行为。 - 增量变更与更新功能保持平衡。 - 例如,修复恼火的 UI 问题或 OEM 特定错误应与开发新功能同等重要,且发布需在这两者间取得良好平衡。但仅做增量变更也是可接受的。 - 有主见:消除复杂性。不要假设用户拥有计算机科学博士学位才能使用应用。 - 无重复功能。 - 避免提供过多可调参数和设置。优先简单而非简单化。 - 忽略所有原则。 - 常识永远优先于原则。 - 必须可在 PlayStore 上分发,至少提供一个精简版本。 - 这意味着设备本地黑名单不可行;不过类似 [Cloudflare Gateway](https://www.cloudflare.com/teams-gateway/) 的基于云、按用户的分黑名单可提供相同功能。 - 言行一致:注重隐私与安全。 ## 背景 [
](https://fossunited.org/grants)
[
](https://builders.mozilla.community/)
[
](https://floss.fund/)
互联网审查(有时是 ISP 强制执行,往往是政府强制执行)、无节制的全网监控(几乎每个应用与公司在进行)促使我们走上这条路。我们三位大学同学 [Mohammed](https://www.linkedin.com/in/hussain-mohammed-2525a626/)、[Murtaza](https://www.linkedin.com/in/murtaza-aliakbar/)、[Santhosh](https://www.linkedin.com/in/santhosh-ponnusamy-2b781244/) 于 2019 年底在印度科因巴托尔这个安静的小镇聚在一起,想为此做点什么。我们的主要不满在于,尽管有许多出色的工具可供人们使用,但要么因为成本,要么因为无法理解计算机术语,人们无法使用它们。自我们起步以来发生了许多变化,但我们的重点始终在 Android 及其 30 亿+ 意料之外的开发者用户身上。当前构想自 2020 年 5 月开始酝酿,疫情期间进展一度受阻,也因放弃之前版本而经历了一些波折,我们对此并不自豪,但这也是一个开始。一切顺利,现在我们已获得 [Mozilla Builders MVP 计划](https://builders.mozilla.community/) 的资助,可以更快地实现我们想做的事情——而你不必辞职就能和我们一样兴奋。
](https://f-droid.org/packages/com.celzero.bravedns/)
[
](https://play.google.com/store/apps/details?id=com.celzero.bravedns)
[
](https://apps.obtainium.imranr.dev/redirect.html?r=obtainium://add/https://github.com/celzero/rethink-app)
*Release certificate SHA-256 digest*: `1f32d432e81a1dc5c00aafeb0c6636cd7819965d174420e59db9675dff7a88e9`。
换句话说,Rethink DNS + Firewall + VPN 有三种主要模式:VPN、DNS 和防火墙。VPN(代理)模式支持在分流配置中使用多个 WireGuard 上行链路。DNS 模式将应用生成的所有 DNS 流量路由到用户选择的任意 DNS-over-HTTPS / DNS-over-TLS / DNSCrypt 解析器,或在分流配置中通过 WireGuard 配置的 DNS。防火墙模式允许用户根据屏幕开启/关闭、应用前台/后台、非计量连接/计量连接等事件拒绝整个应用访问互联网;或基于应用商店定义的类别(如社交、游戏、工具、生产力)进行限制;或额外基于用户自定义的域名与 IP 黑名单。




*截图来自 [`v055e`](https://github.com/celzero/rethink-app/releases/tag/v0.5.5e)。*
### VPN / 代理
Rethink 支持通过 SOCKS5、HTTP CONNECT 和 WireGuard 隧道转发 TCP 与 UDP。分流隧道进一步帮助同时运行多个此类隧道,并允许用户将不同应用路由到不同隧道。例如,可以同时将 Firefox 通过 SOCKS5 连接到 Tor、Netflix 通过 WireGuard 连接到任意主流 VPN 提供商,以及 Telegram 或 WhatsApp 通过抗审查的 HTTP CONNECT 端点路由。
### 防火墙
防火墙并不真正关心连接本身,而是关注发起连接的行为。这与传统的防火墙不同,但与 [Little Snitch](https://www.obdev.at/products/littlesnitch/index.html)、[LuLu](https://objective-see.com/products/lulu.html)、[Glasswire](https://glasswire.com/) 等类似。
目前,通过捕获由 [`firestack`](https://github.com/celzero/firestack)(使用 Go 编写)管理的 `udp` 和 `tcp` 连接来实现每个应用的连接映射,并查询 [ConnectivityService 获取所有者](https://developer.android.com/about/versions/10/privacy/changes#proc-net-filesystem),该 API 仅在 Android 10 或更高版本中可用。在 Android 9 及更低版本上,通过读取 `procfs`(`/proc/net/tcp` 和 `/proc/net/udp`)来按需跟踪每个应用的连接,方式类似 [NetGuard](https://github.com/M66B/NetGuard/) 或 OpenSnitch。
### 网络监控
网络监控是一种类似成绩单的功能,用于记录每个应用在何时建立了多少连接以及连接到何处。跟踪 UDP / TCP(以及 Android 12+ 上的 DNS)是直接的。DNS 在 Android 11 及更低版本上更难追踪,因此目前使用一种启发式方法,可能在所有情况下都不适用。
### DNS over HTTPS 客户端
几乎所有与网络相关的代码(包括 DNS over HTTPS 分流隧道)都是 [Jigsaw-Code/outline-go-tun2socks](https://github.com/Jigsaw-Code/outline-go-tun2socks) 的硬分支,使用 Go 编写。UI 完全不同,但仅少量借鉴了 [Jigsaw-Code/Intra](https://github.com/Jigsaw-Code/Intra/)。分流隧道会拦截发送到 VPN DNS 端点的请求,并将其转发到用户选择的 DNS-over-HTTPS / DNS-over-TLS / DNSCrypt / Oblivious DNS-over-HTTPS 端点,同时记录端到端延迟、请求时间、DNS 请求查询本身及其响应。
### Rethink DNS 解析器
一个恶意软件与广告拦截 DNS over HTTPS 解析器,位于 `https://sky.rethinkdns.com/rs`(通过 Cloudflare Workers 部署到全球 300 多个位置),是应用的默认 DNS 端点,但用户可以自由更改。一个可配置的 DNS 解析器即将在 2026 年底推出,它允许用户添加或移除黑名单与白名单、添加重写规则、分析 DNS 请求。目前,一个免费使用的 DNS over HTTPS 端点可通过自定义黑名单在此处设置:[rethinkdns.com/configure](https://rethinkdns.com/configure)。
该解析器由 [FLOSS/fund](https://floss.fund/) 赞助,部署在 [Fly.io](https://fly.io/) 上的 `max.rethinkdns.com`,以及 [Deno Deploy](https://deno.com/deploy) 上的 `rdns.deno.dev`,除此之外还有默认部署在 [Cloudflare Workers](https://workers.dev) 上。该解析器是开源软件:[serverless-dns](https://github.com/serverless-dns/serverless-dns)。
### Rethink 代理网络
RPN 是一个多方中继,连接通过托管在 Cloudflare Workers 上的无服务器代理跳转,最终由 Windscribe 出口。启动时,用户可以自行托管第一个跳点或使用我们提供的节点。该服务于 2025 年 12 月上线,定价为每月 3 美元即可获得无限带宽。
该代理是开源软件:[serverless-proxy](https://github.com/serverless-proxy/serverless-proxy)。
### 翻译
请在 [Weblate](https://weblate.org/) 上帮助 [翻译 Rethink DNS + Firewall + VPN](https://hosted.weblate.org/engage/rethink-dns-firewall):[](https://hosted.weblate.org/engage/rethink-dns-firewall) ### Rethink DNS + Firewall + VPN 不是 Rethink 不是匿名工具:它帮助用户应对无节制的审查与监控,但并不声称始终保护用户身份。 Rethink 并非旨在成为一个功能丰富的传统防火墙:它更接近 [Little Snitch](https://www.obdev.at/products/littlesnitch/index.html),而非 IP 表。 Rethink 不是防病毒软件:Rethink 可通过其基于 DNS 的黑名单阻止钓鱼攻击、恶意软件和恐吓网站,但不会主动缓解威胁或主动探测与响应。 ### Rethink DNS + Firewall + VPN 的目标 将 Android 设备转变为用户代理:用户可以按自己的意愿控制设备,而无需 root 权限。对于始终在线、始终连接的设备,关键在于捕获网络流量并以有意义的方式报告,让用户能够采取行动限制暴露,而不必完全消除它。以 DNS 为例——对于绝大多数(如果不是全部)连接,应用都会先发出 DNS 请求,通过跟踪这些请求即可获取大量关于 Android 上正在发生的事情以及责任应用的情报。 为所有人提供开放互联网的承诺:随着不可避免的 ECH(加密客户端问候)标准化以及 DNS-over-HTTPS 和 DNS-over-TLS 在操作系统与浏览器中的广泛采用,我们正逐步接近开放互联网。当然,*深度包检测* 仍是无法仅靠加密 DNS 缓解的可信威胁,但这也是一个通过最小(无需使用 VPN 或 IPFS 访问)实现最大影响的例子(例如绕过大多数国家的互联网审查)。Rethink 将继续以尽可能简单的方式让这些技术触手可及,尤其是那些以 10% 的努力实现 90% 效果的技术。 ## 开发 [](https://github.com/celzero/rethink-app/releases) [](https://github.com/celzero/rethink-app/actions/workflows/android.yml) [](https://www.apache.org/licenses/LICENSE-2.0) [](https://securityscorecards.dev/viewer/?uri=github.com/celzero/rethink-app) [](https://deepwiki.com/celzero/rethink-app) 1. 欢迎 fork 并提交可复现的 bug 修复的 pull request。 2. 代码库较为原始且缺乏文档与全面测试。如需帮助,请自由创建维基页面以突出构建、测试、编写和提交代码时的痛点。[DeepWiki](https://deepwiki.com/celzero/rethink-app) 和 [Copilot](https://github.com/copilot?prompt=https://github.com/celzero/rethink-app) 也可能有所帮助,但它们会生成幻觉内容。 3. 撰写描述性的提交信息,简洁说明所做的更改。 4. 每个提交必须引用项目中的一个开放问题,以确保没有重复工作并可参考之前的讨论。 5. 如果计划开发某项功能,请在开始工作前先在 [项目问题](https://github.com/celzero/rethink-app/issues/new) 中创建 GitHub issue 以启动讨论。 6. 正式版本通常每几个月发布一次,而 [alpha 版本每月发布一次](https://github.com/celzero/rethink-app/actions/workflows/nightly.yml)。 ## 原则(除非你有更好的方案) 我们尚未达到目标,也许永远也不会,但以下原则适用于项目可预见的未来。 - 正确、安全、弹性、快速,按此顺序。 - 易用、无 root、无 gimmick 特性,专注于反审查与反监控。 - 易用:所有 30 亿以上 Android 用户都应能使用。达到 CleanMaster / Instagram 级别的易用性。 - 无 root:任何功能都不应需要 root 权限。 - 无 gimmick:避免误导性内容,接近恐吓软件的行为。 - 反审查:特性聚焦于帮助每个人实现开放互联网,优先以尽可能高效的方式(经济与技术层面)。 - 反监控:如上所述,但特性进一步限制(未必完全消除)应用的监控行为。 - 增量变更与更新功能保持平衡。 - 例如,修复恼火的 UI 问题或 OEM 特定错误应与开发新功能同等重要,且发布需在这两者间取得良好平衡。但仅做增量变更也是可接受的。 - 有主见:消除复杂性。不要假设用户拥有计算机科学博士学位才能使用应用。 - 无重复功能。 - 避免提供过多可调参数和设置。优先简单而非简单化。 - 忽略所有原则。 - 常识永远优先于原则。 - 必须可在 PlayStore 上分发,至少提供一个精简版本。 - 这意味着设备本地黑名单不可行;不过类似 [Cloudflare Gateway](https://www.cloudflare.com/teams-gateway/) 的基于云、按用户的分黑名单可提供相同功能。 - 言行一致:注重隐私与安全。 ## 背景 [
标签:Android, Android 应用, DNSCrypt, DNS over HTTPS, DNS over TLS, DSL, F-Droid, MacOS取证, VPN, WireGuard, 二进制发布, 分流, 去中心化DNS, 反向代理, 多解析, 安全合规, 安全路由, 应用级防火墙, 开源工具, 日志审计, 流量控制, 流量监控, 程序员工具, 网络代理, 网络安全, 网络安全, 网络工具, 网络穿透, 网络防护, 连接跟踪, 防火墙, 隐私保护, 隐私保护