mirror of
https://gitee.com/wujiawei1207537021/wu-lazy-cloud-network.git
synced 2025-06-03 03:47:55 +08:00
【fix】修改 * 端口问题
This commit is contained in:
parent
ad7fa61067
commit
68f4c92366
@ -6,7 +6,6 @@ import io.netty.channel.*;
|
||||
import io.netty.channel.socket.nio.NioDatagramChannel;
|
||||
import io.netty.channel.socket.nio.NioSocketChannel;
|
||||
import io.netty.handler.codec.http.FullHttpRequest;
|
||||
import io.netty.handler.codec.socksx.v5.Socks5AddressType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.payload.NettyProxyMsg;
|
||||
import org.framework.lazy.cloud.network.heartbeat.common.adapter.ChannelTypeAdapter;
|
||||
@ -17,6 +16,7 @@ import org.framework.lazy.cloud.network.heartbeat.protocol.route.ProxyRoute;
|
||||
import org.framework.lazy.cloud.network.heartbeat.protocol.route.RouteContext;
|
||||
import org.framework.lazy.cloud.network.heartbeat.protocol.route.RouteType;
|
||||
import org.framework.lazy.cloud.network.heartbeat.protocol.utils.FullHttpRequestUtils;
|
||||
import org.wu.framework.core.NormalUsedString;
|
||||
import org.wu.framework.core.utils.ObjectUtils;
|
||||
|
||||
import java.net.URI;
|
||||
@ -67,10 +67,10 @@ public class NettyHttpProxyHandler extends ChannelInboundHandlerAdapter {
|
||||
if (msg instanceof FullHttpRequest) {
|
||||
FullHttpRequest request = (FullHttpRequest) msg;
|
||||
URI uri = new URI(request.uri());
|
||||
String host = uri.getHost();
|
||||
int port = uri.getPort();
|
||||
if (port == -1) {
|
||||
port = 80;
|
||||
String originHost = uri.getHost();
|
||||
int originPort = uri.getPort();
|
||||
if (originPort == -1) {
|
||||
originPort = 80;
|
||||
}
|
||||
|
||||
ByteBuf byteBuf = FullHttpRequestUtils.toByteBuf(request);
|
||||
@ -82,7 +82,7 @@ public class NettyHttpProxyHandler extends ChannelInboundHandlerAdapter {
|
||||
NettyProxyMsg proxyMsg = new NettyProxyMsg();
|
||||
|
||||
|
||||
ProxyRoute route = RouteContext.getRoute(host, String.valueOf(port));
|
||||
ProxyRoute route = RouteContext.getRoute(originHost, String.valueOf(originPort));
|
||||
|
||||
proxyMsg.setVisitorId(visitorId);
|
||||
proxyMsg.setData(bytes);
|
||||
@ -92,12 +92,12 @@ public class NettyHttpProxyHandler extends ChannelInboundHandlerAdapter {
|
||||
if(ObjectUtils.isEmpty(route)){
|
||||
// 本地代理
|
||||
proxyMsg.setType(ProxyMessageType.HTTP_LOCAL_PROXY);
|
||||
proxyMsg.setClientTargetIp(host);
|
||||
proxyMsg.setClientTargetPort(port);
|
||||
proxyMsg.setClientTargetIp(originHost);
|
||||
proxyMsg.setClientTargetPort(originPort);
|
||||
}else {
|
||||
// 远程代理
|
||||
String targetIp = route.getTargetIp();
|
||||
String targetPort = route.getTargetPort();
|
||||
String targetPort = NormalUsedString.ASTERISK.equals(route.getTargetPort())?String.valueOf(originPort):route.getTargetPort();
|
||||
proxyMsg.setClientTargetIp(targetIp);
|
||||
proxyMsg.setClientTargetPort(Integer.valueOf(targetPort));
|
||||
if(RouteType.LOCAL.equals(route.getRouteType())){
|
||||
|
@ -19,6 +19,7 @@ import org.framework.lazy.cloud.network.heartbeat.protocol.route.ClientProxyRout
|
||||
import org.framework.lazy.cloud.network.heartbeat.protocol.route.ProxyRoute;
|
||||
import org.framework.lazy.cloud.network.heartbeat.protocol.route.RouteContext;
|
||||
import org.framework.lazy.cloud.network.heartbeat.protocol.route.RouteType;
|
||||
import org.wu.framework.core.NormalUsedString;
|
||||
import org.wu.framework.core.utils.ObjectUtils;
|
||||
|
||||
import java.util.UUID;
|
||||
@ -51,26 +52,26 @@ public class NettySocks5CommandRequestHandler extends SimpleChannelInboundHandle
|
||||
protected void channelRead0(ChannelHandlerContext ctx, Socks5CommandRequest request) throws Exception {
|
||||
if (request.type() == Socks5CommandType.CONNECT) {
|
||||
|
||||
String host = request.dstAddr();
|
||||
int port = request.dstPort();
|
||||
String originHost = request.dstAddr();
|
||||
int originPort = request.dstPort();
|
||||
Socks5AddressType socks5AddressType = request.dstAddrType();
|
||||
String visitorId = ChannelAttributeKeyUtils.getVisitorId(ctx.channel());
|
||||
NettyProxyMsg proxyMsg = new NettyProxyMsg();
|
||||
|
||||
proxyMsg.setVisitorId(visitorId);
|
||||
ProxyRoute route = RouteContext.getRoute(host, String.valueOf(port));
|
||||
ProxyRoute route = RouteContext.getRoute(originHost, String.valueOf(originPort));
|
||||
|
||||
|
||||
|
||||
if(ObjectUtils.isEmpty(route)){
|
||||
// 未查询到路由信息、本地代理
|
||||
proxyMsg.setType(ProxyMessageType.SOCKS_LOCAL_PROXY);
|
||||
proxyMsg.setClientTargetIp(host);
|
||||
proxyMsg.setClientTargetPort(port);
|
||||
proxyMsg.setClientTargetIp(originHost);
|
||||
proxyMsg.setClientTargetPort(originPort);
|
||||
}else {
|
||||
// 其他路由代理
|
||||
String targetIp = route.getTargetIp();
|
||||
String targetPort = route.getTargetPort();
|
||||
String targetPort = NormalUsedString.ASTERISK.equals(route.getTargetPort())?String.valueOf(originPort):route.getTargetPort();
|
||||
proxyMsg.setClientTargetIp(targetIp);
|
||||
proxyMsg.setClientTargetPort(Integer.parseInt(targetPort));
|
||||
if(RouteType.LOCAL.equals(route.getRouteType())){
|
||||
|
@ -6,17 +6,17 @@ package org.framework.lazy.cloud.network.heartbeat.protocol.route;
|
||||
public interface ProxyRoute {
|
||||
|
||||
|
||||
public String getVirtualIp();
|
||||
String getVirtualIp();
|
||||
|
||||
|
||||
public RouteType getRouteType();
|
||||
RouteType getRouteType();
|
||||
|
||||
|
||||
public String getVirtualPort();
|
||||
String getVirtualPort();
|
||||
|
||||
|
||||
public String getTargetIp();
|
||||
String getTargetIp();
|
||||
|
||||
|
||||
public String getTargetPort();
|
||||
String getTargetPort();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user