mirror of
https://gitee.com/wujiawei1207537021/wu-lazy-cloud-network.git
synced 2026-02-04 15:05:54 +08:00
13 KiB
13 KiB
Wu-Lazy-Cloud-Network 架构说明
🏗️ 整体架构
系统架构图
┌─────────────────────────────────────────────────────────────────┐
│ Wu-Lazy-Cloud-Network │
├─────────────────────────────────────────────────────────────────┤
│ 客户端 (Client) 服务端 (Server) │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Web UI │ │ Web UI │ │
│ │ (6004) │ │ (6001) │ │
│ └─────────────────┘ └─────────────────┘ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Netty Client │◄────────────►│ Netty Server │ │
│ │ (7001) │ │ (7001) │ │
│ └─────────────────┘ └─────────────────┘ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ HTTP Proxy │ │ HTTP Proxy │ │
│ │ (8002) │ │ (8001) │ │
│ └─────────────────┘ └─────────────────┘ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ SOCKS Proxy │ │ SOCKS Proxy │ │
│ │ (9002) │ │ (9001) │ │
│ └─────────────────┘ └─────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
核心组件
1. 通信层 (Communication Layer)
- Netty Framework: 基于 Netty 的高性能网络通信
- TCP/UDP 支持: 支持多种传输协议
- 心跳机制: 保持客户端与服务端的连接
2. 协议层 (Protocol Layer)
- HTTP 代理: 支持 HTTP/HTTPS 代理
- SOCKS 代理: 支持 SOCKS4/SOCKS5 代理
- 自定义协议: 支持扩展自定义协议
3. 业务层 (Business Layer)
- 内网穿透: 网络端口映射功能
- 流量监控: 实时流量统计和分析
- 路由管理: 虚拟路由和流量转发
4. 数据层 (Data Layer)
- MySQL: 主数据库,存储配置和监控数据
- H2: 开发环境数据库
- Lazy ORM: 数据库操作框架
📦 模块架构
模块依赖关系
wu-lazy-cloud-network (父模块)
├── wu-lazy-cloud-heartbeat-common (公共模块)
│ ├── 接口定义
│ ├── 枚举常量
│ ├── 适配器
│ └── 工具类
├── wu-lazy-cloud-heartbeat-server (服务端核心)
│ ├── 服务端业务逻辑
│ ├── 网络处理
│ └── 管理界面
├── wu-lazy-cloud-heartbeat-client (客户端核心)
│ ├── 客户端业务逻辑
│ ├── 连接管理
│ └── 本地界面
├── wu-lazy-cloud-heartbeat-dns (DNS模块)
│ └── DNS解析功能
├── wu-lazy-cloud-heartbeat-protocol-proxy (代理协议)
│ ├── HTTP代理
│ └── SOCKS代理
└── wu-lazy-cloud-heartbeat-start (启动模块)
├── wu-lazy-cloud-heartbeat-server-start
├── wu-lazy-cloud-heartbeat-client-start
└── wu-lazy-cloud-heartbeat-server-cluster-start
模块功能说明
1. wu-lazy-cloud-heartbeat-common
功能: 公共基础模块
- 接口定义: 定义系统核心接口
- 枚举常量: 系统常量定义
- 适配器: 协议适配器
- 工具类: 通用工具方法
核心类:
NettyMsg: 网络消息基类ChannelContext: 通道上下文NettyTransferChannelContext: 传输通道上下文
2. wu-lazy-cloud-heartbeat-server
功能: 服务端核心模块
- 网络服务: 提供 TCP/UDP 服务
- 客户端管理: 管理连接的客户端
- 端口映射: 处理端口映射逻辑
- 流量监控: 监控网络流量
核心类:
NettyTcpServerSocketApplicationListener: TCP服务监听器LazyServerPermeateServerMappingApplication: 服务端渗透应用NettyServerVirtualRouteApplication: 虚拟路由应用
3. wu-lazy-cloud-heartbeat-client
功能: 客户端核心模块
- 连接管理: 管理与服务端的连接
- 本地服务: 提供本地服务接口
- 端口转发: 处理端口转发逻辑
核心类:
NettyClientSocketApplicationListener: 客户端连接监听器LazyClientPermeateClientMappingApplication: 客户端渗透应用NettyClientVirtualRouteApplication: 客户端虚拟路由
4. wu-lazy-cloud-heartbeat-protocol-proxy
功能: 代理协议模块
- HTTP代理: HTTP/HTTPS 代理服务
- SOCKS代理: SOCKS4/SOCKS5 代理服务
- 协议处理: 处理各种代理协议
核心类:
NettyHttpProxySocketApplicationListener: HTTP代理监听器NettySocketProxySocketApplicationListener: SOCKS代理监听器NettyTcpProxyFilter: TCP代理过滤器
🔄 数据流架构
内网穿透数据流
访客请求 → 服务端 → 心跳通道 → 客户端 → 本地服务
↑ ↓
访客响应 ← 服务端 ← 心跳通道 ← 客户端 ← 本地服务
详细流程
-
访客连接
- 访客连接到服务端的访客端口
- 服务端创建访客通道
-
数据转发
- 服务端通过心跳通道将数据发送给客户端
- 客户端接收数据并转发给本地服务
-
响应返回
- 本地服务响应数据
- 客户端通过心跳通道返回给服务端
- 服务端通过访客通道返回给访客
代理数据流
客户端应用 → 代理客户端 → 心跳通道 → 代理服务端 → 目标服务器
↑ ↓
客户端应用 ← 代理客户端 ← 心跳通道 ← 代理服务端 ← 目标服务器
代理类型
-
HTTP代理
- 支持 HTTP/HTTPS 协议
- 可配置认证机制
- 支持流量监控
-
SOCKS代理
- 支持 SOCKS4/SOCKS5 协议
- 支持 TCP/UDP 代理
- 支持多种认证方式
🗄️ 数据库架构
数据库设计
核心表结构
-
客户端管理表
-- 客户端信息表 CREATE TABLE lazy_netty_client ( id BIGINT PRIMARY KEY, client_id VARCHAR(100), client_name VARCHAR(200), client_ip VARCHAR(50), client_port INT, is_deleted TINYINT, create_time DATETIME, update_time DATETIME ); -
端口映射表
-- 服务端渗透客户端映射表 CREATE TABLE lazy_server_permeate_client_mapping ( id BIGINT PRIMARY KEY, client_id VARCHAR(100), visitor_port INT, real_host VARCHAR(100), real_port INT, is_deleted TINYINT, create_time DATETIME, update_time DATETIME ); -
流量统计表
-- 流量统计表 CREATE TABLE lazy_netty_flow_statistics ( id BIGINT PRIMARY KEY, client_id VARCHAR(100), port INT, upload_bytes BIGINT, download_bytes BIGINT, create_time DATETIME );
数据关系
客户端表 (lazy_netty_client)
↓ (1:N)
端口映射表 (lazy_server_permeate_client_mapping)
↓ (1:N)
流量统计表 (lazy_netty_flow_statistics)
🔧 配置架构
配置层次结构
application.yml (主配置)
├── spring.lazy.netty.server (服务端配置)
│ ├── mode: standalone/cluster
│ ├── node-id: 节点ID
│ ├── node-host: 节点主机
│ └── node-port: 节点端口
├── spring.lazy.netty.client (客户端配置)
│ ├── client-id: 客户端ID
│ ├── inet-host: 服务端地址
│ └── inet-port: 服务端端口
└── spring.lazy.netty.protocol.proxy (代理配置)
├── authentication: 认证开关
├── socket-protocol-proxy: SOCKS代理
└── http-protocol-proxy: HTTP代理
配置优先级
- 环境变量: 最高优先级
- 命令行参数: 次高优先级
- 配置文件: 默认优先级
- 默认值: 最低优先级
🔒 安全架构
认证机制
-
Token认证
- 基于 JWT 的 Token 认证
- 支持 Token 过期和刷新
- 可配置 Token 验证开关
-
AppKey/AppSecret认证
- 客户端和服务端之间的认证
- 支持动态密钥管理
- 防止未授权访问
-
代理认证
- HTTP代理认证
- SOCKS代理认证
- 支持用户名密码认证
网络安全
-
SSL/TLS加密
- 支持 HTTPS 访问管理界面
- 可配置 SSL 证书
- 支持强制 HTTPS 访问
-
流量加密
- 支持客户端与服务端之间的流量加密
- 可配置加密算法
- 防止数据泄露
-
访问控制
- 基于角色的访问控制 (RBAC)
- 支持细粒度权限控制
- 记录访问日志
📊 监控架构
监控指标
-
系统监控
- CPU 使用率
- 内存使用率
- 磁盘 I/O
- 网络 I/O
-
应用监控
- 连接数统计
- 流量统计
- 响应时间
- 错误率
-
业务监控
- 客户端在线状态
- 端口映射状态
- 代理连接状态
- 流量使用情况
监控数据流
应用指标 → 监控收集器 → 数据存储 → 监控界面
↑ ↓
告警规则 ← 告警引擎 ← 数据分析 ← 监控数据
🚀 部署架构
单机部署
┌─────────────────────────────────┐
│ 单机服务端 │
│ ┌─────────────────────────┐ │
│ │ Web UI (6001) │ │
│ │ TCP Server (7001) │ │
│ │ HTTP Proxy (8001) │ │
│ │ SOCKS Proxy (9001) │ │
│ └─────────────────────────┘ │
└─────────────────────────────────┘
集群部署
┌─────────────────────────────────┐
│ 负载均衡器 │
│ ┌─────────┬─────────┬─────────┐ │
│ │ 节点1 │ 节点2 │ 节点3 │ │
│ │ 6001 │ 6001 │ 6001 │ │
│ │ 7001 │ 7001 │ 7001 │ │
│ └─────────┴─────────┴─────────┘ │
└─────────────────────────────────┘
Docker部署
┌─────────────────────────────────┐
│ Docker Host │
│ ┌─────────────────────────┐ │
│ │ wlcn-server │ │
│ │ (6001,7001,8001,9001)│ │
│ └─────────────────────────┘ │
│ ┌─────────────────────────┐ │
│ │ wlcn-client │ │
│ │ (6004,8002,9002) │ │
│ └─────────────────────────┘ │
└─────────────────────────────────┘
🔄 扩展架构
插件机制
-
协议插件
- 支持自定义协议扩展
- 插件热加载
- 协议版本兼容
-
过滤器插件
- 支持自定义过滤器
- 过滤器链式处理
- 动态过滤器配置
-
监控插件
- 支持自定义监控指标
- 监控数据导出
- 告警规则自定义
API扩展
-
RESTful API
- 提供标准的 REST API
- 支持 JSON 数据格式
- 支持 API 版本控制
-
WebSocket API
- 实时数据推送
- 双向通信支持
- 连接状态管理
-
gRPC API
- 高性能 RPC 调用
- 支持流式传输
- 跨语言支持
版本: 1.3.1-JDK24
更新时间: 2024年
维护者: 吴佳伟