GitHub 推荐:11 年 52K stars:中文圈最大翻墙库靠文档而非代码拿下 8.5K fork
一句话总结
中文圈最长寿的翻墙资源聚合仓:把 90 篇分平台教程 + 多协议一键包 + 自研 Android VPN 客户端三合一做成「分发式产品」,11.7 年单兵维护至今仍稳收 5 万 star。
值得关注的理由
- 分发型产品的极致样本:当所有人都把 GitHub 仓当代码仓库维护时,这个仓被当作文档分发渠道运营——主仓 LICENSE 故意留空、Android 应用反而是标准 GPLv3,这套精细法律分界背后是 13 年的实战经验。
- 三层漏斗产品体系的可复用模板:教程 → 一键包 → 自建教程三段漏斗,把「翻墙」从「算法问题」降维成「可用性工程问题」,对任何抗审查/抗封禁/抗标准漂移的工具型项目都是可借鉴的产品范式。
- 单兵长尾运营的活化石:1,416 次 commit 中 bannedbook 一人占 80.6%,2020 年 2 月一个月 225 commits 的爆发期后转入末梢维护,6 年没出新 tag 但仍持续吸纳新 star——这种「职业项目」+「个人副业」的双重属性值得拆解。
项目画像
| 维度 | 数据 |
|---|---|
| GitHub | https://github.com/bannedbook/fanqiang |
| Star / Fork | 52,128 / 8,468(fork/star 比 16.2%,远超普通代码项目) |
| Watcher / Open Issues | 1,254 / 335 |
| 代码行数 | 147,681(Kotlin 44%、XML 27%、JSON 14%、Markdown 8%) |
| 项目年龄 | 140 个月(2015-01-14 至今) |
| 总 commits | 1,416,月均 1.0 次但 2020-02 单月 225 次 |
| 开发阶段 | 低维护(最近 30/90/365 天仅 8/10/40 commit) |
| 贡献模式 | 单兵主导(主作者 80.6% + 协作账号 18.9%) |
| 热度定位 | 大众热门 + 中文圈长尾 |
| 质量评级 | 教程文档优秀,fqnews2 Android 工程化良好,fqnews 旧版技术债明显 |
作者视角:为什么存在这个项目
创始人/作者背景
账号 bannedbook(显示名「如何翻墙」)2013-05-07 注册,13.3 年账号年龄,213 个公开仓库,3,889 粉丝 / 仅 following 2 人——典型的「广播型」匿名技术布道者。公司、位置、博客全部为 null——这是政治敏感领域长期运营者自我保护的标配。
作者 213 个公开仓库里,绝大多数是各类翻墙相关 fork(clashmi、V2bX、Orange、V2bX-script 等),以及一个独立的 v2ray.vpn(569 stars)作为自部署 APK 分发。这说明作者的核心身份不是「Android 开发者」,而是「翻墙资源分发网络维护者」。
问题判断
GFW 的封锁是动态对抗的:单协议客户端在某个时间点会被批量封禁,单客户端的「算法先进性」完全无法抵御「协议层识别」。作者看到了三个核心问题:
- 客户端门槛太高:配置文件、订阅链接、TLS 证书、BBR 加速、CDN 套壳——普通用户根本搞不定
- 国行手机系统会杀后台 VPN 进程:华为/Vivo 的后台管理让「能装不能用」
- 教程散落:V2EX、Telegram、机场官网,没有跨平台汇总
解法哲学
「工具集冗余 > 自研协议」——不发明新协议,把开源界的 goflyway/daze/brook/lightsocks/trojan/v2ray/hysteria/naiveproxy/sing-box/Quick/clash 全部「收编」到一键包,让用户挨个尝试。README 原话:「N 种翻墙方式,哪个好用用哪个」——把翻墙问题从「算法问题」降维成「可用性工程问题」。
「分发即抗审查」——GFW 可以封 IP/封协议/封 GitHub,但封不掉「教你换下一个工具的教程」和「预打包 10 套方案的 7z 文件」。作者的真正产品是文档和分发渠道,不是代码——这一点从 Phase 1 的「80% 热门 issue 是求助类」反向印证:用户来这个仓库不是看代码,是要「现在还能用的工具」。
战略意图
「分裂式法律规避」——主仓 LICENSE=null(中文教程不能挂 GPL,怕被定性「提供翻墙工具」),但 fqnews2/LICENSE 是标准 GPLv3、fqnews 同时挂了 LICENSE + LICENSE_GPLv3(兼容双协议)。Android 应用因为是装到用户手机的「程序」,定性上是「工具」而非「教程」,所以大胆开源;教程和配置 JSON 因为容易被认定为「教唆/协助」,刻意无 LICENSE——这是被 GFW 反复打压后学到的精细法律分界。
商业化路径隐含但清晰:README 唯一一张图片是 v2free 机场广告图,所有教程和自建脚本结尾都贴出「懒得折腾就用我们一键包」的回链;fqnews APK 通过 flavorDimensions += "site" 做 fqnews/hwnews/aunews 三套包名三套 AdMob ID,实现同代码多渠道分发。
核心价值提炼
创新之处
按新颖度×实用性排序:
- 三层漏斗产品体系(新颖度 5/5、实用性 5/5、可迁移性 4/5)——教程引导 L2 用户 → 一键包兜底 L0/L1 → 自建教程给 L3 出口,把「留存最大化」作为产品目标而非「功能完整度」,是分发型产品的范式创新
- 多协议冗余一键包(3/5、5/5、4/5)——10 个协议客户端集成到一个 7z 包,按 0、1、2 数字前缀顺序排列让用户挨个试,是「抗单点失效」的工程标准实践
- productFlavors 按 site 切广告 ID(3/5、4/5、5/5)——
flavorDimensions += "site"+ fqnews/hwnews/aunews 三个 flavor,三个包名三个 AdMob ID,天然支持多渠道合规和商业化隔离 - fqnews2 双内核拼接(4/5、4/5、3/5)——fork NekoBoxForAndroid 的 nb4a 做 VPN 核心 + fork Feeder 做 RSS 核心,UI 层做产品壳,MVP 速度极快
- PAC 文件高频迭代(3/5、4/5、4/5)——
ios/ios.pac55 次修改跟踪 GFW 域名封锁变化,把「代理规则」当运维对象而非静态配置 - 远程 update.json 探针(4/5、3/5、5/5)——fqnews
update.json仅 4 字段(version/title/text/uri),跳 Google Play 实现轻量级版本控制
可复用的模式与技巧
- 教程 → 工具 → 自建出口的三段漏斗:适用于任何抗审查/抗封禁/抗标准漂移的工具型项目
- 多协议冗余打包:适用于客户端多样性是关键差异化点的工具(如 VPN、CDN、存储)
- productFlavors 按 site 切 ID:适用于任何需要多渠道分发的 Android 应用
- 分裂式 LICENSE:敏感领域内容 + 工具分发的精细法律分界(仅适用于敏感项目)
- 远程探针替代应用商店:轻量级版本控制和公告分发
关键设计决策
-
三层漏斗产品体系
- 问题:单一形态(仅教程/仅客户端/仅一键包)漏斗跳出率高
- 方案:教程引导 L2 → 一键包兜底 L0/L1 → 自建教程给 L3 出口
- Trade-off:维护成本极高(三种形态都要持续更新),但用户留存和网络效应远超单一形态
- 可迁移性:高
-
多协议冗余一键包
- 问题:单协议被识别即全军覆没
- 方案:把 10 个协议客户端集成到一个 7z 包,用户按顺序试
- Trade-off:体积大、用户体验重,但抗封禁韧性极高
- 可迁移性:中
-
productFlavors 按 site 切广告 ID
- 问题:同代码多渠道分发的合规和商业化隔离
- 方案:
flavorDimensions += "site"+ 三个 flavor 三个包名三个 AdMob ID - Trade-off:构建复杂度上升,但天然支持跨渠道精细化运营
- 可迁移性:高
竞品格局与定位
竞品对比矩阵
| 维度 | 本项目 (fanqiang) | freefq.com 等外部站 | v2rayNG / Clash / sing-box | fqnews 同类客户端 (NekoBox/Igniter) |
|---|---|---|---|---|
| 形态 | 教程+一键包+APK 三合一 | 纯教程/节点分发 | 单一客户端 | 单一客户端 |
| 跨平台覆盖 | 8 大平台(Win/Mac/Linux/iOS/Android/Router/PS/Switch/AppleTV) | 通常只覆盖 1-3 个 | 通常只覆盖 1 个 | 通常只覆盖 Android |
| 更新韧性 | 11.7 年单兵长尾 | 多数 dead | 协议核心由团队持续维护 | 个人/小团队维护 |
| 法律风险 | 分裂式 LICENSE 规避 | 灰色 | 通常有 LICENSE | 通常有 LICENSE |
| 进入门槛 | L0-L3 全梯度 | 通常只覆盖一档 | 客户端门槛高 | 客户端门槛中 |
| 上手成本 | 低(一键包解压即用) | 中(需自选客户端) | 高(需自备节点) | 中(需自备节点) |
差异化护城河
- 11.7 年持续维护——同类聚合站 dead 率高,GitHub fork 仓多数半年不更新
- 跨平台覆盖完整度——单一竞品做不到 8 大平台覆盖
- 教程 + 一键包 + 自研 APK 三合一——分发型护城河,单做教程或单做客户端都不够
- v2free 机场广告位商业化——README 唯一图片就是广告位,是可持续运营资金来源
竞争风险
- GFW 算法升级(如 QUIC 识别、TLS 指纹)会快速让一键包内 10 个协议失效一半
- 新生代工具(sing-box/xray/hysteria2)的协议更新速度可能超过本仓收编速度
- 国行手机系统级 VPN 拦截(如鸿蒙新增 VPN 黑名单)会让 fqnews APK 失效
- 组织者失联——52K stars 的项目无任何治理传承(无 CODEOWNERS、无 CONTRIBUTING、无治理文档)
生态定位
在整个中文互联网跨境访问生态中扮演「分发中心」角色:填补了「客户端协议层 → 普通用户使用层」之间的认知和门槛鸿沟,是中文圈 L0-L3 全梯度翻墙入口的事实标准。
套利机会分析
- 信息差:fork/star 比 16.2% 远超普通项目(典型 5-10%),说明教程被大量 fork 自部署,实际分发深度远超 star 数——这是一个被严重低估的「分发型产品」案例
- 技术借鉴:三层漏斗 + productFlavors 按 site 切广告 ID 这两个模式在合规敏感行业(VPN、加密货币、私域工具、跨境电商辅助工具)有直接迁移价值
- 生态位:填补了「客户端协议层」和「普通用户使用层」之间的认知和门槛鸿沟
- 趋势判断:虽然本仓已进入末梢维护,但「分发型工具产品」这个品类在 GFW 持续升级的背景下只会需求更强——本仓模式被复制(GitHub 上 v2ray-free / fanqiang.tech 等 fork 仓超 100+)就是证明
风险与不足
- 代码工程化分裂:fqnews(旧版 Groovy DSL、jcenter 已废弃、Kotlin 1.3.72、AGP 4.0)与 fqnews2(新版 Kotlin DSL + KSP + ktlint)双仓并行,旧版技术债明显
- CHANGELOG 是上游 Feeder 翻译记录:fqnews2/CHANGELOG.md 是 「Updated Russian translation using Weblate」 这种上游翻译 changelog,本地迭代无独立 changelog
docs/*.py加密乱码占位:8 个 Python 脚本全是单行长字符串(704~10264 字节),内容是 Base64/混淆数据,无可读性贡献,应清理- 一键包分发链可信度依赖第三方:二进制通过外部域名(d1a.mygrok.top / d1.mygrok.top / d2.mygrok.top)分发,非自托管,分发链中断即全盘失效
- 治理真空:无 CODEOWNERS / CONTRIBUTING / GOVERNANCE,组织者失联即瓦解
行动建议
- 如果你要用它:作为普通用户——直接用 ChromeGo 一键包或 fqnews APK;作为开发者——参考教程自建 VPS(V2Ray + TLS + CDN 全套)
- 如果你要学它:重点关注
v2ss/自建教程目录(教程 + server-cfg + images/backup 脚本的「教程 + 可运行基础设施」合体形态)和fqnews2/(Kotlin DSL + KSP + ktlint + fastlane 的现代化 Android 工程化范例) - 如果你要 fork 它:可以改进的方向——(1) 自动化教程校验(脚本验证 md 中的链接/截图是否失效);(2) CI 化的 PAC 文件更新(监控 GFW 域名变化自动提交);(3) 拆分主仓 LICENSE(教程用 CC BY-NC-SA,APK 用 GPLv3,明晰法律分界)
知识入口
| 资源 | 链接 |
|---|---|
| DeepWiki | https://deepwiki.com/bannedbook/fanqiang |
| Zread.ai | 未收录(403 不可达) |
| 关联论文 | 无 |
| 在线 Demo | 无(VPN 类工具无在线 demo) |