后端变更: - 移除 tasks_manager.py 和 core/auth.py,简化架构 - 新增 core/scheduler.py 验证调度器,替代原有任务管理 - 大幅优化 api_server.py:统一错误处理、增强参数验证、支持调度器控制 - validator.py 增强 SOCKS4/SOCKS5 代理验证支持 - config.py 清理废弃配置(WebSocket、API Key、认证开关) - SQLite 数据库操作性能优化 前端变更: - 移除任务管理页面 (CrawlerTasks) 和 WebSocket 相关代码 - 路由简化为 4 个核心页面:总览、代理列表、插件管理、设置 - 提取前端工具函数(clipboard、confirm、format)和 API 类型定义 - 优化 CSS 架构:完善 variables、utilities、element-plus 样式 - Dashboard、Plugins、ProxyList、Settings 页面 UI/UX 优化 - App.vue 响应式侧边栏和页面过渡动画优化 其他: - 移除 PowerShell 启动脚本,简化 Windows 批处理脚本 - 新增 README_SOCKS.md SOCKS 代理支持文档 - .env.example 和 .gitignore 更新
2.4 KiB
2.4 KiB
SOCKS 代理支持说明
更新内容
已成功为代理池系统添加 SOCKS4/SOCKS5 代理验证支持!
技术实现
1. 新增依赖
aiohttp-socks==0.9.1
2. 验证器升级 (core/validator.py)
- 新增
ProxyValidator类,完整支持 HTTP/HTTPS/SOCKS4/SOCKS5 - SOCKS 代理使用
aiohttp_socks.ProxyConnector进行验证 - 支持远程 DNS 解析 (rdns=True),避免 DNS 泄漏
3. 协议识别
以下插件已更新支持 SOCKS 协议:
| 插件 | 支持协议 |
|---|---|
| Fate0聚合源 | HTTP, HTTPS, SOCKS4, SOCKS5 |
| SpeedX代理源 | HTTP, SOCKS4, SOCKS5 |
| ProxyListDownload | HTTP, HTTPS, SOCKS4, SOCKS5 |
| 快代理 | HTTP, HTTPS |
| IP3366 | HTTP, HTTPS |
| 89免费代理 | HTTP |
| 云代理 | HTTP, HTTPS |
使用说明
启动服务
# 安装依赖
pip install -r requirements.txt
# 启动后端
python api_server.py
# 启动前端
cd frontend && npm run dev
抓取 SOCKS 代理
- 打开 WebUI (http://localhost:9948)
- 进入"插件管理"页面
- 点击 SpeedX 或 ProxyListDownload 插件的"立即爬取"
- 系统自动识别 SOCKS 代理并进行验证
查看 SOCKS 代理
- 进入"代理列表"页面
- 使用协议筛选器选择 SOCKS4 或 SOCKS5
- 查看验证结果和延迟
验证流程
+-------------+ +------------------+ +-----------------+
| 插件爬取 | --> | 识别协议类型 | --> | SOCKS验证器 |
+-------------+ +------------------+ +-----------------+
|
v
+-------------+ +------------------+ +-----------------+
| 存储结果 | <-- | 评分更新 | <-- | 延迟测试 |
+-------------+ +------------------+ +-----------------+
SOCKS 验证特点
- 连接器类型: 使用
ProxyConnector替代TCPConnector - DNS 解析: 远程解析避免泄漏真实 IP
- 协议区分: 明确区分 SOCKS4 和 SOCKS5
- 统一接口: 与 HTTP/HTTPS 代理使用相同的验证接口
测试
运行测试脚本验证 SOCKS 支持:
python test_socks_validator.py
python test_plugins_socks.py
注意事项
- SOCKS 代理验证比 HTTP 代理稍慢,因为有额外的握手过程
- 部分 SOCKS 代理可能只支持 TCP 而不支持 UDP
- SOCKS5 支持认证,当前版本使用无认证模式