Java 类io.netty.handler.codec.socksx.v5.Socks5InitialRequestDecoder 实例源码
项目:slyak-commons
文件:Socks5ProxyServer.java
@Override
ChannelHandler[] getCustomChannelHandlers(EventLoopGroup clientGroup) {
//socks auth
//new Socks5PasswordAuthRequestDecoder();
//new Socks5PasswordAuthRequestHandler()
return new ChannelHandler[] {
//Socks5MessageByteBuf
Socks5ServerEncoder.DEFAULT,
//socks5 init
new Socks5InitialRequestDecoder(),
new Socks5InitialRequestHandler(),
//socks connection
new Socks5CommandRequestDecoder(),
new Socks5CommandRequestHandler(clientGroup)
};
}
项目:netty-socks
文件:Socks5WorkerChannelInitializer.java
@Override
protected void initChannel(io.netty.channel.socket.SocketChannel channel) throws Exception {
ChannelPipeline pipeline = channel.pipeline();
// 连接管理
pipeline.addLast(ConnectionManageHandler.NAME, new ConnectionManageHandler(3000));
// 空闲超时
pipeline.addLast(new IdleStateHandler(10, 10, 0));
pipeline.addLast(new IdleStateEventHandler());
// 读写超时
pipeline.addLast(new ReadTimeoutHandler(socksProperties.getReadTimeoutMillis(), TimeUnit.MILLISECONDS));
pipeline.addLast(new WriteTimeoutHandler(socksProperties.getWriteTimeoutMillis(), TimeUnit.MILLISECONDS));
// netty log
//pipeline.addLast(new LoggingHandler());
// 负责将输出的 Socks5Message 转为 ByteBuf
pipeline.addLast(Socks5ServerEncoder.DEFAULT);
// init
pipeline.addLast(Socks5InitialRequestDecoder.class.getName(), new Socks5InitialRequestDecoder());
pipeline.addLast(Socks5InitialRequestHandler.class.getName(), socks5InitialRequestHandler);
// auth
if (socks5PasswordAuthRequestHandler != null) {
pipeline.addLast(Socks5PasswordAuthRequestDecoder.class.getName(), new Socks5PasswordAuthRequestDecoder());
pipeline.addLast(Socks5PasswordAuthRequestHandler.class.getName(), socks5PasswordAuthRequestHandler);
}
// connection
pipeline.addLast(Socks5CommandRequestDecoder.class.getName(), new Socks5CommandRequestDecoder());
pipeline.addLast(Socks5CommandRequestHandler.class.getName(), socks5CommandRequestHandler);
}
项目:probe
文件:SocksServerInitializer.java
@Override
protected void initChannel(SocketChannel ch) throws Exception {
//流量统计
ch.pipeline().addLast(
ProxyChannelTrafficShapingHandler.PROXY_TRAFFIC,
new ProxyChannelTrafficShapingHandler(3000)
);
//channel超时处理
ch.pipeline().addLast(new IdleStateHandler(3, 30, 0));
ch.pipeline().addLast(new ProxyIdleHandler());
//netty日志
if (config.isLogging()) {
ch.pipeline().addLast(new LoggingHandler());
}
ch.pipeline().addLast(Socks5ServerEncoder.DEFAULT);
//sock5 init decode
ch.pipeline().addLast(new Socks5InitialRequestDecoder());
//sock5 init handler
ch.pipeline().addLast(new Socks5InitialRequestHandler(config));
if (config.isAuth()) {
//socks auth
ch.pipeline().addLast(new Socks5PasswordAuthRequestDecoder());
//socks auth
ch.pipeline().addLast(new Socks5PasswordAuthRequestHandler(config));
}
//socks connection
ch.pipeline().addLast(new Socks5CommandRequestDecoder());
//Socks connection
ch.pipeline().addLast(new Socks5CommandRequestHandler());
}
项目:socks5-netty
文件:ProxyServer.java
public void start() throws Exception {
if(proxyFlowLog == null) {
proxyFlowLog = new ProxyFlowLog4j();
}
if(passwordAuth == null) {
passwordAuth = new PropertiesPasswordAuth();
}
EventLoopGroup boss = new NioEventLoopGroup(2);
EventLoopGroup worker = new NioEventLoopGroup();
try {
ServerBootstrap bootstrap = new ServerBootstrap();
bootstrap.group(boss, worker)
.channel(NioServerSocketChannel.class)
.option(ChannelOption.SO_BACKLOG, 1024)
.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 1000)
.childHandler(new ChannelInitializer<SocketChannel>() {
@Override
protected void initChannel(SocketChannel ch) throws Exception {
//流量统计
ch.pipeline().addLast(
ProxyChannelTrafficShapingHandler.PROXY_TRAFFIC,
new ProxyChannelTrafficShapingHandler(3000, proxyFlowLog, channelListener)
);
//channel超时处理
ch.pipeline().addLast(new IdleStateHandler(3, 30, 0));
ch.pipeline().addLast(new ProxyIdleHandler());
//netty日志
if(logging) {
ch.pipeline().addLast(new LoggingHandler());
}
//Socks5MessagByteBuf
ch.pipeline().addLast(Socks5ServerEncoder.DEFAULT);
//sock5 init
ch.pipeline().addLast(new Socks5InitialRequestDecoder());
//sock5 init
ch.pipeline().addLast(new Socks5InitialRequestHandler(ProxyServer.this));
if(isAuth()) {
//socks auth
ch.pipeline().addLast(new Socks5PasswordAuthRequestDecoder());
//socks auth
ch.pipeline().addLast(new Socks5PasswordAuthRequestHandler(getPasswordAuth()));
}
//socks connection
ch.pipeline().addLast(new Socks5CommandRequestDecoder());
//Socks connection
ch.pipeline().addLast(new Socks5CommandRequestHandler());
}
});
ChannelFuture future = bootstrap.bind(port).sync();
logger.debug("bind port : " + port);
future.channel().closeFuture().sync();
} finally {
boss.shutdownGracefully();
worker.shutdownGracefully();
}
}
项目:socks5-netty
文件:ProxyServer.java
public void start() throws Exception {
if(proxyFlowLog == null) {
proxyFlowLog = new ProxyFlowLog4j();
}
if(passwordAuth == null) {
passwordAuth = new PropertiesPasswordAuth();
}
EventLoopGroup boss = new NioEventLoopGroup(2);
EventLoopGroup worker = new NioEventLoopGroup();
try {
ServerBootstrap bootstrap = new ServerBootstrap();
bootstrap.group(boss, worker)
.channel(NioServerSocketChannel.class)
.option(ChannelOption.SO_BACKLOG, 1024)
.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 1000)
.childHandler(new ChannelInitializer<SocketChannel>() {
@Override
protected void initChannel(SocketChannel ch) throws Exception {
//流量统计
ch.pipeline().addLast(
ProxyChannelTrafficShapingHandler.PROXY_TRAFFIC,
new ProxyChannelTrafficShapingHandler(3000, proxyFlowLog, channelListener)
);
//channel超时处理
ch.pipeline().addLast(new IdleStateHandler(3, 30, 0));
ch.pipeline().addLast(new ProxyIdleHandler());
//netty日志
if(logging) {
ch.pipeline().addLast(new LoggingHandler());
}
//Socks5MessagByteBuf
ch.pipeline().addLast(Socks5ServerEncoder.DEFAULT);
//sock5 init
ch.pipeline().addLast(new Socks5InitialRequestDecoder());
//sock5 init
ch.pipeline().addLast(new Socks5InitialRequestHandler(ProxyServer.this));
if(isAuth()) {
//socks auth
ch.pipeline().addLast(new Socks5PasswordAuthRequestDecoder());
//socks auth
ch.pipeline().addLast(new Socks5PasswordAuthRequestHandler(getPasswordAuth()));
}
//socks connection
ch.pipeline().addLast(new Socks5CommandRequestDecoder());
//Socks connection
ch.pipeline().addLast(new Socks5CommandRequestHandler());
}
});
ChannelFuture future = bootstrap.bind(port).sync();
logger.debug("bind port : " + port);
future.channel().closeFuture().sync();
} finally {
boss.shutdownGracefully();
worker.shutdownGracefully();
}
}
项目:byproxy
文件:Socks5ProxyMatcher.java
@Override
public void handlePipeline(ChannelPipeline pipeline) {
pipeline.addLast("socks5-server-encoder", Socks5ServerEncoder.DEFAULT);
pipeline.addLast("socks5-initial-decoder", new Socks5InitialRequestDecoder());
pipeline.addLast(new Socks5ProxyHandler(messageListener, sslContextManager, proxyHandlerSupplier));
}