diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/config/HeartbeatClientConfiguration.java b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/config/HeartbeatClientConfiguration.java index 780da3c..b810b77 100644 --- a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/config/HeartbeatClientConfiguration.java +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/config/HeartbeatClientConfiguration.java @@ -75,8 +75,8 @@ public class HeartbeatClientConfiguration { } @Bean - public ClientHandleDistributeClientTransferClientResponseTypeAdvanced clientHandleDistributeClientTransferClientResponseTypeAdvanced() { - return new ClientHandleDistributeClientTransferClientResponseTypeAdvanced(); + public ClientHandleDistributeServicePermeateClientTransferClientResponseTypeAdvanced clientHandleDistributeClientTransferClientResponseTypeAdvanced() { + return new ClientHandleDistributeServicePermeateClientTransferClientResponseTypeAdvanced(); } @Bean public ClientHandleDistributeSingleClientRealCloseVisitorTypeAdvanced handleDistributeSingleClientRealCloseVisitorTypeAdvanced() { @@ -84,8 +84,8 @@ public class HeartbeatClientConfiguration { } @Bean - public ClientReportHandleChannelTransferTypeAdvancedHandleDistribute handleChannelTransferTypeAdvancedHandleDistribute(NettyClientProperties nettyClientProperties) { - return new ClientReportHandleChannelTransferTypeAdvancedHandleDistribute(nettyClientProperties); + public ClientHandleChannelTransferTypeAdvancedHandleDistributeDistribute handleChannelTransferTypeAdvancedHandleDistribute(NettyClientProperties nettyClientProperties) { + return new ClientHandleChannelTransferTypeAdvancedHandleDistributeDistribute(nettyClientProperties); } @Bean @@ -153,9 +153,13 @@ public class HeartbeatClientConfiguration { @Bean - public ClientHandleDistributeSingleClientRealConnectTypeAdvanced clientHandleDistributeSingleClientRealConnectTypeAdvanced(NettyClientProperties nettyClientProperties, - List handleChannelTypeAdvancedList) { - return new ClientHandleDistributeSingleClientRealConnectTypeAdvanced(nettyClientProperties, handleChannelTypeAdvancedList); + public ClientHandleDistributeServicePermeateClientRealConnectTypeAdvanced clientHandleDistributeSingleClientRealConnectTypeAdvanced(NettyClientProperties nettyClientProperties, + List handleChannelTypeAdvancedList) { + return new ClientHandleDistributeServicePermeateClientRealConnectTypeAdvanced(nettyClientProperties, handleChannelTypeAdvancedList); } + @Bean + public ClientHandleHandleDistributeClientPermeateServerTransferCloseTypeAdvanced clientHandleHandleDistributeClientPermeateServerTransferCloseTypeAdvanced() { + return new ClientHandleHandleDistributeClientPermeateServerTransferCloseTypeAdvanced(); + } } diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/InternalNetworkPermeateServerVisitor.java b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/InternalNetworkPermeateServerVisitor.java index f52a0b4..1c36617 100644 --- a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/InternalNetworkPermeateServerVisitor.java +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/InternalNetworkPermeateServerVisitor.java @@ -43,9 +43,4 @@ public class InternalNetworkPermeateServerVisitor implements InternalNetworkPerm */ private List handleChannelTypeAdvancedList; - - /** - * 访客ID - */ - private String visitorId; } diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientReportHandleChannelTransferTypeAdvancedHandleDistribute.java b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleChannelTransferTypeAdvancedHandleDistributeDistribute.java similarity index 83% rename from wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientReportHandleChannelTransferTypeAdvancedHandleDistribute.java rename to wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleChannelTransferTypeAdvancedHandleDistributeDistribute.java index 8ce6a1e..b4c009a 100644 --- a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientReportHandleChannelTransferTypeAdvancedHandleDistribute.java +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleChannelTransferTypeAdvancedHandleDistributeDistribute.java @@ -6,8 +6,7 @@ import io.netty.channel.Channel; import lombok.extern.slf4j.Slf4j; import org.framework.lazy.cloud.network.heartbeat.client.config.NettyClientProperties; import org.framework.lazy.cloud.network.heartbeat.common.NettyProxyMsg; -import org.framework.lazy.cloud.network.heartbeat.common.NettyRealIdContext; -import org.framework.lazy.cloud.network.heartbeat.common.advanced.client.AbstractHandleDistributeChannelTransferTypeAdvanced; +import org.framework.lazy.cloud.network.heartbeat.common.advanced.client.AbstractHandleDistributeServicePermeateClientTransferTypeAdvanced; import org.framework.lazy.cloud.network.heartbeat.common.enums.MessageTypeEnums; import org.framework.lazy.cloud.network.heartbeat.common.utils.ChannelAttributeKeyUtils; @@ -18,11 +17,11 @@ import org.framework.lazy.cloud.network.heartbeat.common.utils.ChannelAttributeK * @see MessageTypeEnums#DISTRIBUTE_CLIENT_TRANSFER */ @Slf4j -public class ClientReportHandleChannelTransferTypeAdvancedHandleDistribute extends AbstractHandleDistributeChannelTransferTypeAdvanced { +public class ClientHandleChannelTransferTypeAdvancedHandleDistributeDistribute extends AbstractHandleDistributeServicePermeateClientTransferTypeAdvanced { private final NettyClientProperties nettyClientProperties; - public ClientReportHandleChannelTransferTypeAdvancedHandleDistribute(NettyClientProperties nettyClientProperties) { + public ClientHandleChannelTransferTypeAdvancedHandleDistributeDistribute(NettyClientProperties nettyClientProperties) { this.nettyClientProperties = nettyClientProperties; } diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleDistributeClientPermeateServerInitTypeAdvanced.java b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleDistributeClientPermeateServerInitTypeAdvanced.java index 0e6c2f6..0fe8b2b 100644 --- a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleDistributeClientPermeateServerInitTypeAdvanced.java +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleDistributeClientPermeateServerInitTypeAdvanced.java @@ -47,16 +47,13 @@ public class ClientHandleDistributeClientPermeateServerInitTypeAdvanced extends byte[] clientTargetPort = nettyProxyMsg.getClientTargetPort(); List handleChannelTypeAdvancedList = new ArrayList<>(SpringContextHolder.getApplicationContext().getBeansOfType(HandleChannelTypeAdvanced.class).values()); -// ChannelFlowAdapter channelFlowAdapter = SpringContextHolder.getBean(ChannelFlowAdapter.class); NettyClientPermeateServerVisitorSocket nettyClientPermeateServerVisitorSocket = NettyClientPermeateServerVisitorSocket.NettyVisitorSocketBuilder.builder() .builderClientId(new String(clientIdBytes)) .builderClientTargetIp(new String(clientTargetIp)) .builderClientTargetPort(Integer.parseInt(new String(clientTargetPort))) .builderVisitorPort(Integer.parseInt(new String(visitorPort))) .builderNettyClientProperties(nettyClientProperties) -// .builderChannelFlowAdapter(channelFlowAdapter) .builderHandleChannelTypeAdvancedList(handleChannelTypeAdvancedList) - .build(); try { nettyClientPermeateServerVisitorSocket.start(); diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleDistributeClientTransferServerPermeateChannelConnectionSuccessfulTypeAdvanced.java b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleDistributeClientTransferServerPermeateChannelConnectionSuccessfulTypeAdvanced.java index 8c04546..9ed288e 100644 --- a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleDistributeClientTransferServerPermeateChannelConnectionSuccessfulTypeAdvanced.java +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleDistributeClientTransferServerPermeateChannelConnectionSuccessfulTypeAdvanced.java @@ -28,16 +28,15 @@ public class ClientHandleDistributeClientTransferServerPermeateChannelConnection /** * 处理当前数据 * - * @param channel 当前通道 + * @param transferChannel 当前通道 * @param nettyProxyMsg 通道数据 */ @Override - public void doHandler(Channel channel, NettyProxyMsg nettyProxyMsg) { + public void doHandler(Channel transferChannel, NettyProxyMsg nettyProxyMsg) { // 连接成功 开启自动读取写 byte[] msgVisitorId = nettyProxyMsg.getVisitorId(); String visitorId = new String(msgVisitorId); - Channel visitor = NettyRealIdContext.getReal(visitorId); - Channel nextChannel = ChannelAttributeKeyUtils.getNextChannel(channel); + Channel nextChannel = ChannelAttributeKeyUtils.getNextChannel(transferChannel); nextChannel.config().setOption(ChannelOption.AUTO_READ, true); } diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleDistributeSingleClientRealConnectTypeAdvanced.java b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleDistributeServicePermeateClientRealConnectTypeAdvanced.java similarity index 84% rename from wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleDistributeSingleClientRealConnectTypeAdvanced.java rename to wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleDistributeServicePermeateClientRealConnectTypeAdvanced.java index f3b2b2e..e00a853 100644 --- a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleDistributeSingleClientRealConnectTypeAdvanced.java +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleDistributeServicePermeateClientRealConnectTypeAdvanced.java @@ -7,7 +7,7 @@ import org.framework.lazy.cloud.network.heartbeat.client.netty.socket.NettyServe import org.framework.lazy.cloud.network.heartbeat.common.InternalNetworkPenetrationRealClient; import org.framework.lazy.cloud.network.heartbeat.common.NettyProxyMsg; import org.framework.lazy.cloud.network.heartbeat.common.advanced.HandleChannelTypeAdvanced; -import org.framework.lazy.cloud.network.heartbeat.common.advanced.client.AbstractHandleDistributeSingleClientRealConnectTypeAdvanced; +import org.framework.lazy.cloud.network.heartbeat.common.advanced.client.AbstractHandleDistributeServicePermeateClientRealConnectTypeAdvanced; import java.util.List; @@ -15,12 +15,12 @@ import java.util.List; * 客户端创建真实代理同奥 */ @Slf4j -public class ClientHandleDistributeSingleClientRealConnectTypeAdvanced extends AbstractHandleDistributeSingleClientRealConnectTypeAdvanced { +public class ClientHandleDistributeServicePermeateClientRealConnectTypeAdvanced extends AbstractHandleDistributeServicePermeateClientRealConnectTypeAdvanced { private final NettyClientProperties nettyClientProperties;// 服务端地址信息 private final List handleChannelTypeAdvancedList; - public ClientHandleDistributeSingleClientRealConnectTypeAdvanced(NettyClientProperties nettyClientProperties, List handleChannelTypeAdvancedList) { + public ClientHandleDistributeServicePermeateClientRealConnectTypeAdvanced(NettyClientProperties nettyClientProperties, List handleChannelTypeAdvancedList) { this.nettyClientProperties = nettyClientProperties; this.handleChannelTypeAdvancedList = handleChannelTypeAdvancedList; } diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleDistributeClientTransferClientResponseTypeAdvanced.java b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleDistributeServicePermeateClientTransferClientResponseTypeAdvanced.java similarity index 80% rename from wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleDistributeClientTransferClientResponseTypeAdvanced.java rename to wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleDistributeServicePermeateClientTransferClientResponseTypeAdvanced.java index 7f2aa5d..ce2939a 100644 --- a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleDistributeClientTransferClientResponseTypeAdvanced.java +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleDistributeServicePermeateClientTransferClientResponseTypeAdvanced.java @@ -5,7 +5,7 @@ import io.netty.buffer.ByteBuf; import io.netty.channel.Channel; import lombok.extern.slf4j.Slf4j; import org.framework.lazy.cloud.network.heartbeat.common.NettyProxyMsg; -import org.framework.lazy.cloud.network.heartbeat.common.advanced.client.AbstractHandleDistributeClientTransferClientResponseTypeAdvanced; +import org.framework.lazy.cloud.network.heartbeat.common.advanced.client.AbstractHandleDistributeServicePermeateClientTransferClientResponseTypeAdvanced; import org.framework.lazy.cloud.network.heartbeat.common.enums.MessageTypeEnums; import org.framework.lazy.cloud.network.heartbeat.common.utils.ChannelAttributeKeyUtils; @@ -17,7 +17,7 @@ import org.framework.lazy.cloud.network.heartbeat.common.utils.ChannelAttributeK * @see MessageTypeEnums#DISTRIBUTE_CLIENT_PERMEATE_CLIENT_TRANSFER_RESPONSE */ @Slf4j -public class ClientHandleDistributeClientTransferClientResponseTypeAdvanced extends AbstractHandleDistributeClientTransferClientResponseTypeAdvanced { +public class ClientHandleDistributeServicePermeateClientTransferClientResponseTypeAdvanced extends AbstractHandleDistributeServicePermeateClientTransferClientResponseTypeAdvanced { diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleHandleDistributeClientPermeateServerTransferCloseTypeAdvanced.java b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleHandleDistributeClientPermeateServerTransferCloseTypeAdvanced.java new file mode 100644 index 0000000..879273d --- /dev/null +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/advanced/ClientHandleHandleDistributeClientPermeateServerTransferCloseTypeAdvanced.java @@ -0,0 +1,35 @@ +package org.framework.lazy.cloud.network.heartbeat.client.netty.advanced; + + +import io.netty.channel.Channel; +import lombok.extern.slf4j.Slf4j; +import org.framework.lazy.cloud.network.heartbeat.client.config.NettyClientProperties; +import org.framework.lazy.cloud.network.heartbeat.common.NettyProxyMsg; +import org.framework.lazy.cloud.network.heartbeat.common.advanced.client.AbstractHandleDistributeClientPermeateServerTransferCloseTypeAdvanced; +import org.framework.lazy.cloud.network.heartbeat.common.enums.MessageTypeEnums; +import org.framework.lazy.cloud.network.heartbeat.common.utils.ChannelAttributeKeyUtils; + + +/** + * 下发 客户端渗透服务端通信通道关闭 + * + * @see MessageTypeEnums#DISTRIBUTE_CLIENT_PERMEATE_SERVER_TRANSFER_CLOSE + */ +@Slf4j +public class ClientHandleHandleDistributeClientPermeateServerTransferCloseTypeAdvanced extends AbstractHandleDistributeClientPermeateServerTransferCloseTypeAdvanced { + + /** + * 处理当前数据 + * + * @param channel 当前通道 + * @param nettyProxyMsg 通道数据 + */ + @Override + public void doHandler(Channel channel, NettyProxyMsg nettyProxyMsg) { + // 关闭本地通信通道 + Channel nextChannel = ChannelAttributeKeyUtils.getNextChannel(channel); + channel.close(); + nextChannel.close(); + } + +} diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/filter/NettyClientPermeateClientRealFilter.java b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/filter/NettyClientPermeateClientRealFilter.java index c3f3e48..c622d9f 100644 --- a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/filter/NettyClientPermeateClientRealFilter.java +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/filter/NettyClientPermeateClientRealFilter.java @@ -4,7 +4,6 @@ import io.netty.channel.Channel; import io.netty.channel.ChannelPipeline; import io.netty.channel.socket.SocketChannel; import org.framework.lazy.cloud.network.heartbeat.client.netty.handler.NettyClientPermeateClientRealHandler; -import org.framework.lazy.cloud.network.heartbeat.client.netty.handler.NettyServerPermeateClientRealHandler; import org.framework.lazy.cloud.network.heartbeat.common.decoder.TransferDecoder; import org.framework.lazy.cloud.network.heartbeat.common.encoder.TransferEncoder; import org.framework.lazy.cloud.network.heartbeat.common.filter.DebugChannelInitializer; diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/handler/NettyClientPermeateServerVisitorHandler.java b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/handler/NettyClientPermeateServerVisitorHandler.java index 72265f7..fbdf3dc 100644 --- a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/handler/NettyClientPermeateServerVisitorHandler.java +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/handler/NettyClientPermeateServerVisitorHandler.java @@ -12,11 +12,8 @@ import org.framework.lazy.cloud.network.heartbeat.client.netty.InternalNetworkPe import org.framework.lazy.cloud.network.heartbeat.client.netty.advanced.ClientHandleDistributeClientTransferServerPermeateChannelConnectionSuccessfulTypeAdvanced; import org.framework.lazy.cloud.network.heartbeat.client.netty.socket.NettyClientPermeateServerVisitorTransferSocket; import org.framework.lazy.cloud.network.heartbeat.common.MessageType; -import org.framework.lazy.cloud.network.heartbeat.common.NettyCommunicationIdContext; import org.framework.lazy.cloud.network.heartbeat.common.NettyProxyMsg; -import org.framework.lazy.cloud.network.heartbeat.common.NettyRealIdContext; import org.framework.lazy.cloud.network.heartbeat.common.utils.ChannelAttributeKeyUtils; -import org.wu.framework.core.utils.ObjectUtils; import java.util.UUID; @@ -44,13 +41,14 @@ public class NettyClientPermeateServerVisitorHandler extends SimpleChannelInboun // 生成访客ID String visitorId = UUID.randomUUID().toString(); + + log.info("this channel{} use visitorId:{}", visitorChannel.id().asLongText(), visitorId); ChannelAttributeKeyUtils.buildVisitorId(visitorChannel, visitorId); - internalNetworkPermeateServerVisitor.setVisitorId(visitorId); // 判断是否有可用的通道 如果没有创建新的通道 // Channel transferChannel = nettyChannelPool.availableChannel(visitorId); // 创建访客连接服务端通道 NettyClientPermeateServerVisitorTransferSocket.buildTransferServer(internalNetworkPermeateServerVisitor,visitorChannel); - log.debug("客户端渗透服务端访客端口连接成功了"); + log.info("客户端渗透服务端访客端口连接成功了,访客ID:{}", visitorId); super.channelActive(ctx); } @@ -65,7 +63,7 @@ public class NettyClientPermeateServerVisitorHandler extends SimpleChannelInboun byte[] bytes = new byte[buf.readableBytes()]; buf.readBytes(bytes); // 获取客户端通道,而后进行数据下发 - log.debug("【客户端渗透服务端】访客端口成功接收数据:{}", new String(bytes)); + log.info("【客户端渗透服务端】访客端口成功接收数据:{}", new String(bytes)); // 使用访客的通信通道 Integer visitorPort = internalNetworkPermeateServerVisitor.getVisitorPort(); @@ -78,14 +76,14 @@ public class NettyClientPermeateServerVisitorHandler extends SimpleChannelInboun nettyProxyMsg.setData(bytes); nextChannel.writeAndFlush(nettyProxyMsg); // 处理访客流量 - log.debug("【客户端渗透服务端】访客端口成功发送数据了"); + log.info("【客户端渗透服务端】访客端口成功发送数据了 访客ID:{}", visitorId); } @Override public void channelInactive(ChannelHandlerContext ctx) throws Exception { Channel channel = ctx.channel(); String visitorId = ChannelAttributeKeyUtils.getVisitorId(channel); - String clientId = ChannelAttributeKeyUtils.getClientId(channel); + log.info("channel inactive:{}", visitorId); if (StringUtil.isNullOrEmpty(visitorId)) { super.channelInactive(ctx); return; @@ -102,7 +100,12 @@ public class NettyClientPermeateServerVisitorHandler extends SimpleChannelInboun myMsg.setType(MessageType.REPORT_CLIENT_PERMEATE_SERVER_TRANSFER_CLOSE); myMsg.setVisitorId(visitorId); nextChannel.writeAndFlush(myMsg); + //通信通道 + nextChannel.close(); } + // 访客通道关闭 + channel.close(); + log.warn("【客户端渗透服务端】访客端口断开连接"); super.channelInactive(ctx); } @@ -111,10 +114,10 @@ public class NettyClientPermeateServerVisitorHandler extends SimpleChannelInboun public void channelWritabilityChanged(ChannelHandlerContext ctx) throws Exception { if (ctx.channel().isWritable()) { - log.debug("Channel is writable again"); + log.info("Channel is writable again"); // 恢复之前暂停的操作,如写入数据 } else { - log.debug("Channel is not writable"); + log.info("Channel is not writable"); // 暂停写入操作,等待可写状态 } log.info("channelWritabilityChanged!"); @@ -128,7 +131,6 @@ public class NettyClientPermeateServerVisitorHandler extends SimpleChannelInboun String clientId = ChannelAttributeKeyUtils.getClientId(channel); String visitorId = ChannelAttributeKeyUtils.getVisitorId(channel); // 使用通信通道 下发关闭访客 - Channel visitorChannel = NettyCommunicationIdContext.getVisitor(visitorId); Channel nextChannel = ChannelAttributeKeyUtils.getNextChannel(ctx.channel()); if (nextChannel != null) { // 下发关闭访客 diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/handler/NettyServerPermeateClientRealHandler.java b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/handler/NettyServerPermeateClientRealHandler.java index 8226f73..af59890 100644 --- a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/handler/NettyServerPermeateClientRealHandler.java +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/handler/NettyServerPermeateClientRealHandler.java @@ -30,7 +30,7 @@ public class NettyServerPermeateClientRealHandler extends SimpleChannelInboundHa Integer visitorPort = ChannelAttributeKeyUtils.getVisitorPort(ctx.channel()); String clientId = ChannelAttributeKeyUtils.getClientId(ctx.channel()); // 访客通信通道 上报服务端代理完成 - Channel visitorChannel = NettyCommunicationIdContext.getVisitor(visitorId); + Channel visitor = ChannelAttributeKeyUtils.getNextChannel(ctx.channel()); NettyProxyMsg returnMessage = new NettyProxyMsg(); returnMessage.setType(MessageType.REPORT_CLIENT_TRANSFER); returnMessage.setVisitorId(visitorId); @@ -38,7 +38,7 @@ public class NettyServerPermeateClientRealHandler extends SimpleChannelInboundHa returnMessage.setVisitorPort(visitorPort); returnMessage.setData(bytes); - visitorChannel.writeAndFlush(returnMessage); + visitor.writeAndFlush(returnMessage); } @@ -52,7 +52,7 @@ public class NettyServerPermeateClientRealHandler extends SimpleChannelInboundHa String clientId = ChannelAttributeKeyUtils.getClientId(ctx.channel()); String visitorId = ChannelAttributeKeyUtils.getVisitorId(ctx.channel()); // 客户端真实通信通道 - Channel visitor = NettyCommunicationIdContext.getVisitor(visitorId); + Channel visitor = ChannelAttributeKeyUtils.getNextChannel(ctx.channel()); if (visitor != null) { // 上报关闭这个客户端的访客通道 NettyProxyMsg closeVisitorMsg = new NettyProxyMsg(); @@ -79,11 +79,12 @@ public class NettyServerPermeateClientRealHandler extends SimpleChannelInboundHa // 获取访客的传输通道 String visitorId = ChannelAttributeKeyUtils.getVisitorId(ctx.channel()); + if(ObjectUtils.isEmpty(visitorId)) { super.channelWritabilityChanged(ctx); return; } - Channel visitorCommunicationChannel = NettyCommunicationIdContext.getVisitor(visitorId); + Channel visitorCommunicationChannel = ChannelAttributeKeyUtils.getNextChannel(ctx.channel()); if (visitorCommunicationChannel != null) { log.debug("visitorId:{} transfer AUTO_READ:{} ",visitorId,ctx.channel().isWritable()); visitorCommunicationChannel.config().setOption(ChannelOption.AUTO_READ, ctx.channel().isWritable()); diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/socket/NettyClientPermeateClientRealSocket.java b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/socket/NettyClientPermeateClientRealSocket.java index d0c7f61..053765d 100644 --- a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/socket/NettyClientPermeateClientRealSocket.java +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/socket/NettyClientPermeateClientRealSocket.java @@ -15,6 +15,7 @@ import org.framework.lazy.cloud.network.heartbeat.common.advanced.HandleChannelT import org.framework.lazy.cloud.network.heartbeat.common.utils.ChannelAttributeKeyUtils; import java.util.List; +import java.util.concurrent.TimeUnit; /** * 客户端连接真实服务 @@ -131,7 +132,7 @@ public class NettyClientPermeateClientRealSocket { // 使用的客户端ID:{} log.info("Client ID used: {}", clientId); future.addListener((ChannelFutureListener) futureListener -> { - Channel visitorChannel = futureListener.channel(); + Channel transferChannel = futureListener.channel(); if (futureListener.isSuccess()) { realChannel.config().setOption(ChannelOption.AUTO_READ, true); // 通知服务端访客连接成功 @@ -142,20 +143,30 @@ public class NettyClientPermeateClientRealSocket { nettyProxyMsg.setClientTargetPort(clientTargetPort); nettyProxyMsg.setVisitorPort(visitorPort); nettyProxyMsg.setType(MessageType.REPORT_CLIENT_PERMEATE_CLIENT_TRANSFER_CHANNEL_INIT_SUCCESSFUL); - visitorChannel.writeAndFlush(nettyProxyMsg); + transferChannel.writeAndFlush(nettyProxyMsg); - ChannelAttributeKeyUtils.buildNextChannel(visitorChannel, realChannel); - ChannelAttributeKeyUtils.buildNextChannel(realChannel, visitorChannel); + ChannelAttributeKeyUtils.buildNextChannel(transferChannel, realChannel); + ChannelAttributeKeyUtils.buildNextChannel(realChannel, transferChannel); // 绑定客户端真实通信通道 - NettyCommunicationIdContext.pushVisitor(visitorChannel, visitorId); - ChannelAttributeKeyUtils.buildVisitorId(visitorChannel, visitorId); - ChannelAttributeKeyUtils.buildClientId(visitorChannel, clientId); + ChannelAttributeKeyUtils.buildVisitorId(transferChannel, visitorId); + ChannelAttributeKeyUtils.buildClientId(transferChannel, clientId); } else { log.info("无法连接到服务端...."); + transferChannel.eventLoop().schedule(() -> { + try { + newVisitorConnect2Server(clientId, + clientTargetIp, + clientTargetPort, + visitorPort, + visitorId,realChannel, nettyClientProperties, handleChannelTypeAdvancedList); + } catch (Exception e) { + e.printStackTrace(); + } + }, 2, TimeUnit.SECONDS); } }); } diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/socket/NettyClientPermeateClientVisitorTransferSocket.java b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/socket/NettyClientPermeateClientVisitorTransferSocket.java index 9990a3d..a5f7fea 100644 --- a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/socket/NettyClientPermeateClientVisitorTransferSocket.java +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/socket/NettyClientPermeateClientVisitorTransferSocket.java @@ -16,6 +16,8 @@ import org.framework.lazy.cloud.network.heartbeat.common.NettyRealIdContext; import org.framework.lazy.cloud.network.heartbeat.common.adapter.ChannelTypeAdapter; import org.framework.lazy.cloud.network.heartbeat.common.utils.ChannelAttributeKeyUtils; +import java.util.concurrent.TimeUnit; + /** * 客户端渗透服务端传输通道 */ @@ -75,7 +77,7 @@ public class NettyClientPermeateClientVisitorTransferSocket { // 使用的客户端ID:{} log.info("Client ID used: {}", clientId); future.addListener((ChannelFutureListener) futureListener -> { - Channel channel = futureListener.channel(); + Channel transferChannel = futureListener.channel(); if (futureListener.isSuccess()) { NettyProxyMsg myMsg = new NettyProxyMsg(); @@ -87,20 +89,26 @@ public class NettyClientPermeateClientVisitorTransferSocket { myMsg.setClientTargetPort(targetPort); myMsg.setVisitorId(visitorId); - channel.writeAndFlush(myMsg); + transferChannel.writeAndFlush(myMsg); // 绑定客户端真实通信通道 - NettyCommunicationIdContext.pushVisitor(channel, visitorId); - ChannelAttributeKeyUtils.buildVisitorId(channel, visitorId); - ChannelAttributeKeyUtils.buildClientId(channel, clientId); + ChannelAttributeKeyUtils.buildVisitorId(transferChannel, visitorId); + ChannelAttributeKeyUtils.buildClientId(transferChannel, clientId); // 传输通道打开后自动读取 Channel visitor = NettyRealIdContext.getReal(visitorId); - ChannelAttributeKeyUtils.buildNextChannel(visitor, channel); - ChannelAttributeKeyUtils.buildNextChannel(channel, visitor); + ChannelAttributeKeyUtils.buildNextChannel(visitor, transferChannel); + ChannelAttributeKeyUtils.buildNextChannel(transferChannel, visitor); } else { log.info("无法连接到服务端...."); + transferChannel.eventLoop().schedule(() -> { + try { + buildTransferServer(internalNetworkClientPermeateClientVisitor); + } catch (Exception e) { + e.printStackTrace(); + } + }, 2, TimeUnit.SECONDS); } }); } diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/socket/NettyClientPermeateServerVisitorSocket.java b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/socket/NettyClientPermeateServerVisitorSocket.java index 24e071f..2d44fd0 100644 --- a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/socket/NettyClientPermeateServerVisitorSocket.java +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/socket/NettyClientPermeateServerVisitorSocket.java @@ -263,8 +263,8 @@ public class NettyClientPermeateServerVisitorSocket implements PermeateVisitorSo internalNetworkPermeateServerVisitor.setHandleChannelTypeAdvancedList(handleChannelTypeAdvancedList); - NettyClientPermeateServerVisitorFilter visitorFilter = new NettyClientPermeateServerVisitorFilter(internalNetworkPermeateServerVisitor); - return new NettyClientPermeateServerVisitorSocket(visitorFilter, clientId, visitorPort); + NettyClientPermeateServerVisitorFilter nettyClientPermeateServerVisitorFilter = new NettyClientPermeateServerVisitorFilter(internalNetworkPermeateServerVisitor); + return new NettyClientPermeateServerVisitorSocket(nettyClientPermeateServerVisitorFilter, clientId, visitorPort); } diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/socket/NettyClientPermeateServerVisitorTransferSocket.java b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/socket/NettyClientPermeateServerVisitorTransferSocket.java index a1bf5c4..9440798 100644 --- a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/socket/NettyClientPermeateServerVisitorTransferSocket.java +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/socket/NettyClientPermeateServerVisitorTransferSocket.java @@ -14,6 +14,8 @@ import org.framework.lazy.cloud.network.heartbeat.common.NettyProxyMsg; import org.framework.lazy.cloud.network.heartbeat.common.adapter.ChannelTypeAdapter; import org.framework.lazy.cloud.network.heartbeat.common.utils.ChannelAttributeKeyUtils; +import java.util.concurrent.TimeUnit; + /** * 客户端渗透服务端传输通道 */ @@ -21,20 +23,12 @@ import org.framework.lazy.cloud.network.heartbeat.common.utils.ChannelAttributeK public class NettyClientPermeateServerVisitorTransferSocket { static EventLoopGroup eventLoopGroup = new NioEventLoopGroup(); - /** - * 连接服务端通信通道 - */ - public static void buildTransferServer(InternalNetworkPermeateServerVisitor internalNetworkPermeateServerVisitor, Channel visitorChannel) { - newTransferConnect2Server(internalNetworkPermeateServerVisitor,visitorChannel); - } - - /** * 连接服务端通信通道 *

* internalNetworkPermeateServerVisitor */ - protected static void newTransferConnect2Server(InternalNetworkPermeateServerVisitor internalNetworkPermeateServerVisitor, Channel visitorChannel) { + public static void buildTransferServer(InternalNetworkPermeateServerVisitor internalNetworkPermeateServerVisitor, Channel visitorChannel) { Bootstrap bootstrap = new Bootstrap(); bootstrap.group(eventLoopGroup) @@ -63,7 +57,7 @@ public class NettyClientPermeateServerVisitorTransferSocket { String targetIp = internalNetworkPermeateServerVisitor.getTargetIp(); Integer targetPort = internalNetworkPermeateServerVisitor.getTargetPort(); - String visitorId = internalNetworkPermeateServerVisitor.getVisitorId(); + String visitorId = ChannelAttributeKeyUtils.getVisitorId(visitorChannel); Integer visitorPort = internalNetworkPermeateServerVisitor.getVisitorPort(); // 客户端新建访客通道 连接服务端IP:{},连接服务端端口:{} @@ -73,7 +67,7 @@ public class NettyClientPermeateServerVisitorTransferSocket { // 使用的客户端ID:{} log.info("Client ID used: {}", clientId); future.addListener((ChannelFutureListener) futureListener -> { - Channel channel = futureListener.channel(); + Channel transferChannel = futureListener.channel(); if (futureListener.isSuccess()) { NettyProxyMsg myMsg = new NettyProxyMsg(); @@ -82,18 +76,24 @@ public class NettyClientPermeateServerVisitorTransferSocket { myMsg.setVisitorPort(visitorPort); myMsg.setClientTargetIp(targetIp); myMsg.setClientTargetPort(targetPort); - myMsg.setVisitorId(visitorId); - channel.writeAndFlush(myMsg); - ChannelAttributeKeyUtils.buildVisitorId(channel, visitorId); - ChannelAttributeKeyUtils.buildClientId(channel, clientId); + ChannelAttributeKeyUtils.buildVisitorId(transferChannel, visitorId); + ChannelAttributeKeyUtils.buildClientId(transferChannel, clientId); // 传输通道打开后自动读取 + ChannelAttributeKeyUtils.buildNextChannel(visitorChannel, transferChannel); + ChannelAttributeKeyUtils.buildNextChannel(transferChannel, visitorChannel); + transferChannel.writeAndFlush(myMsg); - ChannelAttributeKeyUtils.buildNextChannel(visitorChannel, channel); - ChannelAttributeKeyUtils.buildNextChannel(channel, visitorChannel); } else { log.info("客户端渗透服务端通信通道中断...."); + transferChannel.eventLoop().schedule(() -> { + try { + buildTransferServer(internalNetworkPermeateServerVisitor, visitorChannel); + } catch (Exception e) { + e.printStackTrace(); + } + }, 2, TimeUnit.SECONDS); } }); } diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/socket/NettyServerPermeateClientRealSocket.java b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/socket/NettyServerPermeateClientRealSocket.java index 7fa10dd..e3a8e84 100644 --- a/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/socket/NettyServerPermeateClientRealSocket.java +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/org/framework/lazy/cloud/network/heartbeat/client/netty/socket/NettyServerPermeateClientRealSocket.java @@ -75,7 +75,7 @@ public class NettyServerPermeateClientRealSocket { log.info("访客通过 客户端:【{}】,绑定本地服务,IP:{},端口:{} 新建通道成功", clientId, clientTargetIp, clientTargetPort); // 客户端真实通道 - NettyRealIdContext.pushReal(realChannel, visitorId); +// NettyRealIdContext.pushReal(realChannel, visitorId); // 绑定访客ID到当前真实通道属性 ChannelAttributeKeyUtils.buildVisitorId(realChannel, visitorId); ChannelAttributeKeyUtils.buildClientId(realChannel, clientId); @@ -84,7 +84,7 @@ public class NettyServerPermeateClientRealSocket { // 新建一个通道处理 - newVisitorConnect2Server(internalNetworkPenetrationRealClient, nettyClientProperties, handleChannelTypeAdvancedList); + newVisitorConnect2Server(internalNetworkPenetrationRealClient, nettyClientProperties, handleChannelTypeAdvancedList,realChannel); // 是否等 服务端相应访客通道已经可以自动读写 // realChannel.config().setOption(ChannelOption.AUTO_READ, true); @@ -132,7 +132,8 @@ public class NettyServerPermeateClientRealSocket { */ protected static void newVisitorConnect2Server(InternalNetworkPenetrationRealClient internalNetworkPenetrationRealClient, NettyClientProperties nettyClientProperties, - List handleChannelTypeAdvancedList) throws InterruptedException { + List handleChannelTypeAdvancedList, + Channel realChannel) throws InterruptedException { Bootstrap bootstrap = new Bootstrap(); bootstrap.group(eventLoopGroup) .channel(NioSocketChannel.class) @@ -171,7 +172,7 @@ public class NettyServerPermeateClientRealSocket { // 使用的客户端ID:{} log.info("Client ID used: {}" , visitorClientId); future.addListener((ChannelFutureListener) futureListener -> { - Channel channel = futureListener.channel(); + Channel transferChannel = futureListener.channel(); if (futureListener.isSuccess()) { NettyProxyMsg myMsg = new NettyProxyMsg(); @@ -182,17 +183,17 @@ public class NettyServerPermeateClientRealSocket { myMsg.setClientTargetPort(clientTargetPort); myMsg.setVisitorId(visitorId); - channel.writeAndFlush(myMsg); + transferChannel.writeAndFlush(myMsg); // 绑定客户端真实通信通道 - NettyCommunicationIdContext.pushVisitor(channel, visitorId); - ChannelAttributeKeyUtils.buildVisitorId(channel, visitorId); - ChannelAttributeKeyUtils.buildClientId(channel, visitorClientId); + NettyCommunicationIdContext.pushVisitor(transferChannel, visitorId); + ChannelAttributeKeyUtils.buildVisitorId(transferChannel, visitorId); + ChannelAttributeKeyUtils.buildClientId(transferChannel, visitorClientId); // 客户端真实通道自动读写打开 - Channel visitor = NettyRealIdContext.getReal(visitorId); - visitor.config().setOption(ChannelOption.AUTO_READ, true); - ChannelAttributeKeyUtils.buildNextChannel(visitor, channel); - ChannelAttributeKeyUtils.buildNextChannel(channel, visitor); + realChannel.config().setOption(ChannelOption.AUTO_READ, true); + + ChannelAttributeKeyUtils.buildNextChannel(realChannel, transferChannel); + ChannelAttributeKeyUtils.buildNextChannel(transferChannel, realChannel); @@ -200,9 +201,9 @@ public class NettyServerPermeateClientRealSocket { } else { log.info("每隔2s重连...."); // 离线 - channel.eventLoop().schedule(() -> { + transferChannel.eventLoop().schedule(() -> { try { - newVisitorConnect2Server(internalNetworkPenetrationRealClient, nettyClientProperties, handleChannelTypeAdvancedList); + newVisitorConnect2Server(internalNetworkPenetrationRealClient, nettyClientProperties, handleChannelTypeAdvancedList,realChannel); } catch (InterruptedException e) { e.printStackTrace(); } diff --git a/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/MessageType.java b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/MessageType.java index 1bacaa3..7cac599 100644 --- a/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/MessageType.java +++ b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/MessageType.java @@ -2,6 +2,8 @@ package org.framework.lazy.cloud.network.heartbeat.common; import org.framework.lazy.cloud.network.heartbeat.common.advanced.AbstractHandleChannelHeartbeatTypeAdvanced; import org.framework.lazy.cloud.network.heartbeat.common.advanced.client.*; +import org.framework.lazy.cloud.network.heartbeat.common.advanced.client.AbstractHandleDistributeServicePermeateClientRealConnectTypeAdvanced; +import org.framework.lazy.cloud.network.heartbeat.common.advanced.client.AbstractHandleDistributeServicePermeateClientTransferTypeAdvanced; import org.framework.lazy.cloud.network.heartbeat.common.advanced.server.*; import org.framework.lazy.cloud.network.heartbeat.common.enums.MessageTypeEnums; @@ -52,7 +54,7 @@ public class MessageType { * 上报 客户端数据传输(内网穿透数据回传) * * @see MessageTypeEnums#REPORT_CLIENT_TRANSFER - * @see AbstractHandleReportHandleChannelTransferTypeAdvanced + * @see AbstractHandleReportServicePermeateClientTransferTypeAdvanced */ public static final byte REPORT_CLIENT_TRANSFER = 0X05; @@ -61,14 +63,14 @@ public class MessageType { * 上报 客户端创建需要代理的真实端口成功 * * @see MessageTypeEnums#REPORT_SINGLE_CLIENT_REAL_CONNECT - * @see AbstractHandleReportSingleClientRealConnectTypeAdvanced + * @see AbstractHandleReportServicePermeateClientRealConnectTypeAdvanced */ public static final byte REPORT_SINGLE_CLIENT_REAL_CONNECT = 0X06; /** * 上报 客户端关闭一个访客通道 * * @see MessageTypeEnums#REPORT_SINGLE_CLIENT_CLOSE_VISITOR - * @see AbstractHandleReportSingleClientCloseVisitorTypeAdvanced + * @see AbstractHandleReportServicePermeateClientCloseVisitorTypeAdvanced */ public static final byte REPORT_SINGLE_CLIENT_CLOSE_VISITOR = 0X08; @@ -83,7 +85,7 @@ public class MessageType { * 服务端通道 is active * * @see MessageTypeEnums#SERVER_CHANNEL_ACTIVE - * @see AbstractHandleServerChannelActiveTypeAdvanced + * @see AbstractHandleReportServerChannelActiveTypeAdvanced */ public static final byte SERVER_CHANNEL_ACTIVE = 0X10; @@ -207,6 +209,9 @@ public class MessageType { */ public static final byte REPORT_CLIENT_PERMEATE_CLIENT_TRANSFER_CLOSE = 0X25; + + + /** * 下发 客户端接收连接成功通知 * @@ -240,14 +245,14 @@ public class MessageType { * 下发 客户端数据传输(内网穿透数据发送) * * @see MessageTypeEnums#DISTRIBUTE_CLIENT_TRANSFER - * @see AbstractHandleDistributeChannelTransferTypeAdvanced + * @see AbstractHandleDistributeServicePermeateClientTransferTypeAdvanced */ public static final byte DISTRIBUTE_CLIENT_TRANSFER = -0X05; /** * 下发 客户端创建需要代理的真实端口 * * @see MessageTypeEnums#DISTRIBUTE_SINGLE_CLIENT_REAL_CONNECT - * @see AbstractHandleDistributeSingleClientRealConnectTypeAdvanced + * @see AbstractHandleDistributeServicePermeateClientRealConnectTypeAdvanced */ public static final byte DISTRIBUTE_SINGLE_CLIENT_REAL_CONNECT = -0X06; @@ -381,7 +386,7 @@ public class MessageType { * 下发客户端渗透客户端数据传输响应 * * @see MessageTypeEnums#DISTRIBUTE_CLIENT_PERMEATE_CLIENT_TRANSFER_RESPONSE - * @see AbstractHandleDistributeClientTransferClientResponseTypeAdvanced + * @see AbstractHandleDistributeServicePermeateClientTransferClientResponseTypeAdvanced * @see MessageType#REPORT_CLIENT_TRANSFER_CLIENT_RESPONSE */ public static final byte DISTRIBUTE_CLIENT_PERMEATE_CLIENT_TRANSFER_RESPONSE = -0X24; diff --git a/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/client/AbstractHandleDistributeSingleClientRealConnectTypeAdvanced.java b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/client/AbstractHandleDistributeServicePermeateClientRealConnectTypeAdvanced.java similarity index 80% rename from wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/client/AbstractHandleDistributeSingleClientRealConnectTypeAdvanced.java rename to wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/client/AbstractHandleDistributeServicePermeateClientRealConnectTypeAdvanced.java index 821d1f1..a3d3132 100644 --- a/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/client/AbstractHandleDistributeSingleClientRealConnectTypeAdvanced.java +++ b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/client/AbstractHandleDistributeServicePermeateClientRealConnectTypeAdvanced.java @@ -10,7 +10,7 @@ import org.framework.lazy.cloud.network.heartbeat.common.enums.MessageTypeEnums; * 下发 客户端 创建真实连接 */ -public abstract class AbstractHandleDistributeSingleClientRealConnectTypeAdvanced extends AbstractHandleChannelTypeAdvanced implements HandleChannelTypeAdvanced { +public abstract class AbstractHandleDistributeServicePermeateClientRealConnectTypeAdvanced extends AbstractHandleChannelTypeAdvanced implements HandleChannelTypeAdvanced { /** * 是否支持当前类型 diff --git a/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/client/AbstractHandleDistributeClientTransferClientResponseTypeAdvanced.java b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/client/AbstractHandleDistributeServicePermeateClientTransferClientResponseTypeAdvanced.java similarity index 81% rename from wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/client/AbstractHandleDistributeClientTransferClientResponseTypeAdvanced.java rename to wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/client/AbstractHandleDistributeServicePermeateClientTransferClientResponseTypeAdvanced.java index 144598d..92ffd42 100644 --- a/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/client/AbstractHandleDistributeClientTransferClientResponseTypeAdvanced.java +++ b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/client/AbstractHandleDistributeServicePermeateClientTransferClientResponseTypeAdvanced.java @@ -12,7 +12,7 @@ import org.framework.lazy.cloud.network.heartbeat.common.enums.MessageTypeEnums; * * @see MessageTypeEnums#DISTRIBUTE_CLIENT_PERMEATE_CLIENT_TRANSFER_RESPONSE */ -public abstract class AbstractHandleDistributeClientTransferClientResponseTypeAdvanced extends AbstractHandleChannelTypeAdvanced implements HandleChannelTypeAdvanced { +public abstract class AbstractHandleDistributeServicePermeateClientTransferClientResponseTypeAdvanced extends AbstractHandleChannelTypeAdvanced implements HandleChannelTypeAdvanced { /** diff --git a/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/client/AbstractHandleDistributeChannelTransferTypeAdvanced.java b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/client/AbstractHandleDistributeServicePermeateClientTransferTypeAdvanced.java similarity index 80% rename from wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/client/AbstractHandleDistributeChannelTransferTypeAdvanced.java rename to wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/client/AbstractHandleDistributeServicePermeateClientTransferTypeAdvanced.java index 07068fe..5ea70f6 100644 --- a/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/client/AbstractHandleDistributeChannelTransferTypeAdvanced.java +++ b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/client/AbstractHandleDistributeServicePermeateClientTransferTypeAdvanced.java @@ -11,7 +11,7 @@ import org.framework.lazy.cloud.network.heartbeat.common.enums.MessageTypeEnums; * 客户端处理服务端下发数据 * DISTRIBUTE_CLIENT_TRANSFER */ -public abstract class AbstractHandleDistributeChannelTransferTypeAdvanced extends AbstractHandleChannelTypeAdvanced implements HandleChannelTypeAdvanced { +public abstract class AbstractHandleDistributeServicePermeateClientTransferTypeAdvanced extends AbstractHandleChannelTypeAdvanced implements HandleChannelTypeAdvanced { /** diff --git a/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/server/AbstractHandleServerChannelActiveTypeAdvanced.java b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/server/AbstractHandleReportServerChannelActiveTypeAdvanced.java similarity index 81% rename from wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/server/AbstractHandleServerChannelActiveTypeAdvanced.java rename to wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/server/AbstractHandleReportServerChannelActiveTypeAdvanced.java index ac81375..2492b5b 100644 --- a/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/server/AbstractHandleServerChannelActiveTypeAdvanced.java +++ b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/server/AbstractHandleReportServerChannelActiveTypeAdvanced.java @@ -11,7 +11,7 @@ import org.framework.lazy.cloud.network.heartbeat.common.enums.MessageTypeEnums; * 服务端通道 is active * SERVER_CHANNEL_ACTIVE */ -public abstract class AbstractHandleServerChannelActiveTypeAdvanced extends AbstractHandleChannelTypeAdvanced implements HandleChannelTypeAdvanced { +public abstract class AbstractHandleReportServerChannelActiveTypeAdvanced extends AbstractHandleChannelTypeAdvanced implements HandleChannelTypeAdvanced { /** diff --git a/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/server/AbstractHandleReportSingleClientCloseVisitorTypeAdvanced.java b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/server/AbstractHandleReportServicePermeateClientCloseVisitorTypeAdvanced.java similarity index 81% rename from wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/server/AbstractHandleReportSingleClientCloseVisitorTypeAdvanced.java rename to wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/server/AbstractHandleReportServicePermeateClientCloseVisitorTypeAdvanced.java index f8974c9..403b45d 100644 --- a/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/server/AbstractHandleReportSingleClientCloseVisitorTypeAdvanced.java +++ b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/server/AbstractHandleReportServicePermeateClientCloseVisitorTypeAdvanced.java @@ -11,7 +11,7 @@ import org.framework.lazy.cloud.network.heartbeat.common.enums.MessageTypeEnums; * 服务端处理客户端 关闭一个访客 * REPORT_SINGLE_CLIENT_CLOSE_VISITOR */ -public abstract class AbstractHandleReportSingleClientCloseVisitorTypeAdvanced extends AbstractHandleChannelTypeAdvanced implements HandleChannelTypeAdvanced { +public abstract class AbstractHandleReportServicePermeateClientCloseVisitorTypeAdvanced extends AbstractHandleChannelTypeAdvanced implements HandleChannelTypeAdvanced { /** diff --git a/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/server/AbstractHandleReportSingleClientRealConnectTypeAdvanced.java b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/server/AbstractHandleReportServicePermeateClientRealConnectTypeAdvanced.java similarity index 81% rename from wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/server/AbstractHandleReportSingleClientRealConnectTypeAdvanced.java rename to wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/server/AbstractHandleReportServicePermeateClientRealConnectTypeAdvanced.java index bee7b68..c788cf3 100644 --- a/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/server/AbstractHandleReportSingleClientRealConnectTypeAdvanced.java +++ b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/server/AbstractHandleReportServicePermeateClientRealConnectTypeAdvanced.java @@ -11,7 +11,7 @@ import org.framework.lazy.cloud.network.heartbeat.common.enums.MessageTypeEnums; * 服务端处理客户端绑定真实服务成功 * REPORT_SINGLE_CLIENT_REAL_CONNECT */ -public abstract class AbstractHandleReportSingleClientRealConnectTypeAdvanced extends AbstractHandleChannelTypeAdvanced implements HandleChannelTypeAdvanced { +public abstract class AbstractHandleReportServicePermeateClientRealConnectTypeAdvanced extends AbstractHandleChannelTypeAdvanced implements HandleChannelTypeAdvanced { /** diff --git a/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/server/AbstractHandleReportHandleChannelTransferTypeAdvanced.java b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/server/AbstractHandleReportServicePermeateClientTransferTypeAdvanced.java similarity index 81% rename from wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/server/AbstractHandleReportHandleChannelTransferTypeAdvanced.java rename to wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/server/AbstractHandleReportServicePermeateClientTransferTypeAdvanced.java index 1184430..7a0fb35 100644 --- a/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/server/AbstractHandleReportHandleChannelTransferTypeAdvanced.java +++ b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/advanced/server/AbstractHandleReportServicePermeateClientTransferTypeAdvanced.java @@ -11,7 +11,7 @@ import org.framework.lazy.cloud.network.heartbeat.common.enums.MessageTypeEnums; * 服务端处理客户端上报数据 * REPORT_CLIENT_STAGING_CLOSED */ -public abstract class AbstractHandleReportHandleChannelTransferTypeAdvanced extends AbstractHandleChannelTypeAdvanced implements HandleChannelTypeAdvanced { +public abstract class AbstractHandleReportServicePermeateClientTransferTypeAdvanced extends AbstractHandleChannelTypeAdvanced implements HandleChannelTypeAdvanced { /** diff --git a/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/enums/MessageTypeEnums.java b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/enums/MessageTypeEnums.java index 4f227a3..6f19238 100644 --- a/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/enums/MessageTypeEnums.java +++ b/wu-lazy-cloud-heartbeat-common/src/main/java/org/framework/lazy/cloud/network/heartbeat/common/enums/MessageTypeEnums.java @@ -5,6 +5,8 @@ import lombok.Getter; import org.framework.lazy.cloud.network.heartbeat.common.MessageType; import org.framework.lazy.cloud.network.heartbeat.common.advanced.AbstractHandleChannelHeartbeatTypeAdvanced; import org.framework.lazy.cloud.network.heartbeat.common.advanced.client.*; +import org.framework.lazy.cloud.network.heartbeat.common.advanced.client.AbstractHandleDistributeServicePermeateClientRealConnectTypeAdvanced; +import org.framework.lazy.cloud.network.heartbeat.common.advanced.client.AbstractHandleDistributeServicePermeateClientTransferTypeAdvanced; import org.framework.lazy.cloud.network.heartbeat.common.advanced.server.*; /** @@ -34,16 +36,16 @@ public enum MessageTypeEnums { */ REPORT_CLIENT_STAGING_CLOSED(MessageType.REPORT_CLIENT_STAGING_CLOSED, "上报 客户端暂存关闭"), /** - * @see AbstractHandleReportHandleChannelTransferTypeAdvanced + * @see AbstractHandleReportServicePermeateClientTransferTypeAdvanced */ REPORT_CLIENT_TRANSFER(MessageType.REPORT_CLIENT_TRANSFER, "上报 客户端数据传输(内网穿透数据回传)"), /** - * @see AbstractHandleReportSingleClientRealConnectTypeAdvanced + * @see AbstractHandleReportServicePermeateClientRealConnectTypeAdvanced */ REPORT_SINGLE_CLIENT_REAL_CONNECT(MessageType.REPORT_SINGLE_CLIENT_REAL_CONNECT, "上报 客户端创建需要代理的真实端口成功"), /** - * @see AbstractHandleReportSingleClientCloseVisitorTypeAdvanced + * @see AbstractHandleReportServicePermeateClientCloseVisitorTypeAdvanced */ REPORT_SINGLE_CLIENT_CLOSE_VISITOR(MessageType.REPORT_SINGLE_CLIENT_CLOSE_VISITOR, "上报 客户端关闭一个访客通道"), /** @@ -51,7 +53,7 @@ public enum MessageTypeEnums { */ REPORT_SINGLE_CLIENT_MESSAGE(MessageType.REPORT_SINGLE_CLIENT_MESSAGE, "上报 客户端消息到另一个客户端"), /** - * @see AbstractHandleServerChannelActiveTypeAdvanced + * @see AbstractHandleReportServerChannelActiveTypeAdvanced */ SERVER_CHANNEL_ACTIVE(MessageType.SERVER_CHANNEL_ACTIVE, "服务端通道 is active"), /** @@ -140,11 +142,11 @@ public enum MessageTypeEnums { */ DISTRIBUTE_CLIENT_STAGING_CLOSED_NOTIFICATION(MessageType.DISTRIBUTE_CLIENT_STAGING_CLOSED_NOTIFICATION, "下发 客户端暂存关闭通知"), /** - * @see AbstractHandleDistributeChannelTransferTypeAdvanced + * @see AbstractHandleDistributeServicePermeateClientTransferTypeAdvanced */ DISTRIBUTE_CLIENT_TRANSFER(MessageType.DISTRIBUTE_CLIENT_TRANSFER, "下发 客户端数据传输(内网穿透数据发送)"), /** - * @see AbstractHandleDistributeSingleClientRealConnectTypeAdvanced + * @see AbstractHandleDistributeServicePermeateClientRealConnectTypeAdvanced */ DISTRIBUTE_SINGLE_CLIENT_REAL_CONNECT(MessageType.DISTRIBUTE_SINGLE_CLIENT_REAL_CONNECT, "下发 客户端创建需要代理的真实端口"), /** @@ -216,7 +218,7 @@ public enum MessageTypeEnums { DISTRIBUTE_CLIENT_PERMEATE_CLIENT_TRANSFER_REQUEST(MessageType.DISTRIBUTE_CLIENT_PERMEATE_CLIENT_TRANSFER_REQUEST, "下发客户端渗透客户端数据传输"), /** * 下发客户端渗透客户端数据传输 - * @see AbstractHandleDistributeClientTransferClientResponseTypeAdvanced + * @see AbstractHandleDistributeServicePermeateClientTransferClientResponseTypeAdvanced */ DISTRIBUTE_CLIENT_PERMEATE_CLIENT_TRANSFER_RESPONSE(MessageType.DISTRIBUTE_CLIENT_PERMEATE_CLIENT_TRANSFER_RESPONSE, "下发客户端渗透客户端数据传输"), /** diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/config/HeartbeatServerConfiguration.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/config/HeartbeatServerConfiguration.java index c9faa20..447c797 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/config/HeartbeatServerConfiguration.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/config/HeartbeatServerConfiguration.java @@ -26,12 +26,12 @@ public class HeartbeatServerConfiguration { /** * 处理 服务端处理客户端数据传输 * - * @return ServerHandleReportHandleChannelTransferTypeAdvanced + * @return ServerHandleReportServicePermeateClientTransferTypeAdvanced */ @Role(BeanDefinition.ROLE_INFRASTRUCTURE) @Bean - public ServerHandleReportHandleChannelTransferTypeAdvanced serverReportChannelTransferTypeAdvanced(ChannelFlowAdapter channelFlowAdapter) { - return new ServerHandleReportHandleChannelTransferTypeAdvanced(channelFlowAdapter); + public ServerHandleReportServicePermeateClientTransferTypeAdvanced serverReportChannelTransferTypeAdvanced(ChannelFlowAdapter channelFlowAdapter) { + return new ServerHandleReportServicePermeateClientTransferTypeAdvanced(channelFlowAdapter); } @Role(BeanDefinition.ROLE_INFRASTRUCTURE) @@ -69,14 +69,14 @@ public class HeartbeatServerConfiguration { @Role(BeanDefinition.ROLE_INFRASTRUCTURE) @Bean - public ServerHandleReportSingleClientCloseVisitorTypeAdvanced serverReportSingleClientCloseVisitorTypeAdvanced() { - return new ServerHandleReportSingleClientCloseVisitorTypeAdvanced(); + public ServerHandleReportServicePermeateClientCloseVisitorTypeAdvanced serverReportSingleClientCloseVisitorTypeAdvanced() { + return new ServerHandleReportServicePermeateClientCloseVisitorTypeAdvanced(); } @Role(BeanDefinition.ROLE_INFRASTRUCTURE) @Bean - public ServerHandleReportSingleClientRealConnectTypeAdvanced serverReportSingleClientRealConnectTypeAdvanced() { - return new ServerHandleReportSingleClientRealConnectTypeAdvanced(); + public ServerHandleReportServicePermeateClientRealConnectTypeAdvanced serverReportSingleClientRealConnectTypeAdvanced() { + return new ServerHandleReportServicePermeateClientRealConnectTypeAdvanced(); } @Role(BeanDefinition.ROLE_INFRASTRUCTURE) diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportClientPermeateServerTransferTypeAdvanced.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportClientPermeateServerTransferTypeAdvanced.java index ca268cd..3a93a74 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportClientPermeateServerTransferTypeAdvanced.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportClientPermeateServerTransferTypeAdvanced.java @@ -5,7 +5,6 @@ import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; import lombok.extern.slf4j.Slf4j; import org.framework.lazy.cloud.network.heartbeat.common.NettyProxyMsg; -import org.framework.lazy.cloud.network.heartbeat.common.NettyRealIdContext; import org.framework.lazy.cloud.network.heartbeat.common.adapter.ChannelFlowAdapter; import org.framework.lazy.cloud.network.heartbeat.common.advanced.server.AbstractHandleReportClientPermeateServerTransferTypeAdvanced; import org.framework.lazy.cloud.network.heartbeat.common.enums.ChannelFlowEnum; @@ -37,10 +36,10 @@ public class ServerHandleReportClientPermeateServerTransferTypeAdvanced extends String clientId = new String(msg.getClientId()); Integer visitorPort = Integer.valueOf(new String(msg.getVisitorPort())); byte[] visitorId = msg.getVisitorId(); -// log.info("访客ID:【{}】 访客端口:[{}] 接收到客户端:[{}]", new String(visitorId), visitorPort, clientId); -// log.debug("访客ID:【{}】接收到客户端:[{}] 返回数据大小:[{}] 内网穿透返回的数据:[{}]", new String(visitorId), clientId, msg.getData().length, new String(msg.getData())); + log.info("【客户端渗透服务端】访客ID:【{}】 访客端口:[{}] 接收到客户端:[{}] 接收服务端数据大小:[{}]", new String(visitorId), visitorPort, clientId, msg.getData().length); + log.debug("【客户端渗透服务端】访客ID:【{}】接收到客户端:[{}] 接收服务端数据大小:[{}] 接收服务端数据:[{}]", new String(visitorId), clientId, msg.getData().length, new String(msg.getData())); // 将数据转发访客通道 - Channel visitor = NettyRealIdContext.getReal(visitorId); + Channel nextChannel = ChannelAttributeKeyUtils.getNextChannel(channel); if (nextChannel != null) { ByteBuf buf = nextChannel.config().getAllocator().buffer(msg.getData().length); @@ -58,6 +57,6 @@ public class ServerHandleReportClientPermeateServerTransferTypeAdvanced extends .build(); channelFlowAdapter.asyncHandler(channel, serverChannelFlow); } - log.debug("访客ID:【{}】接收到客户端:[{}] 发送真实数据成功", new String(visitorId), clientId); + log.debug("客户端渗透服务端】访客ID:【{}】接收到客户端:[{}] 传输真实数据成功", new String(visitorId), clientId); } } diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportClientTransferServerPermeateChannelConnectionSuccessfulTypeAdvanced.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportClientTransferServerPermeateChannelConnectionSuccessfulTypeAdvanced.java index d2c65c7..f92ab66 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportClientTransferServerPermeateChannelConnectionSuccessfulTypeAdvanced.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportClientTransferServerPermeateChannelConnectionSuccessfulTypeAdvanced.java @@ -14,11 +14,11 @@ public class ServerHandleReportClientTransferServerPermeateChannelConnectionSucc /** * 处理当前数据 * - * @param channel 当前通道 + * @param transferChannel 当前通道 * @param nettyProxyMsg 通道数据 */ @Override - protected void doHandler(Channel channel, NettyProxyMsg nettyProxyMsg) { + protected void doHandler(Channel transferChannel, NettyProxyMsg nettyProxyMsg) { // 创建目标地址连接 byte[] msgVisitorId = nettyProxyMsg.getVisitorId(); byte[] msgVisitorPort = nettyProxyMsg.getVisitorPort(); @@ -28,7 +28,7 @@ public class ServerHandleReportClientTransferServerPermeateChannelConnectionSucc Integer.parseInt(new String(msgVisitorPort)), new String(msgClientTargetIp), Integer.parseInt(new String(msgClientTargetPort)), - channel + transferChannel ); diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportSingleClientCloseVisitorTypeAdvanced.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportServicePermeateClientCloseVisitorTypeAdvanced.java similarity index 80% rename from wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportSingleClientCloseVisitorTypeAdvanced.java rename to wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportServicePermeateClientCloseVisitorTypeAdvanced.java index 21db223..866a93f 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportSingleClientCloseVisitorTypeAdvanced.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportServicePermeateClientCloseVisitorTypeAdvanced.java @@ -6,14 +6,14 @@ import org.springframework.stereotype.Component; import org.framework.lazy.cloud.network.heartbeat.common.NettyCommunicationIdContext; import org.framework.lazy.cloud.network.heartbeat.common.NettyProxyMsg; import org.framework.lazy.cloud.network.heartbeat.common.NettyRealIdContext; -import org.framework.lazy.cloud.network.heartbeat.common.advanced.server.AbstractHandleReportSingleClientCloseVisitorTypeAdvanced; +import org.framework.lazy.cloud.network.heartbeat.common.advanced.server.AbstractHandleReportServicePermeateClientCloseVisitorTypeAdvanced; /** * 服务端处理客户端 关闭一个访客 */ @Slf4j @Component -public class ServerHandleReportSingleClientCloseVisitorTypeAdvanced extends AbstractHandleReportSingleClientCloseVisitorTypeAdvanced { +public class ServerHandleReportServicePermeateClientCloseVisitorTypeAdvanced extends AbstractHandleReportServicePermeateClientCloseVisitorTypeAdvanced { /** diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportSingleClientRealConnectTypeAdvanced.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportServicePermeateClientRealConnectTypeAdvanced.java similarity index 67% rename from wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportSingleClientRealConnectTypeAdvanced.java rename to wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportServicePermeateClientRealConnectTypeAdvanced.java index 6325b7b..6c35c57 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportSingleClientRealConnectTypeAdvanced.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportServicePermeateClientRealConnectTypeAdvanced.java @@ -7,7 +7,7 @@ import org.springframework.stereotype.Component; import org.framework.lazy.cloud.network.heartbeat.common.NettyCommunicationIdContext; import org.framework.lazy.cloud.network.heartbeat.common.NettyProxyMsg; import org.framework.lazy.cloud.network.heartbeat.common.NettyRealIdContext; -import org.framework.lazy.cloud.network.heartbeat.common.advanced.server.AbstractHandleReportSingleClientRealConnectTypeAdvanced; +import org.framework.lazy.cloud.network.heartbeat.common.advanced.server.AbstractHandleReportServicePermeateClientRealConnectTypeAdvanced; import org.framework.lazy.cloud.network.heartbeat.common.utils.ChannelAttributeKeyUtils; /** @@ -15,16 +15,16 @@ import org.framework.lazy.cloud.network.heartbeat.common.utils.ChannelAttributeK */ @Slf4j @Component -public class ServerHandleReportSingleClientRealConnectTypeAdvanced extends AbstractHandleReportSingleClientRealConnectTypeAdvanced { +public class ServerHandleReportServicePermeateClientRealConnectTypeAdvanced extends AbstractHandleReportServicePermeateClientRealConnectTypeAdvanced { /** * 处理当前数据 * - * @param channel 当前通道 + * @param transferChannel 当前通道 * @param nettyProxyMsg 通道数据 */ @Override - protected void doHandler(Channel channel, NettyProxyMsg nettyProxyMsg) { + protected void doHandler(Channel transferChannel, NettyProxyMsg nettyProxyMsg) { // 客户端绑定端口成功 byte[] clientId = nettyProxyMsg.getClientId(); byte[] clientTargetIp = nettyProxyMsg.getClientTargetIp(); @@ -33,16 +33,16 @@ public class ServerHandleReportSingleClientRealConnectTypeAdvanced extends Abstr byte[] visitorId = nettyProxyMsg.getVisitorId(); log.info("客户端:{},绑定真实服务ip:{},port:{},成功", new String(clientId), new String(clientTargetIp), new String(clientTargetPort)); // 绑定服务端访客通信通道 - NettyCommunicationIdContext.pushVisitor(channel, new String(visitorId)); - ChannelAttributeKeyUtils.buildVisitorId(channel, visitorId); - ChannelAttributeKeyUtils.buildClientId(channel, clientId); - ChannelAttributeKeyUtils.buildVisitorPort(channel, Integer.valueOf(new String(visitorPort))); + NettyCommunicationIdContext.pushVisitor(transferChannel, new String(visitorId)); + ChannelAttributeKeyUtils.buildVisitorId(transferChannel, visitorId); + ChannelAttributeKeyUtils.buildClientId(transferChannel, clientId); + ChannelAttributeKeyUtils.buildVisitorPort(transferChannel, Integer.valueOf(new String(visitorPort))); // 访客通道开启自动读取 - Channel visitorRealChannel = NettyRealIdContext.getReal(new String(visitorId)); + Channel visitorRealChannel = NettyRealIdContext.getReal(visitorId); visitorRealChannel.config().setOption(ChannelOption.AUTO_READ, true); - ChannelAttributeKeyUtils.buildNextChannel(channel, visitorRealChannel); - ChannelAttributeKeyUtils.buildNextChannel(visitorRealChannel, channel); + ChannelAttributeKeyUtils.buildNextChannel(transferChannel, visitorRealChannel); + ChannelAttributeKeyUtils.buildNextChannel(visitorRealChannel, transferChannel); // 或许此处还应该通知服务端 这个访客绑定的客户端真实通道打开 diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportHandleChannelTransferTypeAdvanced.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportServicePermeateClientTransferTypeAdvanced.java similarity index 88% rename from wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportHandleChannelTransferTypeAdvanced.java rename to wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportServicePermeateClientTransferTypeAdvanced.java index 8eceedd..1971794 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportHandleChannelTransferTypeAdvanced.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/advanced/ServerHandleReportServicePermeateClientTransferTypeAdvanced.java @@ -8,14 +8,12 @@ import lombok.extern.slf4j.Slf4j; import org.framework.lazy.cloud.network.heartbeat.common.NettyProxyMsg; import org.framework.lazy.cloud.network.heartbeat.common.NettyRealIdContext; import org.framework.lazy.cloud.network.heartbeat.common.adapter.ChannelFlowAdapter; -import org.framework.lazy.cloud.network.heartbeat.common.advanced.server.AbstractHandleReportHandleChannelTransferTypeAdvanced; +import org.framework.lazy.cloud.network.heartbeat.common.advanced.server.AbstractHandleReportServicePermeateClientTransferTypeAdvanced; import org.framework.lazy.cloud.network.heartbeat.common.enums.ChannelFlowEnum; import org.framework.lazy.cloud.network.heartbeat.common.utils.ChannelAttributeKeyUtils; import org.framework.lazy.cloud.network.heartbeat.server.netty.flow.ServerChannelFlow; import org.springframework.stereotype.Component; -import java.nio.charset.StandardCharsets; - /** * 服务端处理客户端数据传输 @@ -23,11 +21,11 @@ import java.nio.charset.StandardCharsets; */ @Slf4j @Component -public class ServerHandleReportHandleChannelTransferTypeAdvanced extends AbstractHandleReportHandleChannelTransferTypeAdvanced { +public class ServerHandleReportServicePermeateClientTransferTypeAdvanced extends AbstractHandleReportServicePermeateClientTransferTypeAdvanced { private final ChannelFlowAdapter channelFlowAdapter; - public ServerHandleReportHandleChannelTransferTypeAdvanced(ChannelFlowAdapter channelFlowAdapter) { + public ServerHandleReportServicePermeateClientTransferTypeAdvanced(ChannelFlowAdapter channelFlowAdapter) { this.channelFlowAdapter = channelFlowAdapter; } diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/handler/NettyClientPermeateServerRealHandler.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/handler/NettyClientPermeateServerRealHandler.java index 4d26fc5..a9fffef 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/handler/NettyClientPermeateServerRealHandler.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/handler/NettyClientPermeateServerRealHandler.java @@ -45,14 +45,6 @@ public class NettyClientPermeateServerRealHandler extends SimpleChannelInboundHa nextChannel.writeAndFlush(nettyMsg); // 记录出口数据 -// ServerChannelFlow serverChannelFlow = ServerChannelFlow -// .builder() -// .channelFlowEnum(ChannelFlowEnum.OUT_FLOW) -// .port(visitorPort) -// .clientId(clientId) -// .flow(msg.getData().length) -// .build(); -// channelFlowAdapter.asyncHandler(channel, serverChannelFlow); } @@ -62,8 +54,11 @@ public class NettyClientPermeateServerRealHandler extends SimpleChannelInboundHa // 客户端真实通信通道 Channel nextChannel = ChannelAttributeKeyUtils.getNextChannel(ctx.channel()); if (nextChannel != null) { - // 上报关闭这个客户端的访客通道 - nextChannel.close(); + log.info("【客户端渗透服务端】服务端真实连接断开"); + // 下发关闭这个客户端的访客通道 + NettyProxyMsg closeVisitorMsg = new NettyProxyMsg(); + closeVisitorMsg.setType(MessageType.DISTRIBUTE_CLIENT_PERMEATE_SERVER_TRANSFER_CLOSE); + nextChannel.writeAndFlush(closeVisitorMsg); } super.channelInactive(ctx); @@ -71,12 +66,13 @@ public class NettyClientPermeateServerRealHandler extends SimpleChannelInboundHa @Override public void channelWritabilityChanged(ChannelHandlerContext ctx) throws Exception { - + log.info("channelWritabilityChanged"); } @Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { + log.info("exceptionCaught:{}", cause.getMessage()); super.exceptionCaught(ctx, cause); } } \ No newline at end of file diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/handler/NettyServerPermeateClientVisitorHandler.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/handler/NettyServerPermeateClientVisitorHandler.java index b9c5140..516ee64 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/handler/NettyServerPermeateClientVisitorHandler.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/handler/NettyServerPermeateClientVisitorHandler.java @@ -96,7 +96,6 @@ public class NettyServerPermeateClientVisitorHandler extends SimpleChannelInboun log.debug("【服务端】访客端口成功接收数据:{}", new String(bytes)); // 使用访客的通信通道 - Channel visitorCommunicationChannel = NettyCommunicationIdContext.getVisitor(visitorId); Channel nextChannel = ChannelAttributeKeyUtils.getNextChannel(visitorChannel); // 绑定数据流量 ChannelAttributeKeyUtils.buildInFlow(nextChannel, bytes.length); @@ -159,7 +158,6 @@ public class NettyServerPermeateClientVisitorHandler extends SimpleChannelInboun return; } - Channel visitorCommunicationChannel = NettyCommunicationIdContext.getVisitor(visitorId); Channel nextChannel = ChannelAttributeKeyUtils.getNextChannel(ctx.channel()); if (nextChannel != null) { log.debug("visitorId:{} transfer AUTO_READ:{} ",visitorId,ctx.channel().isWritable()); @@ -193,7 +191,6 @@ public class NettyServerPermeateClientVisitorHandler extends SimpleChannelInboun String clientId = ChannelAttributeKeyUtils.getClientId(channel); String visitorId = ChannelAttributeKeyUtils.getVisitorId(channel); // 使用通信通道 下发关闭访客 - Channel visitorChannel = NettyCommunicationIdContext.getVisitor(visitorId); Channel nextChannel = ChannelAttributeKeyUtils.getNextChannel(ctx.channel()); if (nextChannel != null) { // 下发关闭访客 diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/socket/NettyClientPermeateServerConnectRealSocket.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/socket/NettyClientPermeateServerConnectRealSocket.java index ed4d46f..33824e1 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/socket/NettyClientPermeateServerConnectRealSocket.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/socket/NettyClientPermeateServerConnectRealSocket.java @@ -6,12 +6,12 @@ import io.netty.channel.*; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.nio.NioSocketChannel; import lombok.extern.slf4j.Slf4j; -import org.framework.lazy.cloud.network.heartbeat.common.InternalNetworkPermeateRealServer; import org.framework.lazy.cloud.network.heartbeat.common.MessageType; import org.framework.lazy.cloud.network.heartbeat.common.NettyProxyMsg; import org.framework.lazy.cloud.network.heartbeat.common.utils.ChannelAttributeKeyUtils; import org.framework.lazy.cloud.network.heartbeat.server.netty.filter.ClientPermeateServerRealFilter; -import org.framework.lazy.cloud.network.heartbeat.server.netty.filter.PermeateClientRealFilter; + +import java.util.concurrent.TimeUnit; /** * 客户端渗透服务端 连接真实通道 @@ -25,7 +25,7 @@ public class NettyClientPermeateServerConnectRealSocket { * 连接真实服务 */ public static void buildNewRealServer( - String visitorId,int visitorPort,String targetIp,int targetPort, Channel visitorChannel) { + String visitorId, int visitorPort, String targetIp, int targetPort, Channel transferChannel) { try { Bootstrap bootstrap = new Bootstrap(); bootstrap.group(eventLoopGroup).channel(NioSocketChannel.class) @@ -54,8 +54,8 @@ public class NettyClientPermeateServerConnectRealSocket { log.info("服务端内网渗透通过,绑定本地服务,IP:{},端口:{} channelID:{} 新建通道成功", targetIp, targetPort,realChannel.id().asLongText()); ChannelAttributeKeyUtils.buildVisitorPort(realChannel, visitorPort); // 缓存当前端口对应的通道、通道池 - ChannelAttributeKeyUtils.buildNextChannel(realChannel, visitorChannel); - ChannelAttributeKeyUtils.buildNextChannel(visitorChannel, realChannel); + ChannelAttributeKeyUtils.buildNextChannel(realChannel, transferChannel); + ChannelAttributeKeyUtils.buildNextChannel(transferChannel, realChannel); ChannelAttributeKeyUtils.buildVisitorId(realChannel, visitorId); @@ -66,15 +66,14 @@ public class NettyClientPermeateServerConnectRealSocket { myMsg.setClientTargetIp(targetIp); myMsg.setClientTargetPort(targetPort); - myMsg.setVisitorId(visitorId); - visitorChannel.writeAndFlush(myMsg); + transferChannel.writeAndFlush(myMsg); } else { log.error("服务端内网渗透 无法连接当前网络内的目标IP:【{}】,目标端口:【{}】", targetIp, targetPort); -// future.channel().eventLoop().schedule(() -> { -// buildNewRealServer(internalNetworkPermeateRealServer); -// }, 2, TimeUnit.SECONDS); + channelFuture.channel().eventLoop().schedule(() -> { + buildNewRealServer(visitorId, visitorPort, targetIp, targetPort, transferChannel); + }, 2, TimeUnit.SECONDS); } }); diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/socket/NettyServerPermeateServerConnectRealSocket.java b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/socket/NettyServerPermeateServerConnectRealSocket.java index 4fff13f..3bb26c7 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/socket/NettyServerPermeateServerConnectRealSocket.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/org/framework/lazy/cloud/network/heartbeat/server/netty/socket/NettyServerPermeateServerConnectRealSocket.java @@ -10,6 +10,8 @@ import org.framework.lazy.cloud.network.heartbeat.common.InternalNetworkPermeate import org.framework.lazy.cloud.network.heartbeat.common.utils.ChannelAttributeKeyUtils; import org.framework.lazy.cloud.network.heartbeat.server.netty.filter.PermeateClientRealFilter; +import java.util.concurrent.TimeUnit; + /** * 服务端渗透服务端 连接真实通道 */ @@ -74,9 +76,9 @@ public class NettyServerPermeateServerConnectRealSocket { } else { log.error("服务端内网渗透 无法连接当前网络内的目标IP:【{}】,目标端口:【{}】", clientTargetIp, clientTargetPort); -// future.channel().eventLoop().schedule(() -> { -// buildNewRealServer(internalNetworkPermeateRealServer); -// }, 2, TimeUnit.SECONDS); + channelFuture.channel().eventLoop().schedule(() -> { + buildNewRealServer(internalNetworkPermeateRealServer, visitorChannel, visitorId); + }, 2, TimeUnit.SECONDS); } });