diff --git a/NetworkPermeate1.0.puml b/NetworkPermeate1.0.puml new file mode 100644 index 00000000..81b36c87 --- /dev/null +++ b/NetworkPermeate1.0.puml @@ -0,0 +1,140 @@ + + +@startuml + +title 服务端渗透客户端 + +actor 访客 as User + +package "服务端(公网)"{ + component [服务端开放端口]{ + [默认UI页面端口:6001] + [默认tcp端口:7001] as tcp + [开放给客户端访问的端口:13306] + } + +} + +package "客户端(私有网络)"{ + + component [客户端端口]{ + [默认UI页面端口:6004] + } + + database "客户端所在网络中的mysql:3306" as target { + } +} + +[User] ...right...> [开放给客户端访问的端口:13306]: 发送请求到 http://ip:13306 +[开放给客户端访问的端口:13306] ...down...> [target]: 发送真实二进制请求到真实服务 + +note "无法直接访问" as N2 +(User) .... N2 +N2 ... (target) + +@enduml + + +@startuml + +title 服务端渗透服务端 + +actor 访客 as User + +package "服务端(局域网)"{ + component [服务端开放端口]{ + [默认UI页面端口:6001] + [默认tcp端口:7001] as tcp + [开放给服务端访问的端口:13306] + } + database "服务端所在网络中的mysql:3306" as target { + } +} + + +[User] ...right...> [开放给服务端访问的端口:13306]: 发送请求到 http://ip:13306 +[开放给服务端访问的端口:13306] ...down...> [target]: 发送真实二进制请求到真实服务 + +note "无法直接访问" as N2 +(User) .. N2 +N2 .. (target) + + +@enduml + +@startuml + +title 客户端渗透服务端 + +actor 访客 as User + +package "服务端(公网)"{ + component [服务端开放端口]{ + [默认UI页面端口:6001] + [默认tcp端口:7001] as tcp + } + + database "服务端所在网络中的mysql:3306" as target { + } + +} + +package "客户端(私有网络)"{ + + component [客户端端口]{ + [默认UI页面端口:6004] + [客户端开放端口:13306] + } + + +} + +[User] ...right...> [客户端开放端口:13306]: 发送请求到 http://ip:13306 +[客户端开放端口:13306] ...up...> [target]: 发送真实二进制请求到真实服务 + +note "无法直接访问" as N2 +(User) ...up... N2 +N2 ...up.. (target) + +@enduml + +@startuml + +title 客户端渗透客户端 + +actor 访客杭州 as User + +package "服务端(公网)" as server{ + component [服务端开放端口]{ + [默认UI页面端口:6001] + [默认tcp端口:7001] as tcp + } +} + +package "客户端(私有网络--杭州)" as client_hangzhou{ + + component [客户端端口]{ + [默认UI页面端口:6004] + [客户端开放端口:13306] + } +} + +package "客户端(私有网络--上海)" as client_shanghai{ + component [上海客户端端口]{ + [上海默认UI页面端口:6004] + } + database "服务端所在网络中的mysql:3306" as target { + } +} + +server ...down...> client_hangzhou +server <...right... client_shanghai + +[User] ...right...> [客户端开放端口:13306]: 发送请求到 http://ip:13306 +[客户端开放端口:13306] ...up...> [target]: 发送真实二进制请求到真实服务 + +note "无法直接访问" as N2 +(User) ...up... N2 +N2 ...up.. (target) + +@enduml \ No newline at end of file diff --git a/NetworkPermeateClientPermeateClient.png b/NetworkPermeateClientPermeateClient.png new file mode 100644 index 00000000..c5342b0b Binary files /dev/null and b/NetworkPermeateClientPermeateClient.png differ diff --git a/NetworkPermeateClientPermeateServer.png b/NetworkPermeateClientPermeateServer.png new file mode 100644 index 00000000..eeffe5e5 Binary files /dev/null and b/NetworkPermeateClientPermeateServer.png differ diff --git a/NetworkPermeateServerPermeateClient.png b/NetworkPermeateServerPermeateClient.png new file mode 100644 index 00000000..f45f3e52 Binary files /dev/null and b/NetworkPermeateServerPermeateClient.png differ diff --git a/NetworkPermeateServerPermeateServer.png b/NetworkPermeateServerPermeateServer.png new file mode 100644 index 00000000..26a7ac76 Binary files /dev/null and b/NetworkPermeateServerPermeateServer.png differ diff --git a/README.md b/README.md index 33e86b0c..187d7fb3 100644 --- a/README.md +++ b/README.md @@ -33,8 +33,17 @@ wu-lazy-cloud-network 是一款基于([wu-framework-parent](https://gitee.com/wujiawei1207537021/wu-framework-parent))孵化出的项目,内部使用Lazy -ORM操作数据库,主要功能是网络穿透,对于没有公网IP的服务进行公网IP映射 -使用环境JDK17 Spring Boot 3.0.2 +ORM操作数据库,使用环境JDK17 Spring Boot 3.0.2。 +主要功能: +- 服务端渗透客户端(网络穿透),对于没有公网IP的服务进行公网IP映射 +- ![NetworkPermeateServerPermeateClient.png](NetworkPermeateServerPermeateClient.png) +- 服务端渗透服务端----本地同局域网内端口映射 +- ![NetworkPermeateServerPermeateServer.png](NetworkPermeateServerPermeateServer.png) +- 客户端渗透服务端----本地端口映射到另一个服务端中的局域网端口 +- ![NetworkPermeateClientPermeateServer.png](NetworkPermeateClientPermeateServer.png) +- 客户端渗透客户端----本地端口映射到另一个局域网端口 +- ![NetworkPermeateClientPermeateClient.png](NetworkPermeateClientPermeateClient.png) + [UI](https://gitee.com/wujiawei1207537021/wu-lazy-cloud-network-server-ui) @@ -249,24 +258,23 @@ public class NettyClientSocket { ### 项目结构 -| 模块 | 版本 | 描述 | -|-----------------------------------------------------------------------------------------------------------------------------------------|----------------------|------------------------------| -| [wu-lazy-cloud-heartbeat-common](wu-lazy-cloud-heartbeat-common) | 1.2.7-JDK17-SNAPSHOT | 内网穿透公共模块(声明接口、枚举、常量、适配器、解析器) | -| [wu-lazy-cloud-heartbeat-client](wu-lazy-cloud-heartbeat-client) | 1.2.7-JDK17-SNAPSHOT | 客户端(支持二次开发) | -| [wu-lazy-cloud-heartbeat-server](wu-lazy-cloud-heartbeat-server) | 1.2.7-JDK17-SNAPSHOT | 服务端(支持二次开发) | -| [wu-lazy-cloud-network-ui](wu-lazy-cloud-heartbeat-server-ui) | 1.2.7-JDK17-SNAPSHOT | 服务端页面 | -| [wu-lazy-cloud-heartbeat-client-start](wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-client-sample) | 1.2.7-JDK17-SNAPSHOT | 客户端样例 | -| [wu-lazy-cloud-heartbeat-server-start](wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample) | 1.2.7-JDK17-SNAPSHOT | 服务端样例 | +| 模块 | 版本 | 描述 | +|------------------------------------------------------------------------------------------------------------|----------------------|------------------------------| +| [wu-lazy-cloud-heartbeat-common](wu-lazy-cloud-heartbeat-common) | 1.2.8-JDK17-SNAPSHOT | 内网穿透公共模块(声明接口、枚举、常量、适配器、解析器) | +| [wu-lazy-cloud-heartbeat-client](wu-lazy-cloud-heartbeat-client) | 1.2.8-JDK17-SNAPSHOT | 客户端(支持二次开发) | +| [wu-lazy-cloud-heartbeat-server](wu-lazy-cloud-heartbeat-server) | 1.2.8-JDK17-SNAPSHOT | 服务端(支持二次开发) | +| [wu-lazy-cloud-heartbeat-client-start](wu-lazy-cloud-heartbeat-start/wu-lazy-cloud-heartbeat-server-start) | 1.2.8-JDK17-SNAPSHOT | 客户端样例 | +| [wu-lazy-cloud-heartbeat-server-start](wu-lazy-cloud-heartbeat-start/wu-lazy-cloud-heartbeat-client-start) | 1.2.8-JDK17-SNAPSHOT | 服务端样例 | ### 使用技术 | 框架 | 版本 | 描述 | |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------|--------------| | spring-boot | 3.0.7 | springboot框架 | -| [wu-framework-web](https://gitee.com/wujiawei1207537021/wu-framework-parent/tree/master/wu-framework-web) | 1.2.7-JDK17-SNAPSHOT | web容器 | -| [Lazy -ORM](https://gitee.com/wujiawei1207537021/wu-framework-parent/tree/master/wu-inner-intergration/wu-database-parent) | 1.2.7-JDK17-SNAPSHOT | ORM | +| [wu-framework-web](https://gitee.com/wujiawei1207537021/wu-framework-parent/tree/master/wu-framework-web) | 1.2.8-JDK17-SNAPSHOT | web容器 | +| [Lazy -ORM](https://gitee.com/wujiawei1207537021/wu-framework-parent/tree/master/wu-inner-intergration/wu-database-parent) | 1.2.8-JDK17-SNAPSHOT | ORM | | mysql-connector-j | 8.0.33 | mysql驱动 | -| [wu-authorization-server-platform-starter](https://gitee.com/wujiawei1207537021/wu-framework-parent/tree/master/wu-smart-platform/wu-authorization-server-platform-starter) | 1.2.7-JDK17-SNAPSHOT | 用户授权体系 | +| [wu-authorization-server-platform-starter](https://gitee.com/wujiawei1207537021/wu-framework-parent/tree/master/wu-smart-platform/wu-authorization-server-platform-starter) | 1.2.8-JDK17-SNAPSHOT | 用户授权体系 | ### 使用环境 @@ -279,7 +287,7 @@ public class NettyClientSocket { docker启动 - docker run -d -it -p 18080:18080 --name wu-lazy-cloud-heartbeat-server registry.cn-hangzhou.aliyuncs.com/wu-lazy/wu-lazy-cloud-heartbeat-server:1.2.7-JDK17-SNAPSHOT + docker run -d -it -p 18080:18080 --name wu-lazy-cloud-heartbeat-server registry.cn-hangzhou.aliyuncs.com/wu-lazy/wu-lazy-cloud-heartbeat-server:1.2.8-JDK17-SNAPSHOT http://127.0.0.1:18080/swagger-ui/index.html @@ -288,15 +296,15 @@ public class NettyClientSocket { #### 页面操作 启动项目后打开服务端界面 -![img.png](url_info.png) +![url_info.png](url_info.png) 默认账号密码:admin/admin -![img.png](login.png) +![login.png](login.png) 初始化项目 -![img.png](init_menu.png) +![init_menu.png](init_menu.png) 添加角色 -![img.png](init_role.png) +![init_role.png](init_role.png) 为用户授权 ![img.png](authRoe2User.png) @@ -306,12 +314,26 @@ public class NettyClientSocket { 客户端管理(客户端会自动注册) ![img.png](cloud_client.png) -网络映射管理(修改后者新增需要映射的客户端) -![img.png](mapping.png) +## 服务端渗透 +- 服务端口池管理(服务器端需要开放的端口) + ![server_permeate_port_pool.png](server_permeate_port_pool.png) -访客端口池管理(服务器端需要开放的端口) -![img.png](visitor_port.png) +- 服务端渗透客户端(内网穿透)(修改后者新增需要映射的客户端) +![server_permeate_client_mapping.png](server_permeate_client_mapping.png) +- 服务端渗透服务端 +![server_permeate_server_mapping.png](server_permeate_server_mapping.png) + +## 客户端渗透 +- 客户端渗透端口池管理 +![client_permeate_port_pool.png](client_permeate_port_pool.png) + +- 客户端渗透客户端 +![client_permeate_client_mapping.png](client_permeate_client_mapping.png) +- 客户端渗透服务端 +![client_permeate_server_mapping.png](client_permeate_server_mapping.png) + +## 报表 流量管理(每个客户端使用的流量) ![img.png](flow.png) diff --git a/client_permeate_client_mapping.png b/client_permeate_client_mapping.png new file mode 100644 index 00000000..663f2214 Binary files /dev/null and b/client_permeate_client_mapping.png differ diff --git a/client_permeate_port_pool.png b/client_permeate_port_pool.png new file mode 100644 index 00000000..5b9f6750 Binary files /dev/null and b/client_permeate_port_pool.png differ diff --git a/client_permeate_server_mapping.png b/client_permeate_server_mapping.png new file mode 100644 index 00000000..2436b941 Binary files /dev/null and b/client_permeate_server_mapping.png differ diff --git a/cloud_client.png b/cloud_client.png index 09010141..4e7ff848 100644 Binary files a/cloud_client.png and b/cloud_client.png differ diff --git a/init_role.png b/init_role.png index c80615da..784ac212 100644 Binary files a/init_role.png and b/init_role.png differ diff --git a/mapping.png b/mapping.png deleted file mode 100644 index c8977bcf..00000000 Binary files a/mapping.png and /dev/null differ diff --git a/server_permeate_client_mapping.png b/server_permeate_client_mapping.png new file mode 100644 index 00000000..ae718890 Binary files /dev/null and b/server_permeate_client_mapping.png differ diff --git a/server_permeate_port_pool.png b/server_permeate_port_pool.png new file mode 100644 index 00000000..e237e646 Binary files /dev/null and b/server_permeate_port_pool.png differ diff --git a/server_permeate_server_mapping.png b/server_permeate_server_mapping.png new file mode 100644 index 00000000..28046969 Binary files /dev/null and b/server_permeate_server_mapping.png differ diff --git a/url_info.png b/url_info.png index 9a805eba..81088443 100644 Binary files a/url_info.png and b/url_info.png differ diff --git a/version.md b/version.md index 40c28bed..c56a8ba5 100644 --- a/version.md +++ b/version.md @@ -19,4 +19,10 @@ sudo sysctl -w net.core.wmem_default=4194304 sudo sysctl -w net.core.wmem_max=4194304 [fix] 修复下线客户端、删除映射无法刷新问题 -#### 下一版本计划内网渗透 \ No newline at end of file +#### 1.2.8-JDK17-SNAPSHOT + [change] 原《内网穿透》更改为服务端渗透客户端 + [change] 新增服务端渗透服务端----本地同局域网内端口映射 + [change] 新增客户端渗透服务端----本地端口映射到另一个服务端中的局域网端口 + [change] 新增客户端渗透客户端----本地端口映射到另一个局域网端口 + +#### 下一版本计划https \ No newline at end of file