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

这篇具有很好参考价值的文章主要介绍了Java使用Netty实现端口转发&Http代理&Sock5代理服务器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、简介

这里总结整理了之前使用Java写的端口转发、Http代理、Sock5代理程序,放在同一个工程中,方便使用。

开发语言:Java
开发框架:Netty

1.功能

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

2.参数配置

修改config.yml

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: ""

3.程序下载

程度可直接下载已编绎好的文件(要求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

4.程序启动

解压程序

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

启动程序文章来源地址https://www.toymoban.com/news/detail-822681.html

#window
./start.bat

#Linux
./start.sh

5.源码

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

到了这里,关于Java使用Netty实现端口转发&Http代理&Sock5代理服务器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 内网渗透之端口转发、映射、代理

    端口转发(Port forwarding),有时被叫做隧道,是安全壳(SSH)为网络安全通信使用的一种方法。端口转发是转发一个网络端口从一个网络节点到另一个网络节点的行为,其使一个外部用户从外部经过一个被激活的NAT路由器到达一个在私有内部IP地址(局域网内部)上的一个端

    2024年02月08日
    浏览(25)
  • 用Nginx做端口转发(反向代理)

    本文中,我们介绍Nginx如何做端口转发,还有各种转发规则 首先介绍最常用的,将域名转发到本地另一个端口上 这样访问 http://tomcat.shaochenfeng.com 时就会转发到本地的 8080 端口

    2024年02月14日
    浏览(12)
  • nginx 反向代理服务器端口转发问题

    nginx 反向代理服务器端口转发问题

    先介绍一下项目背景,公司里有个外包Saas项目,这里假设为A项目( 前后端不分离 );项目架构大概如下;但是项目部署到生产环境时,那台服务器80端口被其他应用占用了(我尼玛...),nginx监听端口那边只能监听其他端口了,比如监听:18000,通过nginx反向代理将18000端口转发到

    2024年02月04日
    浏览(12)
  • Nginx常用配置-反向代理-https重定向-端口转发

    二级目录映射 目前前后端项目分离场景多了以后,一般是前端一个端口,后端一个端口。 如前端是https://example.com/index.html,调用的接口是https://example.com:4433 如此部署对于一些小项目未免有些麻烦,当然你在公网环境下也可以选择使用子域名、其他域名进行跨域访问。 这里说

    2024年02月16日
    浏览(11)
  • lua使用resty.http做nginx反向代理(https请求,docker容器化部署集群),一个域名多项目转发

    lua使用resty.http做nginx反向代理(https请求,docker容器化部署集群),一个域名多项目转发

    下载使用 链接:https://pan.baidu.com/s/1uQ7yCzQsPWsF6xavFTpbZg 提取码:htay –来自百度网盘超级会员V5的分享 ad_load.lua文件

    2024年01月18日
    浏览(20)
  • 使用Java实现HTTP代理服务器:为你当个“中间人“

    使用Java实现HTTP代理服务器:为你当个“中间人“

    在互联网世界里,代理服务器就像是一个\\\"中间人\\\",帮助客户端和服务器之间传递信息。那么,如果你想用Java实现一个代理服务器,该怎么做呢?下面就带你走进这个有趣的\\\"中间人\\\"世界! 首先,我们需要了解代理服务器的工作原理。简单来说,当一个客户端向代理服务器发

    2024年02月19日
    浏览(10)
  • MacOS使用PF实现iptables的端口转发功能

    使用Flask启动一个简单的web服务 浏览器访问:http://127.0.0.1:5000/ 将所有端口 8080 的请求,都转发到 127.0.0.1:5000 ,类似Nginx的反向代理 1、开启IPv4 的转发 2、添加转发配置文件 查看到的网络名称 检查正确性 3、修改pf配置文件 增加如下配置 重启pf服务 浏览器访问:http://127.0.0

    2024年02月06日
    浏览(13)
  • 利用jmeter java sample端口转发实现对远程数据库的压力测试

    利用jmeter java sample端口转发实现对远程数据库的压力测试

    目录 1 需求背景 2 工具/包 2.1 Apache-jmeter 2.2 eclipse 2.3 Com.jcraft.jsch 3 插件开发 3.1 新建工程 3.2 配置buildpath 3.3 Constants类 3.4 openSSH类 3.5 closeSSH类 4 连接测试 4.1 Jar包导出  4.2 java sample  4.3 sql sample     对数据库进行压力测试时,需要模拟同一时间大量的sql请求发送,借助于jmete

    2024年02月10日
    浏览(10)
  • java使用smiley-http-proxy-servlet实现反向代理,跳过SSL认证

            nginx可以实现反向代理,但是有时候需要使用java代码来实现,经过摸索,发现有开源的项目可以实现,所以简单记录一下如何使用         没啥好说         该项目的核心类是ProxyServlet,主要操作都在这个类中实现了,我们可以继承该类,重写其中的方法,自定义

    2024年02月09日
    浏览(13)
  • Caddy反向代理转发修改http请求路径

    Caddy是个非常不错的开源服务器产品,简单易用,自带ssl。只是没啥详细的中文文档,遇到问题只能看官方文档。 记录一下使用Caddy转发http请求的方法。 问题:将http://192.168.1.10:7077/product/*的请求转发到http://192.168.1.12:7078/*。这里其实是两个需求,一个是转发端口,还有个是去

    2024年02月12日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包