You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

353 lines
9.3 KiB

# Web GUI 使用指南
## 概述
Wormhole SOCKS5 Client 内置了现代化的 Web GUI 管理界面,提供直观的图形界面来管理和监控代理服务。
## 🌟 **主要功能**
### ✅ **实时监控**
- **连接统计**: 总连接数、活跃连接、成功率等
- **流量统计**: 上传下载流量、传输字节数
- **运行状态**: 服务运行时间、健康状态
### ✅ **代理控制**
- **一键开关**: 启用/禁用系统代理设置
- **状态显示**: 实时显示代理配置状态
- **错误提示**: 详细的操作反馈和错误信息
### ✅ **路由配置**
- **域名规则**: 显示绕过和强制代理域名数量
- **网络设置**: 本地网络和私有网络绕过设置
- **统计信息**: 路由规则匹配统计
### ✅ **系统信息**
- **系统代理**: 当前系统代理配置
- **服务配置**: SOCKS5 服务器地址、端口等
- **操作系统**: 运行环境信息
## 🚀 **快速开始**
### 1. 启动服务
```bash
# HTTP 代理模式(推荐测试)
./bin/wormhole-client -mode http
# 全局代理模式(推荐使用)
sudo ./bin/wormhole-client -mode global
```
### 2. 访问 GUI
打开浏览器访问:
- **主界面**: http://127.0.0.1:8080/gui
- **JSON API**: http://127.0.0.1:8080/stats
- **健康检查**: http://127.0.0.1:8080/health
### 3. 界面功能
启动后你将看到现代化的管理界面:
```
🌐 Wormhole SOCKS5 Client [●] 服务运行中
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 代理控制 │ │ 连接统计 │ │ 路由配置 │
│ │ │ │ │ │
│ 模式: global │ │ 总连接: 42 │ │ 绕过域名: 15 │
│ 服务器: xxx:xxx │ │ 活跃连接: 3 │ │ 强制域名: 25 │
│ 端口: 8080 │ │ 成功率: 95.2% │ │ 本地绕过: 是 │
│ 系统: darwin │ │ 运行时间: 2h15m │ │ 私网绕过: 是 │
│ │ │ 传输流量: 1.2GB │ │ │
│ [禁用系统代理] │ │ 失败请求: 2 │ │ │
│ [刷新状态] │ │ │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 系统信息 │
│ │
│ 系统代理状态: [已启用] │
│ 当前代理设置: │
│ http: 127.0.0.1:8080 │
│ https: 127.0.0.1:8080 │
└─────────────────────────────────────────────────────────────┘
```
## ⚙ **功能详解**
### 代理控制面板
**基本信息显示**
- 运行模式(HTTP/Global/Transparent)
- SOCKS5 服务器地址和端口
- 本地代理端口
- 操作系统类型
**操作按钮**
- **启用/禁用系统代理**: 一键切换系统代理设置
- **刷新状态**: 手动刷新所有数据
### 连接统计面板
**实时数据**
- **总连接数**: 自启动以来的总连接数
- **活跃连接**: 当前正在处理的连接数
- **成功率**: 成功请求与总请求的比例
- **运行时间**: 服务运行的总时间
- **传输流量**: 上传下载的总字节数
- **失败请求**: 失败的请求数量
### 路由配置面板
**智能分流信息**
- **绕过域名数量**: 配置的直连域名规则数
- **强制代理域名**: 配置的代理域名规则数
- **绕过本地网络**: 是否绕过本地网络设置
- **绕过私有网络**: 是否绕过私有网络设置
### 系统信息面板
**系统代理状态**
- **启用/禁用状态**: 当前系统代理是否启用
- **代理设置详情**: 具体的 HTTP/HTTPS 代理配置
## 🔧 **高级配置**
### 自定义端口
如果需要在不同端口运行 GUI:
```yaml
# configs/client.yaml
proxy:
localPort: 8888 # 修改端口
# GUI 将在 http://127.0.0.1:8888/gui 提供服务
```
### 外部访问
默认 GUI 只能从本地访问。如需外部访问:
```bash
# 使用端口转发(SSH隧道)
ssh -L 8080:127.0.0.1:8080 username@your-server
# 然后在本地访问: http://127.0.0.1:8080/gui
```
### API 集成
GUI 基于 RESTful API 构建,可以与其他工具集成:
```bash
# 获取状态信息
curl http://127.0.0.1:8080/api/status
# 切换代理状态
curl -X POST http://127.0.0.1:8080/api/proxy/toggle \
-H "Content-Type: application/json" \
-d '{"enable": true}'
# 获取路由统计
curl http://127.0.0.1:8080/api/routing/stats
```
## 📱 **响应式设计**
GUI 支持多种设备:
- **桌面端**: 全功能四面板布局
- **平板端**: 自适应两列布局
- **手机端**: 单列垂直布局
### 移动端优化
在手机上访问时,界面会自动调整:
- 简化的按钮和控件
- 更大的触摸目标
- 优化的字体大小
## 🔄 **实时更新**
### 自动刷新
GUI 每 5 秒自动更新数据,包括:
- 连接统计
- 代理状态
- 系统信息
- 路由统计
### 智能刷新
**页面可见性检测**
- 当页面在后台时停止自动刷新
- 切换回前台时立即恢复更新
- 节省系统资源和网络带宽
### 手动刷新
点击 "刷新状态" 按钮立即更新所有数据。
## 🎨 **界面特性**
### 现代化设计
- **毛玻璃效果**: 半透明背景增强视觉层次
- **渐变背景**: 美观的紫色渐变背景
- **卡片布局**: 清晰的信息分组
- **图标支持**: 使用 Font Awesome 图标
### 交互反馈
- **悬停效果**: 按钮和卡片的悬停动画
- **加载状态**: 操作进行时的加载指示
- **状态指示**: 颜色编码的状态点
- **动画效果**: 平滑的过渡动画
### 状态显示
**连接状态指示器**
- 🟢 **绿色**: 服务正常运行
- 🟡 **黄色**: 正在检查状态
- 🔴 **红色**: 服务异常或连接失败
## ⚠ **注意事项**
### 安全考虑
1. **本地访问**: GUI 默认只绑定本地地址
2. **无认证**: 当前版本无需登录验证
3. **HTTPS**: 建议通过 HTTPS 代理访问
### 性能影响
1. **轻量级**: GUI 对系统资源占用很小
2. **异步更新**: 不影响代理性能
3. **缓存优化**: 静态资源缓存减少网络请求
### 浏览器兼容
**支持的浏览器**
- ✅ Chrome/Chromium 70+
- ✅ Firefox 65+
- ✅ Safari 12+
- ✅ Edge 79+
**推荐浏览器**: Chrome 或 Firefox 最新版本
## 🔧 **故障排除**
### 常见问题
#### 1. 无法访问 GUI
```
问题: 浏览器显示"无法访问此网站"
解决: 检查服务是否启动,端口是否正确
```
```bash
# 检查服务状态
curl http://127.0.0.1:8080/health
# 检查端口占用
netstat -an | grep 8080
```
#### 2. 页面加载不完整
```
问题: 页面样式错乱或功能不正常
解决: 清除浏览器缓存,刷新页面
```
```bash
# 强制刷新页面: Ctrl+F5 (Windows) 或 Cmd+Shift+R (Mac)
```
#### 3. 代理切换失败
```
问题: 点击代理开关无效果
解决: 检查管理员权限,查看错误信息
```
```bash
# macOS/Linux: 使用 sudo 运行
sudo ./bin/wormhole-client -mode global
# Windows: 以管理员身份运行
```
#### 4. 数据不更新
```
问题: 统计数据停止更新
解决: 检查网络连接,手动刷新
```
### 调试模式
启用详细日志查看 GUI 相关信息:
```bash
# 设置日志级别为 debug
export LOG_LEVEL=debug
./bin/wormhole-client -mode global
```
查看 GUI 相关日志:
```
[DEBUG] GUI server initialized
[DEBUG] Serving GUI at /gui
[DEBUG] API request: GET /api/status
[DEBUG] GUI template rendered successfully
```
## 📚 **开发和定制**
### 模板系统
GUI 使用 Go 内置模板系统:
- **HTML 模板**: 存储在代码中,支持数据绑定
- **CSS 样式**: 响应式设计,支持深色主题
- **JavaScript**: 现代 ES6+ 语法,模块化设计
### API 端点
GUI 基于以下 API 端点:
```
GET /api/status - 获取服务状态
GET /api/config - 获取配置信息
POST /api/proxy/toggle - 切换代理状态
GET /api/routing/stats - 获取路由统计
GET /api/system/proxy - 获取系统代理信息
```
### 自定义样式
如需修改界面样式,可以编辑 `internal/gui/templates.go` 中的 CSS:
```go
// 修改主题色彩
.panel-header {
background: linear-gradient(135deg, #your-color1, #your-color2);
}
```
## 📖 **相关链接**
- 📊 [API 文档](api.md) - 详细的 API 接口说明
- 🌍 [全局代理指南](global-proxy.md) - 全局代理模式使用说明
- 📋 [配置参考](../configs/client.yaml) - 完整的配置文件示例
- 🏠 [项目主页](../README.md) - 项目总体介绍
---
**💡 提示**: GUI 界面会持续改进,欢迎提出建议和反馈!