feat: update environment configuration and enhance WebUI logging

This commit is contained in:
isboyjc
2026-03-29 13:44:22 +08:00
parent 0cff1ea6a6
commit cede441015
6 changed files with 64 additions and 219 deletions

View File

@@ -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、7777WebUI 对外开放(端口 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)
## 🙏 致谢与声明