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.
 
 
 

9.3 KiB

Web GUI 使用指南

概述

Wormhole SOCKS5 Client 内置了现代化的 Web GUI 管理界面,提供直观的图形界面来管理和监控代理服务。

🌟 主要功能

实时监控

  • 连接统计: 总连接数、活跃连接、成功率等
  • 流量统计: 上传下载流量、传输字节数
  • 运行状态: 服务运行时间、健康状态

代理控制

  • 一键开关: 启用/禁用系统代理设置
  • 状态显示: 实时显示代理配置状态
  • 错误提示: 详细的操作反馈和错误信息

路由配置

  • 域名规则: 显示绕过和强制代理域名数量
  • 网络设置: 本地网络和私有网络绕过设置
  • 统计信息: 路由规则匹配统计

系统信息

  • 系统代理: 当前系统代理配置
  • 服务配置: SOCKS5 服务器地址、端口等
  • 操作系统: 运行环境信息

🚀 快速开始

1. 启动服务

# HTTP 代理模式(推荐测试)
./bin/wormhole-client -mode http

# 全局代理模式(推荐使用)
sudo ./bin/wormhole-client -mode global

2. 访问 GUI

打开浏览器访问:

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:

# configs/client.yaml
proxy:
  localPort: 8888  # 修改端口

# GUI 将在 http://127.0.0.1:8888/gui 提供服务

外部访问

默认 GUI 只能从本地访问。如需外部访问:

# 使用端口转发(SSH隧道)
ssh -L 8080:127.0.0.1:8080 username@your-server

# 然后在本地访问: http://127.0.0.1:8080/gui

API 集成

GUI 基于 RESTful API 构建,可以与其他工具集成:

# 获取状态信息
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

问题: 浏览器显示"无法访问此网站"
解决: 检查服务是否启动,端口是否正确
# 检查服务状态
curl http://127.0.0.1:8080/health

# 检查端口占用
netstat -an | grep 8080

2. 页面加载不完整

问题: 页面样式错乱或功能不正常
解决: 清除浏览器缓存,刷新页面
# 强制刷新页面: Ctrl+F5 (Windows) 或 Cmd+Shift+R (Mac)

3. 代理切换失败

问题: 点击代理开关无效果
解决: 检查管理员权限,查看错误信息
# macOS/Linux: 使用 sudo 运行
sudo ./bin/wormhole-client -mode global

# Windows: 以管理员身份运行

4. 数据不更新

问题: 统计数据停止更新
解决: 检查网络连接,手动刷新

调试模式

启用详细日志查看 GUI 相关信息:

# 设置日志级别为 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:

// 修改主题色彩
.panel-header {
    background: linear-gradient(135deg, #your-color1, #your-color2);
}

📖 相关链接


💡 提示: GUI 界面会持续改进,欢迎提出建议和反馈!