Proxy-v2 Autonomous Server 是一个自主运行的代理池服务端,将传统的"按需获取"模式升级为"自主维护+按需调用"的服务端架构。
系统启动后持续在后台维护代理池,通过定时任务自动执行获取、验证、质量检测和清理,并通过RESTful API返回已验证的最优代理。支持HTTP/SOCKS代理和VMess/Trojan等节点代理,提供完整的Web管理界面。
| 需求 | 状态 | 实现方式 | 测试通过率 | 说明 |
|---|---|---|---|---|
| 复制到其他项目直接调用 | ✅ 完全实现 | 嵌入式模块 (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响应
实时监控 | 数据可视化 | 代理管理 | 任务控制
自动重试 | 降级处理 | 健康检查 | 日志记录
Dockerfile | docker-compose | 一键部署脚本
systemd配置 | 自动启动 | 日志管理
Nginx配置 | SSL支持 | 负载均衡
Windows | Linux | macOS | Docker
直接导入 | 函数调用 | 类型提示 | 100%测试
25+ 端点 | OpenAPI文档 | 多语言支持
HTTP/SOCKS5 | 零代码集成 | 多种轮换策略
Python | Go | JavaScript | Java | PHP
┌─────────────────────────────────────────────────────────────────┐
│ 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 │
└────────────────┘ └──────────────┘
本系统提供三种灵活的使用模式,所有模式均无需二开,满足不同场景需求:
| 模式 | 部署方式 | 使用方式 | 是否需要二开 | 测试通过率 | 适用场景 |
|---|---|---|---|---|---|
| 嵌入式模块 | 复制到项目 | Python函数调用 | ❌ 不需要 | 100% (23/23) | 单个Python项目 |
| 独立服务端 | Docker/服务器 | HTTP API调用 | ❌ 不需要 | 100% (235/235) | 多项目共享/远程访问 |
| 本地代理托管 | 本地运行 | 修改代理配置 | ❌ 不需要 | 95.2% (554/582) | 零代码集成/现有项目 |
核心理念: 将代理池作为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项目,需要快速集成
核心理念: 作为独立的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%测试通过
适用: 多个项目共享,或需要远程访问
核心理念: 在本地运行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项目 | 独立服务端 或 本地代理托管 | 支持所有语言 |
| 需要账号管理 | 本地代理托管 | 粘性会话功能 |
# 一键部署
./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
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 |
综合考虑多个因素计算代理评分(0-100):
项目包含完整的测试套件,确保代码质量和功能正确性:
# 运行所有测试
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 开源许可证。
如有问题或建议,请通过以下方式联系:
感谢以下开源项目和服务: