feat: add CLAUDE.md for project guidance and enhance HTTP proxy validation

- Introduced CLAUDE.md to provide comprehensive guidance for the GoProxy project.
- Enhanced proxy validation logic to include HTTPS CONNECT tunnel verification for HTTP proxies.
- Updated README to reflect new features, including the addition of an HTTP proxy HTTPS access testing script.
- Adjusted configuration parameters to set the default HTTP protocol ratio to 30%.
This commit is contained in:
isboyjc
2026-04-01 05:10:46 +08:00
parent b1555a702f
commit dfe71d0390
6 changed files with 351 additions and 47 deletions

View File

@@ -27,15 +27,17 @@ GoProxy 从多个公开代理源自动抓取 HTTP/SOCKS5 代理,通过严格
## ✨ 核心特性
### 🎯 智能池子机制
- **固定容量管理**:可配置池子大小和 HTTP/SOCKS5 协议比例
- **固定容量管理**:可配置池子大小和 HTTP/SOCKS5 协议比例(默认 3:7
- **质量分级**S/A/B/C 四级评分(基于延迟),智能选择高质量代理
- **动态状态感知**Healthy → Warning → Critical → Emergency 四级状态自适应
- **严格准入标准**:必须通过出口 IP、地理位置、延迟三重验证才可入池
- **HTTPS 可用性验证**HTTP 协议代理入池前额外验证 HTTPS CONNECT 隧道能力,随机访问真实 HTTPS 网站确认可用(失败自动换站重试),确保入池的 HTTP 代理都能正常访问 HTTPS 网站
- **智能替换**:新代理必须显著优于现有代理(默认快 30%)才触发替换
### 🚀 按需抓取
- **源分组策略**快更新源5-30min用于紧急补充慢更新源每天用于优化轮换
- **断路器保护**:连续失败的源自动降级/禁用,冷却后恢复
- **协议并发验证**抓取到的候选代理按协议分组SOCKS5 和 HTTP 各自并发验证入池。SOCKS5 无额外检测天然更快优先填充HTTP 带 HTTPS CONNECT 检测较慢但不阻塞 SOCKS5 入池
- **多模式抓取**
- **Emergency**:单协议缺失或池子 <10%,使用所有可用源
- **Refill**:池子 <80%,使用快更新源
@@ -133,6 +135,7 @@ GoProxy 从多个公开代理源自动抓取 HTTP/SOCKS5 代理,通过严格
├── test/ # 🧪 测试脚本与文档
│ ├── test_proxy.sh # HTTP 代理测试脚本Bash
│ ├── test_socks5.sh # SOCKS5 代理测试脚本Bash
│ ├── test_http_https.sh # HTTP 代理 HTTPS 访问测试脚本Bash
│ ├── test_proxy.go # Go 测试脚本
│ ├── test_proxy.py # Python 测试脚本
│ └── README.md # 测试脚本使用说明
@@ -571,7 +574,7 @@ proxies = {'http': 'socks5://myuser:secure_pass_123@server-ip:7779', 'https': 's
```json
{
"pool_max_size": 100,
"pool_http_ratio": 0.5,
"pool_http_ratio": 0.3,
"pool_min_per_protocol": 10,
"max_latency_ms": 2000,
"max_latency_healthy": 1500,
@@ -615,7 +618,7 @@ proxies = {'http': 'socks5://myuser:secure_pass_123@server-ip:7779', 'https': 's
| 参数 | 默认值 | 说明 | 推荐范围 |
| --- | --- | --- | --- |
| `pool_max_size` | `100` | 代理池总容量 | 50-150 ⚠️ |
| `pool_http_ratio` | `0.5` | HTTP 协议占比 | 0.3-0.8 |
| `pool_http_ratio` | `0.3` | HTTP 协议占比 | 0.2-0.5 |
| `pool_min_per_protocol` | `10` | 每协议最少保证数量 | 5-50 |
> ⚠️ **容量限制说明**:公开代理源质量有限,验证通过率通常只有 1-3%。受地理过滤、延迟标准、出口检测等因素影响,**实际填充率约为 70-90%**。如设置 150 容量,实际可能稳定在 105-135 个。建议根据实际需求设置合理容量。
@@ -657,7 +660,7 @@ proxies = {'http': 'socks5://myuser:secure_pass_123@server-ip:7779', 'https': 's
```json
{
"pool_max_size": 50,
"pool_http_ratio": 0.5,
"pool_http_ratio": 0.3,
"validate_concurrency": 100,
"health_check_interval": 10,
"health_check_batch_size": 10,
@@ -949,6 +952,7 @@ Emergency (总数<10% 或 单协议缺失)
3. **地理位置查询**:获取出口 IP 的国家/城市
4. **延迟测试**:测量连接延迟
5. **质量评估**:根据延迟计算质量等级
6. **HTTPS 隧道验证**(仅 HTTP 协议):通过代理实际访问随机 HTTPS 网站Google/OpenAI/GitHub/Cloudflare/httpbin验证 CONNECT 隧道可用性,首次失败自动换站重试
**入池判断逻辑**
- ✅ 协议槽位未满:直接加入
@@ -1140,6 +1144,18 @@ go run test/test_proxy.go 7777
python test/test_proxy.py 7776
```
**HTTP 代理 HTTPS 访问测试**
```bash
# 持续测试 HTTP 代理访问 HTTPS 网站(随机访问 Google/OpenAI/GitHub 等)
./test/test_http_https.sh
# 指定端口
./test/test_http_https.sh 7776
# 指定端口 + 测试次数
./test/test_http_https.sh 7777 20
```
**SOCKS5 代理测试**
```bash
# 测试 SOCKS5 随机轮换模式7779 端口)
@@ -1347,7 +1363,8 @@ docker logs proxygo --tail 200 | grep -i "socks5.*failed"
### 本项目增强功能
在原项目基础上,我们进行了大量改进和功能增强:
- 🆕 **智能池子机制**固定容量管理、质量分级S/A/B/C、智能替换逻辑
- 🆕 **智能池子机制**固定容量管理、质量分级S/A/B/C、智能替换逻辑、HTTP/SOCKS5 默认 3:7 比例
- 🆕 **HTTPS 可用性验证**HTTP 协议代理入池/刷新时额外验证 HTTPS CONNECT 隧道,随机访问真实网站确认可用
- 🆕 **按需抓取策略**源分组、断路器保护、Emergency/Refill/Optimize 多模式
- 🆕 **分层健康管理**:批次检查、智能跳过 S 级、定时优化轮换
- 🆕 **智能重试机制**:自动故障切换、失败即删除、防重复尝试
@@ -1357,7 +1374,7 @@ docker logs proxygo --tail 200 | grep -i "socks5.*failed"
- 🆕 **黑客风格 WebUI**Matrix 美学、实时仪表盘、完整配置界面、中英文切换
- 🆕 **双角色权限**:访客模式(只读)+ 管理员模式(完全控制),可安全公网开放
- 🆕 **扩展存储层**:质量等级、使用统计、源状态管理
- 🆕 **测试套件**HTTP + SOCKS5 测试脚本,持续运行模式,显示国旗 emoji
- 🆕 **测试套件**HTTP + SOCKS5 + HTTPS 访问测试脚本,持续运行模式,显示国旗 emoji
- 🆕 **CI/CD 自动化**GitHub Actions 自动构建多架构镜像amd64/arm64双仓库发布
- 🆕 **环境变量配置**docker-compose + .env 文件,灵活配置各种部署场景