[update] 添加文档

This commit is contained in:
wujiawei
2025-08-11 16:44:48 +08:00
parent 0aaf8a47ec
commit fc05d9a09b
5 changed files with 2363 additions and 0 deletions

452
项目说明文档.md Normal file
View File

@@ -0,0 +1,452 @@
# Wu-Lazy-Cloud-Network 项目说明文档
## 📋 项目概述
**Wu-Lazy-Cloud-Network (WLCN)** 是一款基于 Spring Boot 3.5.0 和 JDK 24 开发的网络穿透、渗透工具,支持 TCP、HTTP、SOCKS 协议。该项目是 [wu-framework-parent](https://gitee.com/wujiawei1207537021/wu-framework-parent) 框架孵化的网络解决方案。
### 🎯 主要功能
- **内网穿透**:将局域网服务映射到公网,实现远程访问
- **网络代理**:支持 HTTP 和 SOCKS 代理,实现异地组网
- **流量监控**:实时监控网络流量使用情况
- **多协议支持**:支持 TCP、HTTP、SOCKS 等多种协议
- **集群部署**:支持单机版和集群模式部署
## 🏗️ 系统架构
### 核心模块
| 模块 | 版本 | 描述 | 端口 |
|------|------|------|------|
| `wu-lazy-cloud-heartbeat-common` | 1.3.1-JDK24 | 公共模块(接口、枚举、常量、适配器) | - |
| `wu-lazy-cloud-heartbeat-server` | 1.3.1-JDK24 | 服务端核心组件 | 6001(Web), 7001(TCP) |
| `wu-lazy-cloud-heartbeat-client` | 1.3.1-JDK24 | 客户端核心组件 | 6004(Web) |
| `wu-lazy-cloud-heartbeat-dns` | 1.3.1-JDK24 | DNS 解析模块 | - |
| `wu-lazy-cloud-heartbeat-protocol-proxy` | 1.3.1-JDK24 | 代理协议模块 | 8001(HTTP), 9001(SOCKS) |
### 启动模块
| 模块 | 版本 | 描述 | 用途 |
|------|------|------|------|
| `wu-lazy-cloud-heartbeat-server-start` | 1.3.1-JDK24 | 服务端启动模块 | 生产部署 |
| `wu-lazy-cloud-heartbeat-client-start` | 1.3.1-JDK24 | 客户端启动模块 | 生产部署 |
| `wu-lazy-cloud-heartbeat-server-cluster-start` | 1.3.1-JDK24 | 集群服务端启动模块 | 集群部署 |
## 🔧 技术栈
### 核心框架
- **Spring Boot**: 3.5.3
- **JDK**: 24
- **Netty**: 网络通信框架
- **Lazy ORM**: 数据库操作框架
### 数据库
- **MySQL**: 8.0.33
- **H2**: 开发环境数据库
### 其他依赖
- **Lombok**: 代码生成
- **MapStruct**: 对象映射
- **wu-framework-web**: Web 容器
- **wu-authorization-server-platform-starter**: 用户授权体系
## 🚀 快速开始
### 环境要求
- **操作系统**: Windows、Mac、Linux
- **Java**: JDK 13+ (推荐 JDK 24)
- **内存**: 最小 512MB推荐 1GB+
- **网络**: 需要公网 IP服务端
### Docker 部署
#### 1. 启动服务端
```bash
docker run -d -it -p 6001:6001 -p 7001:7001 -p 8001:8001 -p 9001:9001 \
--name wlcn-server \
registry.cn-hangzhou.aliyuncs.com/wu-lazy/wu-lazy-cloud-heartbeat-server:1.3.1-JDK24
```
**端口说明**:
- `6001`: Web 管理界面
- `7001`: TCP 连接端口
- `8001`: HTTP 代理端口
- `9001`: SOCKS 代理端口
#### 2. 启动客户端
```bash
docker run -d -it --privileged -p 6004:6004 \
--name wlcn-client \
--restart=always \
-e spring.lazy.netty.client.inet-host=YOUR_SERVER_IP \
-e spring.lazy.netty.client.inet-port=7001 \
-e spring.lazy.netty.client.client-id="your-client-id" \
registry.cn-hangzhou.aliyuncs.com/wu-lazy/wu-lazy-cloud-heartbeat-client-start:1.3.1-JDK24
```
**环境变量说明**:
- `spring.lazy.netty.client.inet-host`: 服务端 IP 地址
- `spring.lazy.netty.client.inet-port`: 服务端 TCP 端口
- `spring.lazy.netty.client.client-id`: 客户端唯一标识
### 源码部署
#### 1. 克隆项目
```bash
git clone https://gitee.com/wujiawei1207537021/wu-lazy-cloud-network.git
cd wu-lazy-cloud-network
```
#### 2. 编译项目
```bash
mvn clean package -DskipTests
```
#### 3. 启动服务端
```bash
cd wu-lazy-cloud-heartbeat-start/wu-lazy-cloud-heartbeat-server-start
java -jar target/wu-lazy-cloud-heartbeat-server-start-1.3.1-JDK24.jar
```
#### 4. 启动客户端
```bash
cd wu-lazy-cloud-heartbeat-start/wu-lazy-cloud-heartbeat-client-start
java -jar target/wu-lazy-cloud-heartbeat-client-start-1.3.1-JDK24.jar
```
## 📖 使用指南
### Web 管理界面
#### 1. 访问管理界面
- **服务端**: http://127.0.0.1:6001/netty-server-ui/index.html
- **客户端**: http://127.0.0.1:6004/netty-client-local-ui/index.html
#### 2. 初始配置
1. **登录系统**
- 默认账号: `admin`
- 默认密码: `admin`
2. **初始化项目**
- 添加角色
- 为用户授权
- 配置客户端映射
### 内网穿透配置
#### 服务端渗透客户端(内网穿透)
1. **配置端口池**
- 在服务端管理界面配置需要开放的端口
2. **配置客户端映射**
- 设置访客端口与客户端真实端口的映射关系
- 例如:访客端口 19080 → 客户端本地端口 18080
#### 客户端渗透服务端
1. **配置客户端端口池**
- 在客户端管理界面配置本地端口池
2. **配置渗透映射**
- 设置本地端口到远程端口的映射关系
### 代理功能使用
#### HTTP 代理
1. **获取代理信息**
- 服务端: `127.0.0.1:8001`
- 客户端: `127.0.0.1:8002`
2. **配置代理**
- 在系统设置中配置 HTTP 代理
- 或使用第三方代理软件
#### SOCKS 代理
1. **获取代理信息**
- 服务端: `127.0.0.1:9001`
- 客户端: `127.0.0.1:9002`
2. **使用代理软件**
- 推荐使用 Proxifier 等专业代理软件
- 支持全局代理和应用程序代理
### 路由管理
#### 虚拟路由
1. **创建虚拟 IP**
- 在路由管理界面创建虚拟 IP 地址
- 配置代理目标 IP 和端口
2. **应用路由规则**
- 系统会自动将虚拟 IP 的流量代理到目标地址
## 🔍 功能详解
### 网络穿透模式
#### 1. 服务端渗透客户端
- **用途**: 将内网服务暴露到公网
- **场景**: 远程访问内网 Web 服务、数据库等
- **配置**: 在服务端配置访客端口与客户端端口的映射
#### 2. 服务端渗透服务端
- **用途**: 同局域网内端口映射
- **场景**: 在同一网络环境下的服务间通信
- **配置**: 配置服务端端口池和映射关系
#### 3. 客户端渗透服务端
- **用途**: 本地端口映射到远程服务端端口
- **场景**: 访问远程服务器上的服务
- **配置**: 在客户端配置本地端口到远程端口的映射
#### 4. 客户端渗透客户端
- **用途**: 不同网络间的端口映射
- **场景**: 异地组网,跨网络访问
- **配置**: 配置两个客户端之间的端口映射
### 代理功能
#### HTTP 代理
- 支持 HTTP/HTTPS 协议代理
- 可配置代理认证
- 支持流量监控
#### SOCKS 代理
- 支持 SOCKS4/SOCKS5 协议
- 支持 TCP/UDP 代理
- 可配置认证机制
### 流量监控
#### 实时监控
- 监控每个客户端的流量使用情况
- 支持按端口统计流量
- 提供流量趋势图表
#### 报表功能
- 日流量统计报表
- 客户端流量排行
- 端口使用情况分析
## ⚙️ 配置说明
### 服务端配置
```yaml
spring:
lazy:
netty:
server:
mode: standalone # 模式standalone/cluster
node-id: default # 节点ID
node-host: 127.0.0.1 # 节点主机
node-port: 7001 # 节点端口
enable-flow-control: true # 启用流量控制
enable-token-verification: false # 启用Token验证
tcp:
port: 7001 # TCP端口
udp:
port: 7001 # UDP端口
```
### 客户端配置
```yaml
spring:
lazy:
netty:
client:
client-id: your-client-id # 客户端ID
inet-host: 127.0.0.1 # 服务端地址
inet-port: 7001 # 服务端端口
enable: true # 启用客户端连接
```
### 代理配置
```yaml
spring:
lazy:
netty:
protocol:
proxy:
authentication: true # 启用代理认证
enable-proxy-log: false # 启用代理日志
socket-protocol-proxy:
port: 9001 # SOCKS代理端口
http-protocol-proxy:
port: 8001 # HTTP代理端口
```
## 🔧 开发指南
### 项目结构
```
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模块
├── wu-lazy-cloud-heartbeat-protocol-proxy/ # 代理协议模块
└── 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. 通道Channel
- **心跳通道**: 客户端与服务端建立的持久连接
- **访客通道**: 外部访问者建立的连接
- **真实通道**: 客户端本地服务的连接
#### 2. 渗透Permeate
- **服务端渗透**: 由服务端发起的网络穿透
- **客户端渗透**: 由客户端发起的网络穿透
#### 3. 代理Proxy
- **HTTP代理**: 基于HTTP协议的代理服务
- **SOCKS代理**: 基于SOCKS协议的代理服务
### 扩展开发
#### 自定义协议
1. 实现 `NettyMsg` 接口
2. 注册到协议处理器
3. 配置协议路由
#### 自定义过滤器
1. 继承 `NettyFilter` 接口
2. 实现过滤逻辑
3. 注册到过滤器链
## 🐛 故障排除
### 常见问题
#### 1. 客户端连接失败
- **检查网络**: 确保客户端能访问服务端
- **检查端口**: 确认服务端端口已开放
- **检查配置**: 验证客户端配置参数
#### 2. 内网穿透不工作
- **检查映射**: 确认端口映射配置正确
- **检查服务**: 确认目标服务正在运行
- **检查防火墙**: 确认防火墙规则允许
#### 3. 代理连接失败
- **检查代理配置**: 确认代理地址和端口正确
- **检查认证**: 确认代理认证信息正确
- **检查网络**: 确认网络连接正常
### 日志分析
#### 服务端日志
```bash
# 查看服务端日志
docker logs wlcn-server
# 查看详细日志
docker logs wlcn-server --tail 100 -f
```
#### 客户端日志
```bash
# 查看客户端日志
docker logs wlcn-client
# 查看详细日志
docker logs wlcn-client --tail 100 -f
```
## 📈 性能优化
### 系统调优
#### 1. 网络缓冲区优化
```bash
# Linux系统
sudo sysctl -w net.core.rmem_default=4194304
sudo sysctl -w net.core.rmem_max=4194304
sudo sysctl -w net.core.wmem_default=4194304
sudo sysctl -w net.core.wmem_max=4194304
```
#### 2. JVM 参数优化
```bash
# 生产环境推荐配置
-Xms2g -Xmx4g -XX:+UseG1GC -XX:MaxGCPauseMillis=200
```
#### 3. 连接池优化
- 调整 Netty 连接池大小
- 优化线程池配置
- 调整缓冲区大小
### 监控指标
#### 1. 系统监控
- CPU 使用率
- 内存使用率
- 网络 I/O
#### 2. 应用监控
- 连接数
- 流量统计
- 响应时间
## 🔒 安全说明
### 认证机制
- 支持 Token 认证
- 支持 AppKey/AppSecret 认证
- 支持代理认证
### 网络安全
- 支持 SSL/TLS 加密
- 支持流量加密传输
- 支持访问控制
### 数据安全
- 敏感信息加密存储
- 支持数据备份
- 支持审计日志
## 📞 技术支持
### 联系方式
- **作者**: 吴佳伟 (Jia Wei Wu)
- **邮箱**: 1207537021@qq.com
- **项目地址**:
- [Gitee](https://gitee.com/wujiawei1207537021/wu-lazy-cloud-network)
- [GitHub](https://github.com/wujiawei1207537021/wu-lazy-cloud-network)
### 社区支持
- **Issues**: 通过 Git 平台提交问题
- **讨论**: 参与项目讨论
- **贡献**: 欢迎提交 Pull Request
## 📄 许可证
本项目采用 [Apache License 2.0](LICENSE) 许可证。
---
**版本**: 1.3.1-JDK24
**更新时间**: 2024年
**维护者**: 吴佳伟