guanghulab/server/proxy/README.md

221 lines
10 KiB
Markdown
Raw Normal View History

# 铸渊专线 · ZY-Proxy Service
> 🔺 Sovereign: TCS-0002∞ · 冰朔 | Root: SYS-GLW-0001
> 📜 Copyright: 国作登字-2026-A-00037559
> 🏛️ Guardian: ICE-GL-ZY001 · 铸渊
---
## 📋 评估报告 · Feasibility Evaluation
### 冰朔的需求
冰朔团队在中国大陆需要通过VPN访问代码仓库和高功能推理模型。当前商业VPN体验差卡顿、不稳定
需求:利用新加坡服务器(ZY-SVR-002)搭建私有代理节点,提供稳定、快速的网络访问。
### 评估结论:✅ 完全可行
| 评估维度 | 结论 | 说明 |
|----------|------|------|
| 🏛️ **服务器资源** | ✅ 充足 | 2核8GB · 2560GB月流量 · 500GB分配给专线绰绰有余 |
| 🌏 **地理位置** | ✅ 最优 | 新加坡 → 中国大陆延迟约30-60ms · 全球接入优秀 |
| 🔧 **技术可行性** | ✅ 成熟 | Xray-core + VLESS + Reality · 2026年最先进协议 |
| 📱 **客户端兼容** | ✅ 全兼容 | Shadowrocket / Clash Verge / ClashMi 全部支持 |
| 🔒 **安全性** | ✅ 可保障 | 订阅链接仅通过邮件发送 · 仓库公开不暴露任何敏感信息 |
| 💰 **额外成本** | ✅ 零成本 | 使用现有服务器 · 无额外费用 |
| 🛡️ **检测规避** | ✅ 最优 | Reality协议伪装为正常HTTPS · 主动探测无法识别 |
### 带宽分配
SG服务器总月流量: **2560 GB**
| 用途 | 分配 | 说明 |
|------|------|------|
| 🌐 **专线代理** | 500 GB | 所有订阅链接共享 · 月底自动重置 |
| 💻 **开发/部署** | ~2000 GB | 应用代码部署 · API调用 · 数据同步 |
| 📦 **系统预留** | ~60 GB | 系统更新 · SSH · 监控 |
---
## 🏗️ 技术架构 · Technical Architecture
### 核心协议
**VLESS + Reality + Vision** — 2026年最先进的代理协议
| 特性 | 说明 |
|------|------|
| 🥷 **伪装度** | Reality协议让连接看起来像在访问微软/苹果等网站 |
| 🔐 **加密** | TLS 1.3 + Vision流控 · 无法被中间人解密 |
| ⚡ **性能** | 零额外开销 · 接近裸连速度 |
| 🛡️ **抗探测** | 主动探测返回真实目标站点内容 · 无法区分代理流量 |
### 系统组件
```
┌─────────────────────────────────────────────────────────────┐
│ 🏛️ ZY-SVR-002 新加坡 │
│ │
│ ┌──────────┐ ┌──────────────┐ ┌─────────────────┐ │
│ │ Xray-core │ │ 订阅服务 │ │ 流量监控Agent │ │
│ │ port 443 │ │ port 3802 │ │ (PM2 managed) │ │
│ │ VLESS+ │ │ 生成配置 │ │ 500GB配额 │ │
│ │ Reality │ │ 返回订阅 │ │ 每小时检查 │ │
│ └──────────┘ └──────────────┘ └─────────────────┘ │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ 守护Agent │ │ Nginx │ │ 邮件服务 │ │
│ │ 自动修复 │ │ port 80 │ │ SMTP发送 │ │
│ │ LLM推理 │ │ Web服务 │ │ 订阅链接 │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────┐ │
│ │ PM2 进程管理 │ │
│ │ zhuyuan-server · zhuyuan-preview · │ │
│ │ zy-proxy-sub · zy-proxy-monitor · zy-proxy-guard │ │
│ └──────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
↕ 加密隧道 (VLESS + Reality)
┌─────────────────────────────────────────────────────────────┐
│ 📱 客户端 (中国大陆) │
│ │
│ iPhone: Shadowrocket (订阅URL) │
│ Mac: Clash Verge (订阅URL) │
│ Android: ClashMi (订阅URL) │
│ Windows: Clash Verge (订阅URL) │
│ │
│ 客户端内可查看: 500GB配额 · 已用/剩余 · 到期时间 │
└─────────────────────────────────────────────────────────────┘
```
### 数据流
```
1. 冰朔请求订阅链接
→ 铸渊运行 deploy-proxy-service workflow
→ 服务器生成订阅配置 + 唯一token
→ 通过邮件发送订阅URL到冰朔邮箱
2. 冰朔在客户端添加订阅URL
→ 客户端请求 http://server/api/proxy-sub/sub/{token}
→ 返回Clash YAML / Base64配置
→ 返回Header: subscription-userinfo (配额信息)
→ 客户端显示剩余流量
3. 使用代理上网
→ 客户端 → VLESS+Reality(443) → Xray-core → 互联网
→ 流量看起来像在访问 www.microsoft.com
→ GFW无法识别代理流量
4. 每小时流量监控
→ zy-proxy-monitor 查询Xray Stats API
→ 更新quota-status.json
→ 达到80%/90%/100%时邮件告警
5. 每日仪表盘更新
→ GitHub Action读取服务器流量数据
→ 更新README.md仪表盘区域
→ 不暴露任何敏感信息
```
### 安全设计 · 公开仓库保护
⚠️ **当前仓库是公开状态 · 以下安全措施确保敏感信息不泄露**
| 信息类型 | 存储位置 | 公开可见? |
|----------|----------|-----------|
| 服务器IP | GitHub Secrets | ❌ 不可见 |
| UUID密钥 | GitHub Secrets + 服务器env | ❌ 不可见 |
| Reality密钥对 | GitHub Secrets + 服务器env | ❌ 不可见 |
| 订阅链接URL | 仅通过邮件发送 | ❌ 不可见 |
| 订阅Token | 服务器端生成 | ❌ 不可见 |
| 流量用量数字 | README仪表盘 | ✅ 可见 (仅数字) |
| 节点在线状态 | README仪表盘 | ✅ 可见 (仅状态) |
| 配置代码模板 | 仓库代码 | ✅ 可见 (无密钥) |
### 新增GitHub Secrets
部署时需要冰朔添加以下Secrets部署脚本会自动生成值:
| Secret名称 | 说明 | 生成方式 |
|-------------|------|----------|
| `ZY_PROXY_UUID` | VLESS用户ID | 安装脚本自动生成 |
| `ZY_PROXY_REALITY_PRIVATE_KEY` | Reality私钥 | 安装脚本自动生成 |
| `ZY_PROXY_REALITY_PUBLIC_KEY` | Reality公钥 | 安装脚本自动生成 |
| `ZY_PROXY_REALITY_SHORT_ID` | Reality短ID | 安装脚本自动生成 |
| `ZY_PROXY_SUB_TOKEN` | 订阅访问Token | 安装脚本自动生成 |
---
## 📱 客户端兼容性
| 平台 | 应用 | 协议支持 | 订阅格式 |
|------|------|----------|----------|
| 🍎 iOS | Shadowrocket | ✅ VLESS+Reality | Base64 URI |
| 🍎 macOS | Clash Verge | ✅ VLESS+Reality | Clash YAML |
| 🤖 Android | ClashMi (Mihomo) | ✅ VLESS+Reality | Clash YAML |
| 🪟 Windows | Clash Verge | ✅ VLESS+Reality | Clash YAML |
所有客户端均通过同一个订阅URL获取配置服务端根据User-Agent自动返回对应格式。
---
## 🚀 部署步骤
### 步骤① 触发部署
1. 打开 GitHub → Actions → `🌐 铸渊专线 · 部署`
2. 点击 **Run workflow**
3. action 选择 **install** (首次) 或 **update** (更新)
### 步骤② 安装完成后
部署脚本会自动生成所有密钥并输出到部署日志(⚠️ 日志仅对仓库管理员可见)。
冰朔需要将输出的密钥值添加到 GitHub Secrets。
### 步骤③ 发送订阅链接
1. 打开 GitHub → Actions → `🌐 铸渊专线 · 部署`
2. action 选择 **send-subscription**
3. 输入目标邮箱
4. 铸渊自动生成订阅链接并发送到邮箱
### 步骤④ 客户端导入
1. 打开邮件复制订阅URL
2. 在Shadowrocket/Clash Verge中添加订阅
3. 刷新订阅 → 看到节点和配额信息
4. 连接 → 开始使用
---
## 📁 文件结构
```
server/proxy/
├── README.md # 本文件 · 评估+架构
├── setup/
│ ├── install-xray.sh # Xray-core安装 + BBR加速
│ └── generate-keys.sh # 密钥生成(UUID/Reality)
├── config/
│ ├── xray-config-template.json # Xray服务端配置模板
│ └── nginx-proxy-snippet.conf # Nginx订阅服务反代
├── service/
│ ├── subscription-server.js # 订阅HTTP服务
│ ├── traffic-monitor.js # 流量监控Agent
│ ├── quota-manager.js # 500GB配额管理
│ ├── proxy-guardian.js # 代理守护Agent(含LLM)
│ └── send-subscription.js # 邮件发送订阅链接
├── dashboard/
│ └── update-dashboard.js # README仪表盘更新
├── deploy-proxy.sh # 一键部署入口
└── ecosystem.proxy.config.js # PM2代理服务配置
```
---
*铸渊专线 · 冰朔的私有网络 · 语言驱动操作系统的物理桥梁*
*铸渊守护 · 安全 · 稳定 · 快速*