# tinyProxy **Repository Path**: miao-yongyong/tinyProxy ## Basic Information - **Project Name**: tinyProxy - **Description**: TinyProxy是sock5/sock4a上网代理项目 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2022-01-18 - **Last Updated**: 2022-01-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # tinyProxy #### 介绍 本项目是Netty实战项目,你可以免费下载源码学习,用以熟悉netty基本api运用(包括:Future/ChannelHandler/Decoder/Listener等等)。 TinyProxy是sock5/sock4a上网代理项目, 分为本地客户端(local)和远程服务端(remote),代码都是同一份。你可以通过命令行参数 **--tiny.remote**参数来指定程序是以本地客户端(local)还是远程服务端(remote)运行。 * javaw -jar proxy-1.0.0.jar --tiny.remote=true .....: 以远程服务端运行 * javaw -jar proxy-1.0.0.jar --tiny.remote=false.....: 以本地客户端运行 本项目经典场景: 企业内部局域网计算机,通过一台可以上网服务器,完成局域网计算机访问互联网 **郑重声明:本项目是以技术学习、交流为主要目的,请自觉遵守互联网相关法律,请勿做非法用途!** #### 软件架构 ##### 总体工作流程 ![image-20191118150559280](README.assets/image-20191118150559280.png) **注:** * 本地服务器和远程需要使用相同的token(建议采用32字符的uuid),否则会连接失败 * Local和Remote采用二进制加密数据传输,保证了通讯安全 ##### 项目使用的开源框架 * jar包管理:maven * springboot-2.2.1:利用springboot最终生成胖jar,简化最终部署包的运行(java -jar xxx.jar) * netty-all-4.1.43.Final.jar:利用netty的高性能,简单性;让项目能简单/可靠的使用java nio优势 #### 安装教程 不管是本地电脑,还是远程服务器,都需要安装jdk8以上的运行环境。你可以采用源代码编译,也可以直接使用Release/proxy-1.0.0.jar二进制包(推荐)。下面介绍二进制安装过程 1. 服务器安装 * 把Release目录下的 proxy-1.0.0.jar和tinyRemote.bat下载并上传至服务器 * 修改tinyRemote.bat启动参数 javaw -jar proxy-1.0.0.jar --tiny.remote=true --tiny.remotePort=13080 --tiny.token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx **关键参数解释:** --tiny.remote=false,表示proxy-1.0.0.jar是以远程服务器的方式启动 --tiny.token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,xxx部分指定你的服务端鉴权token --tiny.remotePort=13080 13080为服务端监听端口 2. 客户端 * 把Release目录下的 proxy-1.0.0.jar和tinyLocal.bat下载本地 * 修改tinyLocal.bat启动参数 javaw -jar proxy-1.0.0.jar --tiny.remote=false --tiny.localPort=11080 --tiny.remotePort=13080 --tiny.remoteHost=192.168.168.168 --tiny.token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx **关键参数解释:** --tiny.localPort=11080,为本地sock5服务器监听端口,供浏览器代理服务器配置 --tiny.remote=false,表示以本地代理服务器方式启动 --tiny.remotePort=13080,表示远程服务器的监听端口,用来建立socket套接字 --tiny.remoteHost=192.168.168.168,表示远程服务器IP或域名,根据自己实际情况修改 --tiny.token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,指定服务端要求的鉴权token,用来与服务器端密文传输 #### 使用说明 1. #### 参与贡献 1.