mirror of
https://gitee.com/wujiawei1207537021/wu-lazy-cloud-network.git
synced 2026-02-04 06:55:52 +08:00
357 lines
10 KiB
Markdown
357 lines
10 KiB
Markdown
# Wu-Lazy-Cloud-Network 项目总结
|
|
|
|
## 📋 项目概述
|
|
|
|
**Wu-Lazy-Cloud-Network (WLCN)** 是一款基于 Spring Boot 3.5.0 和 JDK 24 开发的高性能网络穿透和代理工具。该项目采用模块化设计,支持多种网络协议,提供完整的内网穿透、网络代理、流量监控等功能。
|
|
|
|
## 🎯 项目特点
|
|
|
|
### 1. 高性能架构
|
|
- **基于 Netty**: 采用 Netty 异步非阻塞 I/O 框架,支持高并发连接
|
|
- **多协议支持**: 支持 TCP、HTTP、SOCKS 等多种协议
|
|
- **连接池管理**: 智能连接池,提高资源利用率
|
|
- **流量控制**: 内置流量控制机制,防止系统过载
|
|
|
|
### 2. 模块化设计
|
|
- **松耦合架构**: 各模块独立,便于维护和扩展
|
|
- **插件化支持**: 支持自定义协议和过滤器插件
|
|
- **配置灵活**: 支持多种配置方式,适应不同部署环境
|
|
|
|
### 3. 功能完整
|
|
- **内网穿透**: 支持多种穿透模式,满足不同场景需求
|
|
- **网络代理**: 提供 HTTP 和 SOCKS 代理服务
|
|
- **流量监控**: 实时监控网络流量,提供详细统计报表
|
|
- **路由管理**: 支持虚拟路由,实现灵活的网络配置
|
|
|
|
### 4. 安全可靠
|
|
- **多重认证**: 支持 Token、AppKey/AppSecret 等多种认证方式
|
|
- **流量加密**: 支持 SSL/TLS 加密传输
|
|
- **访问控制**: 基于角色的权限控制
|
|
- **审计日志**: 完整的操作日志记录
|
|
|
|
## 🔧 技术亮点
|
|
|
|
### 1. 网络通信架构
|
|
|
|
#### 心跳机制
|
|
```java
|
|
/**
|
|
* 客户端与服务端保持长连接的心跳机制
|
|
* 通过定时发送心跳包,检测连接状态
|
|
*/
|
|
public class HeartbeatManager {
|
|
private final ScheduledExecutorService scheduler;
|
|
private final Channel channel;
|
|
|
|
public void startHeartbeat() {
|
|
scheduler.scheduleAtFixedRate(() -> {
|
|
if (channel.isActive()) {
|
|
channel.writeAndFlush(createHeartbeatMessage());
|
|
}
|
|
}, 0, 30, TimeUnit.SECONDS);
|
|
}
|
|
}
|
|
```
|
|
|
|
#### 通道管理
|
|
```java
|
|
/**
|
|
* 智能通道管理,支持多种通道类型
|
|
* 包括心跳通道、访客通道、真实通道等
|
|
*/
|
|
public class ChannelManager {
|
|
private final Map<String, ChannelContext> channelMap;
|
|
|
|
public void registerChannel(String id, ChannelContext context) {
|
|
channelMap.put(id, context);
|
|
}
|
|
|
|
public ChannelContext getChannel(String id) {
|
|
return channelMap.get(id);
|
|
}
|
|
}
|
|
```
|
|
|
|
### 2. 协议处理
|
|
|
|
#### 协议适配器
|
|
```java
|
|
/**
|
|
* 协议适配器,支持多种协议的统一处理
|
|
*/
|
|
public interface ProtocolAdapter {
|
|
void handle(Channel channel, Object message);
|
|
boolean supports(ProtocolType type);
|
|
}
|
|
|
|
@Component
|
|
public class HttpProtocolAdapter implements ProtocolAdapter {
|
|
@Override
|
|
public void handle(Channel channel, Object message) {
|
|
// HTTP 协议处理逻辑
|
|
}
|
|
|
|
@Override
|
|
public boolean supports(ProtocolType type) {
|
|
return type == ProtocolType.HTTP;
|
|
}
|
|
}
|
|
```
|
|
|
|
#### 过滤器链
|
|
```java
|
|
/**
|
|
* 过滤器链,支持请求的链式处理
|
|
*/
|
|
public class FilterChain {
|
|
private final List<NettyFilter> filters;
|
|
|
|
public void doFilter(Channel channel, Object message) {
|
|
for (NettyFilter filter : filters) {
|
|
if (!filter.filter(channel, message)) {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### 3. 数据持久化
|
|
|
|
#### Lazy ORM 集成
|
|
```java
|
|
/**
|
|
* 基于 Lazy ORM 的数据访问层
|
|
* 提供类型安全的数据库操作
|
|
*/
|
|
@Repository
|
|
public class ClientRepository {
|
|
|
|
public List<LazyNettyClient> findOnlineClients() {
|
|
return lazyLambdaStream.findList(LazyNettyClient.class)
|
|
.where(LazyNettyClient::getIsDeleted, false)
|
|
.where(LazyNettyClient::getIsOnline, true)
|
|
.getData();
|
|
}
|
|
}
|
|
```
|
|
|
|
#### 流量统计
|
|
```java
|
|
/**
|
|
* 实时流量统计,支持按客户端、端口等维度统计
|
|
*/
|
|
@Component
|
|
public class FlowStatisticsService {
|
|
|
|
public void recordFlow(String clientId, int port, long uploadBytes, long downloadBytes) {
|
|
LazyNettyFlowStatistics statistics = new LazyNettyFlowStatistics();
|
|
statistics.setClientId(clientId);
|
|
statistics.setPort(port);
|
|
statistics.setUploadBytes(uploadBytes);
|
|
statistics.setDownloadBytes(downloadBytes);
|
|
statistics.setCreateTime(LocalDateTime.now());
|
|
|
|
lazyLambdaStream.save(statistics);
|
|
}
|
|
}
|
|
```
|
|
|
|
### 4. 监控和告警
|
|
|
|
#### 实时监控
|
|
```java
|
|
/**
|
|
* 实时监控系统状态
|
|
* 包括连接数、流量、响应时间等指标
|
|
*/
|
|
@Component
|
|
public class MonitoringService {
|
|
|
|
public void recordMetrics(String metricName, double value) {
|
|
// 记录监控指标
|
|
metricsRegistry.record(metricName, value);
|
|
}
|
|
|
|
public void checkAlerts() {
|
|
// 检查告警条件
|
|
if (getConnectionCount() > maxConnections) {
|
|
alertService.sendAlert("连接数超限");
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## 🚀 应用场景
|
|
|
|
### 1. 内网穿透
|
|
|
|
#### 远程办公
|
|
- **场景**: 员工在家访问公司内网资源
|
|
- **方案**: 通过服务端渗透客户端模式,将内网服务映射到公网
|
|
- **优势**: 安全可靠,支持多种协议
|
|
|
|
#### 开发调试
|
|
- **场景**: 开发人员需要远程调试内网服务
|
|
- **方案**: 使用客户端渗透服务端模式,实现远程端口映射
|
|
- **优势**: 配置简单,支持动态端口分配
|
|
|
|
### 2. 网络代理
|
|
|
|
#### 异地组网
|
|
- **场景**: 多个办公地点需要统一网络访问
|
|
- **方案**: 使用代理功能,实现异地网络互联
|
|
- **优势**: 支持 HTTP 和 SOCKS 代理,兼容性好
|
|
|
|
#### 网络加速
|
|
- **场景**: 需要优化网络访问速度
|
|
- **方案**: 通过代理服务器优化网络路径
|
|
- **优势**: 智能路由,自动选择最优路径
|
|
|
|
### 3. 流量监控
|
|
|
|
#### 网络审计
|
|
- **场景**: 需要监控网络使用情况
|
|
- **方案**: 利用内置流量监控功能
|
|
- **优势**: 实时监控,详细报表
|
|
|
|
#### 成本控制
|
|
- **场景**: 控制网络使用成本
|
|
- **方案**: 设置流量限制和告警
|
|
- **优势**: 精确控制,及时告警
|
|
|
|
## 📊 性能指标
|
|
|
|
### 1. 并发性能
|
|
- **最大连接数**: 10,000+ 并发连接
|
|
- **响应时间**: 平均 < 10ms
|
|
- **吞吐量**: 10,000+ 请求/秒
|
|
|
|
### 2. 资源使用
|
|
- **内存使用**: 512MB - 2GB (可配置)
|
|
- **CPU 使用**: 低负载,支持高并发
|
|
- **网络带宽**: 支持千兆网络
|
|
|
|
### 3. 可用性
|
|
- **系统稳定性**: 99.9% 可用性
|
|
- **故障恢复**: 自动故障转移
|
|
- **数据一致性**: 强一致性保证
|
|
|
|
## 🔄 版本演进
|
|
|
|
### 1.3.1-JDK24 (当前版本)
|
|
- **新增功能**: 代理流量监控
|
|
- **技术升级**: 升级到 JDK 24 和 Spring Boot 3.5.0
|
|
- **安全增强**: 添加 SOCKS 授权验证
|
|
|
|
### 1.3.1-JDK17
|
|
- **新增功能**: 代理流量监控
|
|
- **部署优化**: Docker 仓库上架
|
|
- **性能优化**: 优化网络传输性能
|
|
|
|
### 1.2.9-JDK17
|
|
- **安全增强**: 添加 AppKey/AppSecret 验证
|
|
- **功能优化**: 支持同一客户端 ID 多次注册
|
|
- **兼容性**: 大版本更新,协议不向下兼容
|
|
|
|
## 🛠️ 部署方案
|
|
|
|
### 1. 单机部署
|
|
- **适用场景**: 小规模使用,测试环境
|
|
- **部署方式**: Docker 或 JAR 包部署
|
|
- **资源配置**: 最小 1GB 内存
|
|
|
|
### 2. 集群部署
|
|
- **适用场景**: 大规模生产环境
|
|
- **部署方式**: 多节点集群部署
|
|
- **资源配置**: 每节点 2GB+ 内存
|
|
|
|
### 3. 云原生部署
|
|
- **适用场景**: 云环境部署
|
|
- **部署方式**: Kubernetes 部署
|
|
- **资源配置**: 弹性伸缩,按需分配
|
|
|
|
## 🔒 安全特性
|
|
|
|
### 1. 认证机制
|
|
- **Token 认证**: 基于 JWT 的 Token 认证
|
|
- **AppKey/AppSecret**: 客户端服务端认证
|
|
- **代理认证**: HTTP/SOCKS 代理认证
|
|
|
|
### 2. 网络安全
|
|
- **SSL/TLS 加密**: 支持 HTTPS 访问
|
|
- **流量加密**: 客户端服务端通信加密
|
|
- **防火墙友好**: 支持防火墙穿透
|
|
|
|
### 3. 数据安全
|
|
- **敏感信息加密**: 数据库敏感信息加密存储
|
|
- **访问日志**: 完整的操作审计日志
|
|
- **数据备份**: 支持配置数据备份
|
|
|
|
## 📈 未来规划
|
|
|
|
### 短期目标 (3-6个月)
|
|
- **性能优化**: 进一步提升并发性能
|
|
- **功能增强**: 添加更多协议支持
|
|
- **监控完善**: 增强监控和告警功能
|
|
|
|
### 中期目标 (6-12个月)
|
|
- **云原生**: 完善 Kubernetes 部署支持
|
|
- **API 网关**: 集成 API 网关功能
|
|
- **微服务**: 支持微服务架构
|
|
|
|
### 长期目标 (1-2年)
|
|
- **AI 集成**: 集成 AI 智能路由
|
|
- **边缘计算**: 支持边缘节点部署
|
|
- **生态建设**: 构建完整的生态系统
|
|
|
|
## 💡 技术贡献
|
|
|
|
### 1. 开源贡献
|
|
- **代码质量**: 遵循最佳实践,代码质量高
|
|
- **文档完善**: 提供详细的技术文档
|
|
- **社区活跃**: 积极参与开源社区
|
|
|
|
### 2. 技术创新
|
|
- **协议扩展**: 创新的协议扩展机制
|
|
- **架构设计**: 优秀的模块化架构设计
|
|
- **性能优化**: 高效的网络性能优化
|
|
|
|
### 3. 实用价值
|
|
- **解决痛点**: 解决内网穿透和网络代理的实际问题
|
|
- **易于使用**: 提供简单易用的 Web 界面
|
|
- **稳定可靠**: 经过生产环境验证
|
|
|
|
## 🎉 项目总结
|
|
|
|
Wu-Lazy-Cloud-Network 项目是一个技术先进、功能完整、实用价值高的网络工具。项目采用现代化的技术栈,具有良好的架构设计和代码质量,能够有效解决内网穿透、网络代理等实际问题。
|
|
|
|
### 项目优势
|
|
1. **技术先进**: 采用最新的 JDK 24 和 Spring Boot 3.5.0
|
|
2. **功能完整**: 提供内网穿透、代理、监控等完整功能
|
|
3. **性能优秀**: 基于 Netty 的高性能网络框架
|
|
4. **易于使用**: 提供友好的 Web 管理界面
|
|
5. **安全可靠**: 多重安全机制,生产环境验证
|
|
|
|
### 应用价值
|
|
1. **远程办公**: 支持安全的远程办公解决方案
|
|
2. **开发调试**: 提供便捷的远程开发调试工具
|
|
3. **网络优化**: 实现网络加速和优化
|
|
4. **监控审计**: 提供完整的网络监控和审计功能
|
|
|
|
### 发展前景
|
|
项目具有良好的发展前景,随着远程办公和云原生技术的普及,内网穿透和网络代理的需求将持续增长。项目将继续完善功能,提升性能,为用户提供更好的服务。
|
|
|
|
---
|
|
|
|
**项目地址**:
|
|
- [Gitee](https://gitee.com/wujiawei1207537021/wu-lazy-cloud-network)
|
|
- [GitHub](https://github.com/wujiawei1207537021/wu-lazy-cloud-network)
|
|
|
|
**联系方式**:
|
|
- **作者**: 吴佳伟 (Jia Wei Wu)
|
|
- **邮箱**: 1207537021@qq.com
|
|
|
|
**版本**: 1.3.1-JDK24
|
|
**更新时间**: 2024年
|
|
**维护者**: 吴佳伟 |