📖 关于项目

🎯 项目简介

Proxy-v2 Autonomous Server 是一个自主运行的代理池服务端,将传统的"按需获取"模式升级为"自主维护+按需调用"的服务端架构。

系统启动后持续在后台维护代理池,通过定时任务自动执行获取、验证、质量检测和清理,并通过RESTful API返回已验证的最优代理。支持HTTP/SOCKS代理和VMess/Trojan等节点代理,提供完整的Web管理界面。

🚀 快速链接

📖 API文档 🔧 Swagger文档 ⚙️ 管理后台 💻 GitHub仓库

✅ 功能完整性检查

🎯 三大需求验证

需求 状态 实现方式 测试通过率 说明
复制到其他项目直接调用 ✅ 完全实现 嵌入式模块 (client.py) 100% (23/23) 无需服务器,直接函数调用
部署到服务器/Docker作为服务端 ✅ 完全实现 独立服务端 + Docker 100% (235/235) RESTful API,多语言支持
同环境托管 - 本地代理设置 ✅ 完全实现 本地代理服务器 95.2% (554/582) 零代码集成,HTTP/SOCKS5

核心功能清单

✅ 代理源管理

25+ 免费源 | FOFA API | Hunter API | GitHub订阅

✅ 协议支持

HTTP/HTTPS | SOCKS4/5 | VMess | Trojan | Shadowsocks

✅ 智能调度

质量评分 | 国家筛选 | 协议筛选 | 使用统计

✅ 质量检测

住宅IP识别 | ChatGPT检测 | Google检测 | 地理位置

✅ 自动维护

定时获取 | 自动验证 | 质量检测 | 失效清理

✅ 多级缓存

内存缓存 | Redis缓存 | <100ms响应

✅ Web界面

实时监控 | 数据可视化 | 代理管理 | 任务控制

✅ 错误恢复

自动重试 | 降级处理 | 健康检查 | 日志记录

🚢 部署能力

✅ Docker部署

Dockerfile | docker-compose | 一键部署脚本

✅ 系统服务

systemd配置 | 自动启动 | 日志管理

✅ 反向代理

Nginx配置 | SSL支持 | 负载均衡

✅ 跨平台

Windows | Linux | macOS | Docker

🔌 集成能力

✅ Python模块

直接导入 | 函数调用 | 类型提示 | 100%测试

✅ RESTful API

25+ 端点 | OpenAPI文档 | 多语言支持

✅ 本地代理

HTTP/SOCKS5 | 零代码集成 | 多种轮换策略

✅ 多语言

Python | Go | JavaScript | Java | PHP

技术架构

技术栈

Python 3.11+ FastAPI SQLite Redis APScheduler aiohttp Chart.js Docker Nginx

系统架构

┌─────────────────────────────────────────────────────────────────┐
│                        Proxy Pool Server                        │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌──────────────┐    ┌──────────────┐    ┌──────────────┐    │
│  │   FastAPI    │───▶│    Cache     │───▶│   Database   │    │
│  │   (API层)    │    │  (缓存层)    │    │  (数据层)    │    │
│  └──────────────┘    └──────────────┘    └──────────────┘    │
│         │                    │                    │            │
│         │                    │                    │            │
│  ┌──────▼────────────────────▼────────────────────▼──────┐    │
│  │              Task Scheduler (任务调度器)              │    │
│  ├───────────────────────────────────────────────────────┤    │
│  │  • 代理获取任务 (每6小时)                            │    │
│  │  • 代理验证任务 (每4小时)                            │    │
│  │  • 质量检测任务 (每8小时)                            │    │
│  │  • 清理任务 (每天凌晨2点)                            │    │
│  │  • 节点收集任务 (每2小时)                            │    │
│  └───────────────────────────────────────────────────────┘    │
│         │                    │                    │            │
│  ┌──────▼──────┐    ┌────────▼────────┐    ┌─────▼──────┐    │
│  │ Validation  │    │  Quality Check  │    │  Selector  │    │
│  │   Engine    │    │     Engine      │    │   Engine   │    │
│  └─────────────┘    └─────────────────┘    └────────────┘    │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘
                              │
                    ┌─────────┴─────────┐
                    │                   │
            ┌───────▼────────┐  ┌──────▼───────┐
            │  Data Sources  │  │   Clients    │
            ├────────────────┤  ├──────────────┤
            │ • 25+ 免费源   │  │ • Python     │
            │ • FOFA API     │  │ • Go         │
            │ • Hunter API   │  │ • JavaScript │
            │ • GitHub订阅   │  │ • cURL       │
            └────────────────┘  └──────────────┘
      

核心组件

性能指标

<100ms
API响应时间
(缓存命中)
<500ms
API响应时间
(数据库查询)
≥100
并发能力
(req/s)
10,000+
HTTP/SOCKS
代理容量
50,000+
节点代理
容量
50
最大并发
验证线程

🎯 三种使用模式 - 满足所有场景需求

本系统提供三种灵活的使用模式,所有模式均无需二开,满足不同场景需求:

📊 模式对比一览表

模式 部署方式 使用方式 是否需要二开 测试通过率 适用场景
嵌入式模块 复制到项目 Python函数调用 ❌ 不需要 100% (23/23) 单个Python项目
独立服务端 Docker/服务器 HTTP API调用 ❌ 不需要 100% (235/235) 多项目共享/远程访问
本地代理托管 本地运行 修改代理配置 ❌ 不需要 95.2% (554/582) 零代码集成/现有项目

详细说明

🔌 模式1: 嵌入式模块 - 复制到项目直接调用

核心理念: 将代理池作为Python模块嵌入到你的项目中,无需启动服务器,直接函数调用。

# 1. 复制 server/ 目录到你的项目
cp -r server/ your-project/

# 2. 在代码中导入使用 (无需启动服务器!)
from server.client import get_proxy

# 获取代理 - 一行代码搞定
proxy = await get_proxy(protocol="http", country="US")
print(f"代理: {proxy.url}, 评分: {proxy.score}")

# 批量获取
proxies = await get_proxies(count=10, min_score=80)

优势: 零配置 | 直接调用 | 100%测试通过 | 完整类型提示

适用: 单个Python项目,需要快速集成

🚀 模式2: 独立服务端 - Docker部署,API调用 (当前模式)

核心理念: 作为独立的HTTP服务运行,通过RESTful API提供服务,支持多语言调用。

# Docker一键部署
docker-compose up -d

# Python调用
import requests
response = requests.post(
    "http://your-server:8888/api/proxy/acquire",
    json={"protocol": "http", "country": "US"}
)
proxy = response.json()

# Go调用
resp, _ := http.Post("http://your-server:8888/api/proxy/acquire", ...)

# JavaScript调用
const proxy = await fetch('http://your-server:8888/api/proxy/acquire', {
  method: 'POST',
  body: JSON.stringify({protocol: 'http'})
}).then(r => r.json());

优势: 多项目共享 | 多语言支持 | Web界面 | 远程访问 | 100%测试通过

适用: 多个项目共享,或需要远程访问

⚡ 模式3: 本地代理托管 - 零代码集成

核心理念: 在本地运行HTTP/SOCKS5代理服务器,现有项目只需修改代理配置,无需修改代码。

# 启动本地代理服务器
cd local-proxy-server
python -m proxy_server

# 方式1: 修改代码中的代理配置
proxies = {'http': 'http://127.0.0.1:9999'}

# 方式2: 设置环境变量 (全局生效,无需修改代码)
export http_proxy=http://127.0.0.1:9999
export https_proxy=http://127.0.0.1:9999

# 所有程序自动使用代理
curl https://api.ipify.org
python your_script.py

优势: 零代码改动 | HTTP/SOCKS5 | 多种轮换策略 | 95.2%测试通过 | 100+并发

适用: 现有项目快速接入,不想修改代码

🎯 如何选择?

你的需求 推荐模式 原因
单个Python项目 嵌入式模块 最简单直接,无需服务器
多个项目共享 独立服务端 统一管理,资源共享
现有项目快速接入 本地代理托管 零代码改动,立即可用
需要远程访问 独立服务端 支持网络调用
非Python项目 独立服务端本地代理托管 支持所有语言
需要账号管理 本地代理托管 粘性会话功能

部署方式

Docker部署 (推荐)

# 一键部署
./deploy.sh

# 或手动部署
docker-compose up -d

# 查看日志
docker-compose logs -f

系统服务部署

# 安装依赖
pip install -r requirements.txt

# 创建systemd服务
sudo cp proxy-pool.service /etc/systemd/system/
sudo systemctl enable proxy-pool
sudo systemctl start proxy-pool

Nginx反向代理

# 配置Nginx
sudo cp nginx.conf /etc/nginx/sites-available/proxy-pool
sudo ln -s /etc/nginx/sites-available/proxy-pool /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

详细部署指南请参考 DEPLOYMENT.md

后台任务

系统自动执行以下后台任务,无需手动干预:

任务名称 执行频率 功能说明 手动触发
代理获取 每6小时 从所有启用的源获取代理,自动去重并保存到数据库 POST /api/proxy/refresh
代理验证 每4小时 验证代理可用性,记录响应时间和成功率 POST /api/tasks/trigger/validate_proxies
质量检测 每8小时 检测住宅IP、ChatGPT/Google可用性、IP地理位置 POST /api/proxy/quality-check
清理任务 每天凌晨2点 清理失效代理、高风险代理和旧日志 POST /api/tasks/trigger/cleanup
节点收集 每2小时 从GitHub订阅源收集免费节点 POST /api/aggregator/collect

数据源

HTTP/SOCKS代理源

节点代理源

速率限制保护

质量保证

验证机制

质量检测

智能评分

综合考虑多个因素计算代理评分(0-100):

测试覆盖

项目包含完整的测试套件,确保代码质量和功能正确性:

235
测试用例
100%
测试通过率
15+
测试文件

测试类型

运行测试

# 运行所有测试
pytest

# 运行特定测试
pytest tests/test_integration.py

# 生成覆盖率报告
pytest --cov=. --cov-report=html

文档资源

📖 使用指南

🚢 部署指南

🔧 开发与维护

开发历程

项目采用Spec驱动开发方法论,经过10个阶段的系统化开发:

阶段 周期 主要内容
Phase 1 Week 1 核心基础设施 - Database层、数据模型、基础API服务器
Phase 2 Week 2 核心服务 - 验证引擎、质量检测器、智能选择器
Phase 3 Week 3 后台任务 - 任务调度器、获取/验证/质检/清理任务
Phase 4 Week 4 缓存和性能 - 多级缓存、速率限制器、性能优化
Phase 5 Week 5 API端点 - 代理获取、节点获取、管理接口
Phase 6 Week 6 Web界面 - 仪表盘、管理后台、API文档页面
Phase 7 Week 7 错误处理和日志 - 错误处理器、日志系统、健康检查
Phase 8 Week 8 Docker部署 - Dockerfile、docker-compose、部署脚本
Phase 9 Week 9 测试和文档 - 集成测试、性能测试、完整文档
Phase 10 Week 10 发布和监控 - 生产部署、监控脚本、双模式支持

许可证

本项目采用 MIT License 开源许可证。

联系方式

如有问题或建议,请通过以下方式联系:

致谢

感谢以下开源项目和服务: