mirror of
https://gitee.com/wujiawei1207537021/wu-lazy-cloud-network.git
synced 2026-02-04 15:05:54 +08:00
[update] 添加文档
This commit is contained in:
452
项目说明文档.md
Normal file
452
项目说明文档.md
Normal 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年
|
||||
**维护者**: 吴佳伟
|
||||
Reference in New Issue
Block a user