Files
wu-lazy-cloud-network/架构说明.md
2025-08-11 16:44:48 +08:00

414 lines
13 KiB
Markdown

# 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代理过滤器
## 🔄 数据流架构
### 内网穿透数据流
```
访客请求 → 服务端 → 心跳通道 → 客户端 → 本地服务
↑ ↓
访客响应 ← 服务端 ← 心跳通道 ← 客户端 ← 本地服务
```
#### 详细流程
1. **访客连接**
- 访客连接到服务端的访客端口
- 服务端创建访客通道
2. **数据转发**
- 服务端通过心跳通道将数据发送给客户端
- 客户端接收数据并转发给本地服务
3. **响应返回**
- 本地服务响应数据
- 客户端通过心跳通道返回给服务端
- 服务端通过访客通道返回给访客
### 代理数据流
```
客户端应用 → 代理客户端 → 心跳通道 → 代理服务端 → 目标服务器
↑ ↓
客户端应用 ← 代理客户端 ← 心跳通道 ← 代理服务端 ← 目标服务器
```
#### 代理类型
1. **HTTP代理**
- 支持 HTTP/HTTPS 协议
- 可配置认证机制
- 支持流量监控
2. **SOCKS代理**
- 支持 SOCKS4/SOCKS5 协议
- 支持 TCP/UDP 代理
- 支持多种认证方式
## 🗄️ 数据库架构
### 数据库设计
#### 核心表结构
1. **客户端管理表**
```sql
-- 客户端信息表
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
);
```
2. **端口映射表**
```sql
-- 服务端渗透客户端映射表
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
);
```
3. **流量统计表**
```sql
-- 流量统计表
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代理
```
### 配置优先级
1. **环境变量**: 最高优先级
2. **命令行参数**: 次高优先级
3. **配置文件**: 默认优先级
4. **默认值**: 最低优先级
## 🔒 安全架构
### 认证机制
1. **Token认证**
- 基于 JWT 的 Token 认证
- 支持 Token 过期和刷新
- 可配置 Token 验证开关
2. **AppKey/AppSecret认证**
- 客户端和服务端之间的认证
- 支持动态密钥管理
- 防止未授权访问
3. **代理认证**
- HTTP代理认证
- SOCKS代理认证
- 支持用户名密码认证
### 网络安全
1. **SSL/TLS加密**
- 支持 HTTPS 访问管理界面
- 可配置 SSL 证书
- 支持强制 HTTPS 访问
2. **流量加密**
- 支持客户端与服务端之间的流量加密
- 可配置加密算法
- 防止数据泄露
3. **访问控制**
- 基于角色的访问控制 (RBAC)
- 支持细粒度权限控制
- 记录访问日志
## 📊 监控架构
### 监控指标
1. **系统监控**
- CPU 使用率
- 内存使用率
- 磁盘 I/O
- 网络 I/O
2. **应用监控**
- 连接数统计
- 流量统计
- 响应时间
- 错误率
3. **业务监控**
- 客户端在线状态
- 端口映射状态
- 代理连接状态
- 流量使用情况
### 监控数据流
```
应用指标 → 监控收集器 → 数据存储 → 监控界面
↑ ↓
告警规则 ← 告警引擎 ← 数据分析 ← 监控数据
```
## 🚀 部署架构
### 单机部署
```
┌─────────────────────────────────┐
│ 单机服务端 │
│ ┌─────────────────────────┐ │
│ │ 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) │ │
│ └─────────────────────────┘ │
└─────────────────────────────────┘
```
## 🔄 扩展架构
### 插件机制
1. **协议插件**
- 支持自定义协议扩展
- 插件热加载
- 协议版本兼容
2. **过滤器插件**
- 支持自定义过滤器
- 过滤器链式处理
- 动态过滤器配置
3. **监控插件**
- 支持自定义监控指标
- 监控数据导出
- 告警规则自定义
### API扩展
1. **RESTful API**
- 提供标准的 REST API
- 支持 JSON 数据格式
- 支持 API 版本控制
2. **WebSocket API**
- 实时数据推送
- 双向通信支持
- 连接状态管理
3. **gRPC API**
- 高性能 RPC 调用
- 支持流式传输
- 跨语言支持
---
**版本**: 1.3.1-JDK24
**更新时间**: 2024年
**维护者**: 吴佳伟