站内搜索

搜索

06-18 00:00
06-02 13:26
05-31 17:11

Java使用Netty实现端口转发&Http代理&Sock5代理服务器

498

主题

192

点数

1270

积分

管理员

积分
1270

柴到了三倍冰淇淋无人之境【一阶】立华奏小樱(小丑装)⑨的冰沙

发表于 2025-3-13 01:15:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x

前言

最近在寻找一些比较方便使用且性能高效的4层转发工具,于是找到了这款工具。他是通过Netty实现的端口转发、Http/Https代理服务器、Sock5代理服务器的一个工具。

项目地址:https://github.com/jxlhljh/nettyProxyServer

功能

端口转发:
HTTP代理服务器,支持账号密码认证
Sock5代理服务器,支持账号密码认证
支持连接后端时直接连接或采用代理连接,也后端代理连接认证

参数配置

configs:
    #端口转发demo
  - enable: true
    serverType: forward
    serverPort: 13306
    remoteHost: 127.0.0.1
    remotePort: 3306

    #http/https代理demo
  - enable: true
    serverType: http
    serverPort: 3128

    #sock5代理demo,需要认证
  - enable: true
    serverType: sock5
    serverPort: 1080
    needLogin: true
    username: "test"
    password: "123456"

比如上面的配置,就是开启了一个端口转发,一个Http代理和一个Sock5代理

全量配置参考,config_full.yml:

#此文件包含所有能配置的属性,只用来查看使用,程序使用的是config.yml中的配置
configs:
    #规则是否生效,true或者false,默认为true
  - enable: true
    #类型,forward或http或sock5,表示端口转发或http代理或sock5代理,默认为forward
    serverType: forward
    #本地监听的端口号
    serverPort: 13306
    #转发的目标IP,serverType为forward时此参数才有意义
    remoteHost: 127.0.0.1
    #转发的目标端口,serverType为forward时此参数才有意义
    remotePort: 3306
    #是否需要认证,serverType为http和sock5时此参数才有意义
    needLogin: true
    #认证账号,serverType为http和sock5时此参数才有意义
    username: "user"
    #认证密码,serverType为http和sock5时此参数才有意义
    password: "pwd"
    #是否需要通过后端代理连接远程服务器,会覆盖全局的配置
    proxyNeed: false
    #如果需要后端口代理,代理连接类型,http或socks5,会覆盖全局的配置
    proxyType: http
    #如果需要后端口代理,代理连接IP,会覆盖全局的配置
    proxyIp: 127.0.0.1
    #如果需要后端口代理,代理连接Port,会覆盖全局的配置
    proxyPort: 1080
    #如果需要后端口代理,代理连接用户名,通过是否为空来决定需不需要认证,会覆盖全局的配置
    proxyUsername: ""
    #如果需要后端口代理,代理连接密码,通过是否为空来决定需不需要认证,会覆盖全局的配置
    proxyPassword: ""

#===后端代理全局配置,会对所有的configs有效,以下配置都有默认值,如果没配置,则采用默认===#
global:
  #是否需要通过后端代理连接远程服务器
  proxyNeed: false
  #代理连接类型,http或socks5
  proxyType: http
  #代理连接IP
  proxyIp: 127.0.0.1
  #代理连接Port
  proxyPort: 1080
  #代理连接用户名,通过是否为空来决定需不需要认证
  proxyUsername: ""
  #代理连接密码,通过是否为空来决定需不需要认证
  proxyPassword: ""

程序下载

程度可直接下载已编绎好的文件(要求JDK1.8环境下使用)

https://gitee.com/jxlhljh/nettyProxyServer/raw/master/release/nettyProxyServer.zip

https://github.com/jxlhljh/nettyProxyServer/blob/master/release/nettyProxyServer.zip

也可以采用源码编绎

git clone https://github.com/jxlhljh/nettyProxyServer.git
或
git clone https://gitee.com/jxlhljh/nettyProxyServer.git

mvn clean package

程序启动

解压程序

unzip nettyProxyServer.zip

$ ls -hl
total 99K
-rw-r--r-- 1 liujh 197121 342 Jan 20 17:06 config.yml
drwxr-xr-x 1 liujh 197121   0 Jan 20 18:25 lib/
-rw-r--r-- 1 liujh 197121 71K Jan 20 14:50 nettyProxyServer.jar
-rw-r--r-- 1 liujh 197121 137 Jan 20 20:59 start.bat
-rwxr-xr-x 1 liujh 197121 226 Jan 20 17:03 start.sh

启动程序

#windowos
./start.bat

#Linux
./start.sh

源码

git clone https://github.com/jxlhljh/nettyProxyServer.git

git clone https://gitee.com/jxlhljh/nettyProxyServer.git
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



频道订阅

频道订阅

加入社群

加入社群

TG频道|RSS

Powered by Pixtech

© 2025 Pixtech Team.