Files
ProxyPool/readme.md
2026-01-31 22:53:12 +08:00

3.7 KiB
Raw Blame History

ProxyRotator

ProxyRotator 是一个全栈应用程序,旨在管理、验证和轮换 HTTP/SOCKS 代理。它提供了一个高性能的 Go 后端用于处理代理逻辑,以及一个现代化的 React 前端用于直观的管理和监控。

功能特性

  • 代理管理:支持批量导入、解析多种格式的代理。
  • 健康检查:内置高性能测试器,验证代理的连通性、延迟和匿名度。
  • 智能轮换:提供策略选择器,根据评分和状态分发最佳代理。
  • 现代化 UI:基于 React 19 和 Tailwind CSS 构建的仪表盘,支持暗色模式。
  • 持久化存储:使用 PostgreSQL 存储代理数据和历史记录。

🛠️ 技术栈

Backend (后端)

  • 语言: Go (1.25+)
  • 数据库: PostgreSQL
  • 驱动/ORM: pgx/v5
  • 核心模块:
    • importer: 代理导入与解析
    • tester: 连通性测试
    • selector: 代理选择策略
    • store: 数据库持久化

Frontend (前端)

  • 框架: React 19 + Vite
  • 语言: TypeScript
  • 样式: Tailwind CSS v4
  • 组件库: Shadcn UI (基于 Radix UI)
  • 图标: Lucide React

🚀 快速开始

前置要求

  • Go 1.25 或更高版本
  • Node.js & pnpm
  • PostgreSQL 数据库

1. 数据库设置

首先,创建一个 PostgreSQL 数据库(例如 proxyrotator)。然后运行迁移脚本初始化表结构。

# 进入后端目录
cd backend

# 确保你有 psql 客户端,或者使用你喜欢的数据库工具执行 SQL
# 默认迁移文件位于 migrations/001_init.sql
psql "postgres://username:password@localhost:5432/proxyrotator" -f migrations/001_init.sql

2. 后端设置

配置环境变量并启动 API 服务器。

cd backend

# 复制示例环境变量文件
cp envexmaple .env

# 编辑 .env 文件,填入你的数据库连接信息和其他配置
# DATABASE_URL=postgres://postgres:psw@localhost:5432/proxyrotator
# ...

# 安装依赖
go mod tidy

# 启动服务器 (注意Makefile 中的路径可能需要调整,直接使用 go run)
go run server/main.go

服务器默认监听在 0.0.0.0:9987

3. 前端设置

启动 Web 界面。

cd front

# 安装依赖
pnpm install

# 启动开发服务器
pnpm dev

访问终端中显示的地址(通常是 http://localhost:5173)即可进入控制台。

⚙️ 环境变量配置

backend/.env 中配置以下关键变量:

变量名 描述 示例
DATABASE_URL PostgreSQL 连接字符串 postgres://user:pass@localhost:5432/db
LISTEN_ADDR 后端监听地址 0.0.0.0:9987
API_KEY API 访问密钥(如启用鉴权) your-secret-key
MAX_CONCURRENCY 代理测试的最大并发数 200
LEASE_TTL 代理租约/有效时间 60s

📂 项目结构

proxyrotator/
├── backend/            # Go 后端代码
│   ├── internal/       # 核心业务逻辑
│   │   ├── api/        # HTTP API 处理
│   │   ├── importer/   # 代理导入器
│   │   ├── tester/     # 代理测试器
│   │   └── store/      # 数据库操作
│   ├── migrations/     # SQL 迁移文件
│   └── server/         # 入口文件
└── front/              # React 前端代码
    ├── src/
    │   ├── components/ # UI 组件
    │   └── lib/        # 工具函数与 API 客户端

📝 开发指南

  • 后端开发: 核心逻辑位于 backend/internal。添加新功能时,请确保更新 docs/developdoc.md(如果存在)。
  • 前端开发: 组件位于 front/src/components。使用了 Shadcn UI 风格的组件架构。

📄 License

MIT