mirror of
https://github.com/isboyjc/GoProxy.git
synced 2026-07-19 11:31:59 +08:00
feat: ✨ update environment configuration and enhance WebUI logging
This commit is contained in:
81
README.md
81
README.md
@@ -66,7 +66,6 @@ GoProxy 从多个公开代理源自动抓取 HTTP/SOCKS5 代理,通过严格
|
||||
|
||||
- [地理过滤配置指南](GEO_FILTER.md) - 国家代码、使用场景、测试方法
|
||||
- [数据目录说明](DATA_DIRECTORY.md) - 数据库、配置文件、备份恢复
|
||||
- [代理认证测试](test/AUTH_TEST.md) - 代理认证测试和多语言客户端示例
|
||||
- [测试脚本使用](test/README.md) - Bash/Go/Python 测试脚本详细说明
|
||||
- [架构设计文档](POOL_DESIGN.md) - 完整的系统设计和实现细节
|
||||
|
||||
@@ -92,8 +91,7 @@ GoProxy 从多个公开代理源自动抓取 HTTP/SOCKS5 代理,通过严格
|
||||
│ ├── test_proxy.sh # Bash 测试脚本
|
||||
│ ├── test_proxy.go # Go 测试脚本
|
||||
│ ├── test_proxy.py # Python 测试脚本
|
||||
│ ├── README.md # 测试脚本使用说明
|
||||
│ └── AUTH_TEST.md # 认证功能测试指南
|
||||
│ └── README.md # 测试脚本使用说明
|
||||
├── .github/workflows/
|
||||
│ └── docker-image.yml # 🆕 GitHub Actions 自动构建(多平台镜像)
|
||||
├── .env.example # 🆕 环境变量配置模板
|
||||
@@ -141,10 +139,11 @@ go build -o proxygo .
|
||||
- `:7777` - 随机轮换模式(IP 多样性)
|
||||
|
||||
### 默认端口
|
||||
- **代理服务(随机轮换)**:`127.0.0.1:7777` - 每次请求随机选择代理,IP 多样性高
|
||||
- **代理服务(最低延迟)**:`127.0.0.1:7776` - 固定使用延迟最低的代理,性能优先
|
||||
- **WebUI**:`http://127.0.0.1:7778`
|
||||
- **代理服务(随机轮换)**:`7777` - 每次请求随机选择代理,IP 多样性高
|
||||
- **代理服务(最低延迟)**:`7776` - 固定使用延迟最低的代理,性能优先
|
||||
- **WebUI**:`7778`
|
||||
- **默认密码**:`goproxy`(可通过 `WEBUI_PASSWORD` 环境变量自定义)
|
||||
- **访问方式**:本地使用 `localhost`,远程使用服务器 IP 地址
|
||||
|
||||
### 使用代理
|
||||
|
||||
@@ -155,7 +154,11 @@ GoProxy 提供**两个代理端口**,满足不同场景需求:
|
||||
适合需要 **IP 多样性** 的场景(爬虫、数据采集、负载均衡):
|
||||
|
||||
```bash
|
||||
curl -x http://127.0.0.1:7777 https://httpbin.org/ip
|
||||
# 本地使用
|
||||
curl -x http://localhost:7777 https://httpbin.org/ip
|
||||
|
||||
# 远程使用
|
||||
curl -x http://your-server-ip:7777 https://httpbin.org/ip
|
||||
```
|
||||
|
||||
**特点**:
|
||||
@@ -168,7 +171,11 @@ curl -x http://127.0.0.1:7777 https://httpbin.org/ip
|
||||
适合需要 **稳定连接** 的场景(长连接、流媒体、实时通信):
|
||||
|
||||
```bash
|
||||
curl -x http://127.0.0.1:7776 https://httpbin.org/ip
|
||||
# 本地使用
|
||||
curl -x http://localhost:7776 https://httpbin.org/ip
|
||||
|
||||
# 远程使用
|
||||
curl -x http://your-server-ip:7776 https://httpbin.org/ip
|
||||
```
|
||||
|
||||
**特点**:
|
||||
@@ -179,15 +186,15 @@ curl -x http://127.0.0.1:7776 https://httpbin.org/ip
|
||||
|
||||
#### 环境变量配置
|
||||
|
||||
**本地使用(无认证)**:
|
||||
**本地使用**:
|
||||
```bash
|
||||
# 使用随机模式
|
||||
export http_proxy=http://127.0.0.1:7777
|
||||
export https_proxy=http://127.0.0.1:7777
|
||||
export http_proxy=http://localhost:7777
|
||||
export https_proxy=http://localhost:7777
|
||||
|
||||
# 或使用稳定模式
|
||||
export http_proxy=http://127.0.0.1:7776
|
||||
export https_proxy=http://127.0.0.1:7776
|
||||
export http_proxy=http://localhost:7776
|
||||
export https_proxy=http://localhost:7776
|
||||
```
|
||||
|
||||
**远程使用(带认证)**:
|
||||
@@ -273,8 +280,8 @@ docker compose up -d
|
||||
|
||||
```bash
|
||||
docker run -d --name proxygo \
|
||||
-p 127.0.0.1:7776:7776 \
|
||||
-p 127.0.0.1:7777:7777 \
|
||||
-p 7776:7776 \
|
||||
-p 7777:7777 \
|
||||
-p 7778:7778 \
|
||||
-e WEBUI_PASSWORD=your_password \
|
||||
-v goproxy-data:/app/data \
|
||||
@@ -315,24 +322,30 @@ docker compose up -d
|
||||
|
||||
| 变量 | 默认值 | 说明 |
|
||||
|------|--------|------|
|
||||
| `PROXY_HOST` | `127.0.0.1` | 代理服务绑定地址(`0.0.0.0` = 对外开放) |
|
||||
| `BLOCKED_COUNTRIES` | `CN` | 屏蔽的国家代码(逗号分隔,如 `CN,RU`,留空=不屏蔽) |
|
||||
| `PROXY_AUTH_ENABLED` | `false` | 是否启用代理认证 |
|
||||
| `PROXY_AUTH_ENABLED` | `false` | 是否启用代理认证(对外开放时强烈建议启用) |
|
||||
| `PROXY_AUTH_USERNAME` | `proxy` | 代理认证用户名 |
|
||||
| `PROXY_AUTH_PASSWORD` | 空 | 代理认证密码 |
|
||||
| `WEBUI_PASSWORD` | `goproxy` | WebUI 登录密码 |
|
||||
| `STABLE_PORT` | `7776` | 最低延迟代理端口 |
|
||||
| `RANDOM_PORT` | `7777` | 随机轮换代理端口 |
|
||||
| `WEBUI_PORT` | `7778` | WebUI 管理端口 |
|
||||
|
||||
完整环境变量列表请查看 `.env.example` 文件。
|
||||
|
||||
**⚠️ 生产部署注意事项**:
|
||||
- 如使用 Dokploy、Coolify 等平台部署,确保 `docker-compose.yml` 中配置了平台网络(如 `dokploy-network`)
|
||||
- WebUI 端口可通过平台的域名功能访问,无需手动配置端口绑定
|
||||
- 代理端口(7776/7777)通过 `IP:端口` 直接访问,**强烈建议启用认证**
|
||||
|
||||
**常用配置示例**:
|
||||
|
||||
```bash
|
||||
# 场景 1:本地使用(默认,最安全)
|
||||
# 场景 1:本地使用(默认配置)
|
||||
# 直接运行 docker compose up -d 即可
|
||||
|
||||
# 场景 2:对外开放 + 启用认证(推荐)
|
||||
# 场景 2:启用代理认证(推荐)
|
||||
cat > .env << EOF
|
||||
PROXY_HOST=0.0.0.0
|
||||
PROXY_AUTH_ENABLED=true
|
||||
PROXY_AUTH_USERNAME=myuser
|
||||
PROXY_AUTH_PASSWORD=secure_pass_123
|
||||
@@ -358,23 +371,23 @@ docker compose up -d
|
||||
|
||||
### 安全部署配置
|
||||
|
||||
**默认配置**:代理服务仅本地访问(`127.0.0.1`),WebUI 可对外访问。
|
||||
**默认配置**:代理服务对外开放(端口 7776、7777),WebUI 对外开放(端口 7778)。
|
||||
|
||||
**如需对外开放代理服务**,强烈建议启用认证:
|
||||
**⚠️ 重要提示**:
|
||||
|
||||
| 使用场景 | 配置建议 | 安全级别 |
|
||||
|---------|---------|---------|
|
||||
| **个人 VPS + 本地使用** | `PROXY_HOST=127.0.0.1`(默认) | ⭐⭐⭐⭐⭐ 最安全 |
|
||||
| **团队共享 + 认证** | `PROXY_HOST=0.0.0.0` + 启用认证 | ⭐⭐⭐⭐ 安全 |
|
||||
| **内网 + 防火墙** | `PROXY_HOST=0.0.0.0` + iptables 白名单 | ⭐⭐⭐ 中等 |
|
||||
| **公网部署** | 启用代理认证 + 防火墙限制 | ⭐⭐⭐⭐⭐ 推荐 |
|
||||
| **内网部署** | 启用代理认证 或 防火墙白名单 | ⭐⭐⭐⭐ 安全 |
|
||||
| **本地测试** | 无需认证 | ⭐⭐⭐ 仅测试 |
|
||||
|
||||
**启用代理认证**(编辑 `.env`):
|
||||
|
||||
```bash
|
||||
PROXY_HOST=0.0.0.0
|
||||
PROXY_AUTH_ENABLED=true
|
||||
PROXY_AUTH_USERNAME=myuser
|
||||
PROXY_AUTH_PASSWORD=secure_pass_123
|
||||
WEBUI_PASSWORD=admin_pass
|
||||
```
|
||||
|
||||
**客户端使用(带认证)**:
|
||||
@@ -391,8 +404,6 @@ curl -x http://myuser:secure_pass_123@server-ip:7777 https://httpbin.org/ip
|
||||
proxies = {'http': 'http://myuser:secure_pass_123@server-ip:7777', 'https': '...'}
|
||||
```
|
||||
|
||||
> 💡 **认证测试指南**:详细的认证功能测试和多语言客户端示例,请查看 [`test/AUTH_TEST.md`](test/AUTH_TEST.md)
|
||||
|
||||
## ⚙️ 配置说明
|
||||
|
||||
### 配置文件示例
|
||||
@@ -551,7 +562,7 @@ proxies = {'http': 'http://myuser:secure_pass_123@server-ip:7777', 'https': '...
|
||||
|
||||
## 🎨 WebUI 使用指南
|
||||
|
||||
访问地址:`http://127.0.0.1:7778`
|
||||
访问地址:`http://localhost:7778`(本地)或 `http://your-server-ip:7778`(远程)
|
||||
|
||||
### 👥 双角色权限系统
|
||||
|
||||
@@ -907,8 +918,6 @@ A:
|
||||
2. 重启服务:`docker compose up -d`
|
||||
3. 客户端使用:`http://myuser:mypass@server-ip:7777`
|
||||
|
||||
详细说明和测试方法请查看 [`test/AUTH_TEST.md`](./test/AUTH_TEST.md)
|
||||
|
||||
### Q: 代理认证和 WebUI 认证有什么区别?
|
||||
A:
|
||||
- **代理认证**:保护 7776/7777 代理服务端口,防止代理被滥用
|
||||
@@ -979,7 +988,7 @@ python test/test_proxy.py 7776 # 测试 7776
|
||||
### 测试输出示例
|
||||
|
||||
```
|
||||
PROXY 127.0.0.1:7777 (http://ip-api.com/json/?fields=countryCode,query): continuous mode
|
||||
PROXY localhost:7777 (http://ip-api.com/json/?fields=countryCode,query): continuous mode
|
||||
|
||||
proxy from 🇺🇸 203.0.113.45: seq=1 time=1234ms
|
||||
proxy from 🇩🇪 198.51.100.78: seq=2 time=987ms
|
||||
@@ -996,15 +1005,13 @@ proxy from 🇯🇵 198.51.100.12: seq=5 time=890ms
|
||||
**测试认证功能**:
|
||||
```bash
|
||||
# 启用认证后测试
|
||||
curl -x http://myuser:mypass@127.0.0.1:7777 https://httpbin.org/ip
|
||||
curl -x http://myuser:mypass@localhost:7777 https://httpbin.org/ip
|
||||
|
||||
# 无认证请求(应该返回 407 错误)
|
||||
curl -x http://127.0.0.1:7777 https://httpbin.org/ip
|
||||
curl -x http://localhost:7777 https://httpbin.org/ip
|
||||
```
|
||||
|
||||
**更多测试指南**:
|
||||
- 基础功能测试:[`test/README.md`](./test/README.md)
|
||||
- 认证功能测试:[`test/AUTH_TEST.md`](./test/AUTH_TEST.md)
|
||||
**测试脚本使用**:[`test/README.md`](./test/README.md)
|
||||
|
||||
## 🙏 致谢与声明
|
||||
|
||||
|
||||
Reference in New Issue
Block a user