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

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代理过滤器

🔄 数据流架构

内网穿透数据流

访客请求 → 服务端 → 心跳通道 → 客户端 → 本地服务
    ↑                                    ↓
访客响应 ← 服务端 ← 心跳通道 ← 客户端 ← 本地服务

详细流程

  1. 访客连接

    • 访客连接到服务端的访客端口
    • 服务端创建访客通道
  2. 数据转发

    • 服务端通过心跳通道将数据发送给客户端
    • 客户端接收数据并转发给本地服务
  3. 响应返回

    • 本地服务响应数据
    • 客户端通过心跳通道返回给服务端
    • 服务端通过访客通道返回给访客

代理数据流

客户端应用 → 代理客户端 → 心跳通道 → 代理服务端 → 目标服务器
    ↑                                    ↓
客户端应用 ← 代理客户端 ← 心跳通道 ← 代理服务端 ← 目标服务器

代理类型

  1. HTTP代理

    • 支持 HTTP/HTTPS 协议
    • 可配置认证机制
    • 支持流量监控
  2. SOCKS代理

    • 支持 SOCKS4/SOCKS5 协议
    • 支持 TCP/UDP 代理
    • 支持多种认证方式

🗄️ 数据库架构

数据库设计

核心表结构

  1. 客户端管理表

    -- 客户端信息表
    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. 端口映射表

    -- 服务端渗透客户端映射表
    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. 流量统计表

    -- 流量统计表
    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年
维护者: 吴佳伟