- deploy/: Xray VLESS+REALITY (11443, 经宿主 nginx SNI 分流) + sing-box Hysteria2 (UDP 443) docker-compose - 幂等 deploy.sh / gen-secrets.sh / print-clients.sh;受限 nginx-apply 特权脚本 + 一次性 root-setup - .gitea/workflows/deploy.yml: NAS runner 经 SSH 远程部署到 EC2 - docs/ plan/: 设计方案与实施计划 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
# Pangolin 实施计划(Plan)
|
||||
|
||||
> 配套设计文档:[`../docs/技术方案.md`](../docs/技术方案.md)
|
||||
> 更新日期:2026-05-30 · 总原则:**先验证付费意愿,再投客户端自研**
|
||||
|
||||
## 阶段总览
|
||||
|
||||
| 阶段 | 目标 | 周期 | 文档 |
|
||||
|------|------|------|------|
|
||||
| **0** | 单节点 REALITY 跑通,验证线路质量 | 1–2 周 | [phase-0-线路验证.md](phase-0-线路验证.md) |
|
||||
| **1** | 面板 + 订阅 + 限速 + 卡密收款,验证付费意愿 | 2–4 周 | [phase-1-后端面板与商业闭环.md](phase-1-后端面板与商业闭环.md) |
|
||||
| **2** | 改品牌客户端 + 登录/信号灯/免费额度 | 2–4 周 | [phase-2-客户端MVP.md](phase-2-客户端MVP.md) |
|
||||
| **3** | Flutter 自研 UI + 自研后端 + 广告 + 宣传站 | 持续 | [phase-3-自研与规模化.md](phase-3-自研与规模化.md) |
|
||||
|
||||
## 贯穿全程的横切事项
|
||||
|
||||
| 主题 | 文档 |
|
||||
|------|------|
|
||||
| 运营者安全 / 合规隔离(最高优先级) | [security-运营安全.md](security-运营安全.md) |
|
||||
| 宣传页与获客 | [marketing-宣传与获客.md](marketing-宣传与获客.md) |
|
||||
|
||||
## 阶段门禁(Gate)
|
||||
|
||||
- **0 → 1**:线路稳定 ≥ 3 天,晚高峰 YouTube 1080p 流畅,REALITY 未被探测封锁。
|
||||
- **1 → 2**:有 ≥ N 个真实付费用户(自定阈值),订阅/限速/收款闭环可用。
|
||||
- **2 → 3**:改品牌客户端日活留存达标,客诉集中在体验而非"连不上"。
|
||||
@@ -0,0 +1,42 @@
|
||||
# 横切 —— 宣传页与获客(需求 7 + 定向人群)
|
||||
|
||||
---
|
||||
|
||||
## A. 宣传页(境外部署 + 国内直连 + 安全)
|
||||
|
||||
矛盾:境外站国内常被墙。务实方案 —— 不把命脉绑死单域名。
|
||||
|
||||
- [ ] 静态站:Astro / Next.js(SSG)纯静态
|
||||
- [ ] 部署 **Cloudflare Pages**(免费、全球 CDN、自带 DDoS 防护)
|
||||
- [ ] 国内直连对策:
|
||||
- [ ] 多备用域名 + 自有 IP 直连镜像,主站被污染时引导切换
|
||||
- [ ] 下载 / 取订阅入口可镜像分发:**GitHub Releases、Telegram 频道、网盘**
|
||||
- [ ] 安全:全站 HTTPS、**无第三方追踪脚本**、不收集访客信息
|
||||
- [ ] 定位:宣传页是"信任背书 + 下载入口",不是唯一流量来源
|
||||
|
||||
## B. 获客渠道(抗封靠去中心化)
|
||||
|
||||
- [ ] Telegram 群 / 频道(核心阵地)
|
||||
- [ ] Twitter / X
|
||||
- [ ] 酷安、V2EX、小众论坛
|
||||
- [ ] YouTube 评测合作 / KOL
|
||||
- [ ] **邀请码返利裂变**(老带新)
|
||||
- [ ] SEO 关键词:稳定梯子、ChatGPT 怎么用、科学上网 推荐
|
||||
|
||||
## C. 目标人群
|
||||
|
||||
| 人群 | 痛点 / 卖点 |
|
||||
|------|------------|
|
||||
| 留学 / 外贸 / 跨境电商 | 稳定、回国线路、商务可用 |
|
||||
| 程序员 / 科研 | 查资料、GitHub、稳定不掉线 |
|
||||
| 追剧 / 游戏 / ChatGPT 用户 | 流媒体解锁、低延迟、AI 工具可用 |
|
||||
| 数字游民 | 多地节点、跨设备 |
|
||||
|
||||
## D. 差异化卖点(对比 v2rayN 这类极客工具)
|
||||
|
||||
- **小白友好**:一键连接、自动选线、傻瓜 UI(需求 5)
|
||||
- 多端统一 + 三方软件兼容(给极客留后路)
|
||||
- 免费可用(看广告提额)+ 付费精品线路的清晰分层
|
||||
|
||||
## E. 转化漏斗
|
||||
免费体验 → 晚高峰限速感知 → 推付费精品线路(不限速 / 多节点 / 精品 IP)
|
||||
@@ -0,0 +1,45 @@
|
||||
# 阶段 0 —— 单节点线路验证(1–2 周)
|
||||
|
||||
**目标**:用 1 台 VPS 跑通 sing-box + REALITY,确认线路质量,再谈一切。
|
||||
**门禁(进入阶段1)**:线路稳定 ≥ 3 天;晚高峰 YouTube 1080p 流畅;REALITY 未被主动探测封锁。
|
||||
|
||||
---
|
||||
|
||||
## 任务清单
|
||||
|
||||
### T0.1 选购 VPS
|
||||
- [ ] 选 1–2 个**冷门小厂** VPS(避开被重点封锁的大厂大段 IP)
|
||||
- [ ] 地区候选:日本 / 香港 / 新加坡 / 美西(就近优先,先测延迟)
|
||||
- [ ] 支持**加密货币付款**、可隐私注册
|
||||
- [ ] 配置:1C2G 起步,带宽优先于 CPU
|
||||
|
||||
### T0.2 服务端部署 sing-box + REALITY
|
||||
- [ ] 安装 sing-box,配置 VLESS + Vision + REALITY
|
||||
- [ ] `dest` 偷用真实大站(如 `www.microsoft.com:443` / `www.apple.com:443`)
|
||||
- [ ] 生成 Reality 密钥对、short_id、UUID
|
||||
- [ ] 开放对应端口,关闭无关端口,禁用 root 密码登录(仅密钥)
|
||||
- [ ] 备线:加一条 Hysteria2(UDP)用于晚高峰对比
|
||||
|
||||
### T0.3 客户端连通(先用三方软件)
|
||||
- [ ] 桌面:v2rayN / Clash Verge 导入
|
||||
- [ ] iOS:Shadowrocket / sing-box;Android:NekoBox / sing-box
|
||||
- [ ] 确认 IP 落地正确、无 DNS 泄露(dnsleaktest)、无 WebRTC 泄露
|
||||
|
||||
### T0.4 线路质量验证(用 vpn-test skill)
|
||||
- [ ] 出海:Cloudflare / Google / YouTube 延迟与下载速度
|
||||
- [ ] 回流:B站 / 爱奇艺 / 优酷 / 百度 延迟(确认回国不绕路)
|
||||
- [ ] **晚高峰(20:00–23:00)** 重点复测,对比 REALITY vs Hysteria2
|
||||
- [ ] 连续观察 3 天,记录是否出现 IP 被封 / 主动探测迹象
|
||||
|
||||
---
|
||||
|
||||
## 交付物
|
||||
- 可复用的 sing-box 服务端配置模板(REALITY + Hysteria2)
|
||||
- 一键部署脚本(幂等、参数化)
|
||||
- 线路质量测试报告(vpn-test 表格 + 3 天观察记录)
|
||||
|
||||
## 验收标准
|
||||
- [ ] 任意终端 5 分钟内导入即用
|
||||
- [ ] 晚高峰 YouTube 1080p 不卡
|
||||
- [ ] 3 天内 IP 未被封、未见探测封锁
|
||||
- [ ] 无 DNS / WebRTC / IP 泄露
|
||||
@@ -0,0 +1,56 @@
|
||||
# 阶段 1 —— 后端面板与商业闭环(2–4 周)
|
||||
|
||||
**目标**:上成熟面板,跑通「注册 → 订阅 → 限速 → 收款」闭环,靠分享订阅 + 三方软件**验证有没有人付费**。
|
||||
**门禁(进入阶段2)**:有 ≥ N 个真实付费用户(自定阈值);订阅/限速/收款全链路可用。
|
||||
|
||||
> 选型已定:**先用成熟面板(XBoard + Marzban),后迁自研 Go**。
|
||||
|
||||
---
|
||||
|
||||
## 任务清单
|
||||
|
||||
### T1.1 控制面部署(境外服务器)
|
||||
- [ ] 部署 **XBoard**(商业前台:套餐 / 下单 / 支付 / 工单 / 邀请返利)
|
||||
- [ ] 部署 **Marzban / Marzneshin**(节点管理:用户 / 订阅 / 流量统计 / 到期)
|
||||
- [ ] PostgreSQL + Redis 就位
|
||||
- [ ] 控制面后台**不暴露公网**(仅 VPN 内网 / IP 白名单 / 改端口 + 强口令 + 2FA)
|
||||
- [ ] 订阅域名套 CDN / REALITY,防"取订阅"被封或被关联
|
||||
|
||||
### T1.2 节点接入
|
||||
- [ ] 阶段0 的节点纳入面板管理
|
||||
- [ ] 再加 1–2 个节点,验证多节点订阅下发
|
||||
- [ ] **IP 分级**:消耗品池(免费)/ 精品池(付费)
|
||||
|
||||
### T1.3 套餐与额度(需求 2)
|
||||
- [ ] 免费:每日 1–2 GB 或限速;预留"看广告提额"的 API 钩子(阶段3 接广告)
|
||||
- [ ] 付费:月 / 季 / 年 + 流量包
|
||||
- [ ] 到期与超额自动断流
|
||||
|
||||
### T1.4 限速(需求 3,两层)
|
||||
- [ ] 节点层:sing-box/Xray 出站按用户打标 + Linux `tc`(HTB),免费用户单独限速队列
|
||||
- [ ] 额度层:面板按日/月配额超额断流
|
||||
- [ ] 验证免费 vs 付费速度差异符合预期
|
||||
|
||||
### T1.5 节点状态(需求 4)
|
||||
- [ ] 控制面定时探测节点:延迟 / 丢包 / 在线 / 负载
|
||||
- [ ] 暴露 `status API` 供客户端取用(为阶段2 信号灯铺路)
|
||||
|
||||
### T1.6 收款(需求 + 交易)
|
||||
- [ ] 接 **USDT(TRC20)** 收款
|
||||
- [ ] 接 **自动发卡(卡密)**,支付宝/微信走可轮换的中转通道
|
||||
- [ ] 收款通道与运营主体**隔离**,可随时更换
|
||||
- [ ] **禁用**绑定真实身份的个人支付宝/微信
|
||||
|
||||
---
|
||||
|
||||
## 交付物
|
||||
- XBoard + Marzban 的 `docker-compose` 部署方案与对接步骤
|
||||
- 套餐 / 限速 / 额度配置说明
|
||||
- 收款通道接入说明(USDT + 发卡)
|
||||
- 一份"用三方软件导入订阅"的用户上手指引
|
||||
|
||||
## 验收标准
|
||||
- [ ] 新用户:注册 → 下单付款 → 拿订阅 → 三方软件导入即用,全程顺畅
|
||||
- [ ] 免费/付费限速生效且有明显区分
|
||||
- [ ] 节点状态可查
|
||||
- [ ] 出现首批真实付费用户
|
||||
@@ -0,0 +1,45 @@
|
||||
# 阶段 2 —— 客户端 MVP(2–4 周)
|
||||
|
||||
**目标**:先用 **sing-box 官方 app 改品牌**,接入登录 / 节点信号灯 / 免费额度,快速出自有客户端;**不**一上来就 Flutter 自研,避免卡进度。
|
||||
**门禁(进入阶段3)**:改品牌客户端日活留存达标;客诉集中在体验而非"连不上"。
|
||||
|
||||
> 最终客户端走 **Flutter 自研 UI**(阶段3),本阶段是过渡。
|
||||
|
||||
---
|
||||
|
||||
## 任务清单
|
||||
|
||||
### T2.1 选基底
|
||||
- [ ] 基于 sing-box 官方 app(SFA/SFI/SFM/SFW)或 FlClash 改造(遵守各自许可证)
|
||||
- [ ] 替换 logo / 配色 / 名称
|
||||
|
||||
### T2.2 账号与订阅打通
|
||||
- [ ] 内置注册 / 登录(邮箱或设备 ID + 卡密)
|
||||
- [ ] 登录后自动拉取该用户订阅,免手动粘贴
|
||||
- [ ] 展示剩余额度 / 到期时间(调阶段1 面板 API)
|
||||
|
||||
### T2.3 小白友好核心(需求 5)
|
||||
- [ ] 首屏一个**大连接按钮** + 当前节点 + 信号灯
|
||||
- [ ] 默认「**智能选择**」(URLTest 自动选最优可用节点)
|
||||
- [ ] 默认开 Kill-switch + 防 DNS / WebRTC 泄露
|
||||
|
||||
### T2.4 节点状态展示(需求 4)
|
||||
- [ ] 接阶段1 的 `status API`,节点列表显示**绿/黄/红信号灯 + 延迟 ms**
|
||||
|
||||
### T2.5 多端打包
|
||||
- [ ] Android APK(官网 + GitHub Releases + 海外 Google Play)
|
||||
- [ ] iOS(海外开发者账号上架 / TestFlight / AltStore;**中国区会下架**)
|
||||
- [ ] 桌面 Win/macOS(就基底支持范围)
|
||||
|
||||
---
|
||||
|
||||
## 交付物
|
||||
- 改品牌的多端客户端安装包
|
||||
- 客户端 ↔ 面板 API 对接说明
|
||||
- 用户上手指引(截图版)
|
||||
|
||||
## 验收标准
|
||||
- [ ] 小白用户:下载 → 登录 → 一键连接,无需任何配置
|
||||
- [ ] 自动选线可用,信号灯准确
|
||||
- [ ] 免费额度 / 看广告提额钩子可用(广告阶段3 接)
|
||||
- [ ] 留存与客诉达门禁要求
|
||||
@@ -0,0 +1,57 @@
|
||||
# 阶段 3 —— 自研与规模化(持续)
|
||||
|
||||
**目标**:切到 **Flutter 自研客户端 + 自研 Go 后端**,接广告变现、多节点智能调度、上线宣传站。
|
||||
|
||||
---
|
||||
|
||||
## A. Flutter 自研客户端
|
||||
|
||||
### 任务
|
||||
- [ ] Flutter 工程脚手架(iOS/Android/Win/macOS/Linux)
|
||||
- [ ] **sing-box libbox(gomobile)桥接 PoC**(FFI / Platform Channel)
|
||||
- [ ] 各端 VPN 壳:iOS NetworkExtension / Android VpnService / 桌面 TUN
|
||||
- [ ] 复刻并超越阶段2 的 UI(品牌、动效、引导)
|
||||
- [ ] 平滑迁移:复用阶段1/2 的订阅格式与 API,老用户无感
|
||||
|
||||
### 验收
|
||||
- [ ] UI ~90% 代码跨端复用
|
||||
- [ ] 连接稳定性、性能不低于改品牌版
|
||||
|
||||
---
|
||||
|
||||
## B. 自研 Go 后端(替换面板)
|
||||
|
||||
### 任务
|
||||
- [ ] Go 服务:鉴权(JWT) / 订阅生成 / 订单支付 / 流量计量 / 节点调度
|
||||
- [ ] PostgreSQL + Redis(限速令牌桶 / 节点状态缓存)
|
||||
- [ ] 节点 Agent:流量 / 在线 / 延迟 上报控制面
|
||||
- [ ] 复用面板的 DB schema 与订阅格式,灰度迁移、可回滚
|
||||
|
||||
### 验收
|
||||
- [ ] 与面板功能对等后切流
|
||||
- [ ] 多节点智能调度(按负载/延迟分配)生效
|
||||
|
||||
---
|
||||
|
||||
## C. 广告变现(免费用户)
|
||||
|
||||
### 任务
|
||||
- [ ] 接海外激励视频广告(AdMob / Unity Ads)
|
||||
- [ ] 看广告 → 客户端调 API 临时提额(对接阶段1 预留钩子)
|
||||
- [ ] 风控:防刷量、频次限制
|
||||
|
||||
---
|
||||
|
||||
## D. 宣传站上线
|
||||
|
||||
详见 [marketing-宣传与获客.md](marketing-宣传与获客.md)。
|
||||
- [ ] Astro/Next SSG + Cloudflare Pages
|
||||
- [ ] 多备用域名 + GitHub/TG 分发入口
|
||||
- [ ] 全站 HTTPS、无第三方追踪
|
||||
|
||||
---
|
||||
|
||||
## E. 规模化运维
|
||||
- [ ] 节点 IP 轮换自动化(被封自动下线 + 补新)
|
||||
- [ ] 监控告警(节点存活、被封探测、容量水位)
|
||||
- [ ] 客服 / 工单 / 退款流程
|
||||
@@ -0,0 +1,50 @@
|
||||
# 横切 —— 运营者安全 / 合规隔离(最高优先级)
|
||||
|
||||
> ⚠️ 这是整个项目**风险最高**的部分。技术(代理/抗封锁)是合法成熟的;
|
||||
> 但在中国境内运营收费翻墙服务属违法经营,**风险在运营者而非用户**,近年已有刑事/行政判例。
|
||||
> 下面的隔离措施请当作和技术同等优先。
|
||||
|
||||
---
|
||||
|
||||
## A. 身份隔离(贯穿全程)
|
||||
|
||||
- [ ] 运营主体、服务器、域名、收款账户一律用**境外身份**
|
||||
- [ ] 与国内真实身份**完全隔离**,不交叉、不复用邮箱/手机号/支付方式
|
||||
- [ ] VPS 用加密货币付款;域名开隐私保护(WHOIS privacy)
|
||||
- [ ] 管理操作走专用环境,不在日常个人设备/网络上做
|
||||
|
||||
## B. 基础设施安全
|
||||
|
||||
- [ ] 管理后台**不暴露公网**:仅 VPN 内网 / IP 白名单 / 改端口 + 强口令 + 2FA
|
||||
- [ ] 服务器仅密钥登录,禁 root 密码,最小化开放端口
|
||||
- [ ] **控制面与数据面隔离**:节点不存用户库,被抄一个节点不暴露全量用户
|
||||
|
||||
## C. 用户隐私(防跟踪,需求 6)
|
||||
|
||||
- [ ] 不收集真实身份;注册仅邮箱 / 设备 ID + 卡密
|
||||
- [ ] 节点 **no-log**(不留连接日志)
|
||||
- [ ] DNS 走 DoH/DoQ,防污染与泄露
|
||||
- [ ] 客户端默认 Kill-switch + 防 DNS / WebRTC 泄露
|
||||
|
||||
## D. 抗封锁(数据面,需求 6)
|
||||
|
||||
- [ ] REALITY 为主(无 TLS 指纹),IP 用冷门小厂、定期轮换
|
||||
- [ ] CDN/WS 中转保底(REALITY IP 被封自动切)
|
||||
- [ ] Hysteria2 端口跳跃抗 UDP QoS
|
||||
- [ ] 订阅域名、控制面 API 也套 CDN/REALITY
|
||||
- [ ] IP 被封自动下线 + 补新(阶段3 自动化)
|
||||
|
||||
## E. 收款隔离(需求 + 交易)
|
||||
|
||||
- [ ] 主推 USDT(TRC20)+ 自动发卡
|
||||
- [ ] 收款通道与运营主体隔离,可随时更换
|
||||
- [ ] **禁用**绑定真实身份的个人支付宝/微信收款
|
||||
|
||||
---
|
||||
|
||||
## 红线清单(任何阶段都不得触碰)
|
||||
- ❌ 用国内真实身份注册任何环节
|
||||
- ❌ 管理后台裸奔公网
|
||||
- ❌ 节点留连接日志
|
||||
- ❌ 收款绑定个人实名账户
|
||||
- ❌ 服务器/域名/支付之间产生可被关联的身份线索
|
||||
Reference in New Issue
Block a user