IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> netty-proxy 内网传统工具 -> 正文阅读

[Java知识库]netty-proxy 内网传统工具

netty-proxy 网络穿透工具

netty-proxy 是一款基于JAVA 语言实现的网络穿透(代理)工具。目前市面上的网络穿透工具虽然很多有收费,有免费,有安装复杂,功能过于丰富。这款基于JAVA语言开发(目前java开发者居多),功能简洁,只支持http和tcp代理转发协议,面向开发者开发调试使用。

主要应用场景:

  1. 将线上的流量转发本地电脑进行调试。
  2. 前后端代码联调。

源码:https://github.com/dengyifei/netty-proxy

网络图

在这里插入图片描述
上图根据配置文件例子:
启动客户端

java -DdomainUser=xefei -Dhost=192.168.31.108 -Dport=8080 -jar ProxyClient-1.0-SNAPSHOT-jar-with-dependencies.jar
  1. 访问 10.0.0.110:1202 映射到访问 192.168.31.107:8080

  2. 访问 http://xefei.t.xx.com/api/cc 映射到访问 http://192.168.31.108:8080/api/cc

系统需求

  • JDK(1.8以上,推荐1.8)
  • Apache Maven 3.x
  • 准备一台公网机器(有域名最好没有域名就使用host文件)

Quick start

工具部署

  • 方法一 下载源码,自己编译。

(1) 下载源码

 git clone git@github.com:dengyifei/netty-proxy.git

(2) 通过maven打包

(2.1) 编译服务端

$ cd  {netty-proxy}/ProxySever
$ mvn clean package

打包成功之后的jar在:
{netty-proxy}/ProxySever/target/ProxySever-1.0-SNAPSHOT-jar-with-dependencies.jar

服务端jar包部署到公网机器上。运行启动jar命令

java  -jar ProxySever-1.0-SNAPSHOT-jar-with-dependencies.jar

## 指定配置文件
java -DconfigPath=./proxy.yml -jar ProxySever-1.0-SNAPSHOT-jar-with-dependencies.jar

(2.2) 编译客户端

$ cd  {netty-proxy}/ProxyClient
$ mvn clean package

打包成功之后的jar在:
{netty-proxy}/ProxyClient/target/ProxyClient-1.0-SNAPSHOT-jar-with-dependencies.jar

客户端jar包部署到内网机器上,也可以本机电脑。运行启动jar命令

## 默认配置文件
java  -jar ProxyClient-1.0-SNAPSHOT-jar-with-dependencies.jar

## 指定配置
java -DconfigPath=./proxy.yml -DdomainUser=hefei -Dhost=127.0.0.1 -Dport=8080 -jar ProxyClient-1.0-SNAPSHOT-jar-with-dependencies.jar

-DconfigPath=配置文件目录
-DdomainUser=客户端登陆用户名
-Dhost=目标主机
-Dhost=目标端口
  • 方法二 直接下载对应的jar包。

配置文件

默认配置文件proxy.yml,可以通过启动命令指定:

java -DconfigPath=./proxy.yml -jar xx.jar
  • 服务端配置文件
# 传输通道-服务端
transmitServer:
  port: 5000
  maxFrameLength: 5242880
# http 代理服务
proxyHttpServer:
  port: 9000
  maxContentLength: 5242880
# tcp 代理服务
proxyTcpServer:
    # 代理端口
  - port: 1201
    # 客户端的登陆用户名
    userName: hefei
    # 目标主机
    targetHost: 192.168.1.107
    # 目标服务端口
    targetPort: 8080
    maxContentLength: 5242880
  - port: 1202
    userName: xefei
    targetHost: 192.168.31.107
    targetPort: 8080
    maxContentLength: 5242880
  - port: 1203
    userName: xefei
    targetHost: 192.168.31.108
    targetPort: 22
    maxContentLength: 5242880
  • 客户端配置文件
# 传输通道-客户端
proxyTransmitClient:
  # 传输通道的服务端地址,即上面配置的transmitServer
  host: 127.0.0.1
  port: 5000
  # 客户端的登陆用户名(可以通过启动命令指定,见下面)
  loginName: efei
http 代理服务(可以通过启动命令指定,见下面)
proxyHttpClient:
  # 目标服务
  host: 192.168.0.100
  # 目标端口
  port: 81
java -DdomainUser=hefei -Dhost=127.0.0.1 -Dport=8080 -jar ProxyClient-1.0-SNAPSHOT-jar-with-dependencies.jar
-DdomainUser=客户端登陆用户名
-Dhost=目标主机
-Dhost=目标端口

http代理原理

netty-proxy提供更加灵活的http内网穿透到本机访问,通过启动命令就可使用,不需要在服务端复杂的配置。

  • 原理
    netty-proxy根据 http协议中host 信息进行转发。详细操作流程如下:
  1. 配置公网机器域名解析: 假设: *.z.xx.com 域名>>指向>> 公网机器IP。没有域名解析那就在自己本机上host文件设置一条解析,如: xefei.z.xx.com >>指向>>公网机器IP.

注意:xefei就是第二点启动参数-DdomainUser 一致。

  1. 启动客户端
## 假设以下启动命令
java -DdomainUser=xefei -Dhost=192.168.31.108 -Dport=8080 -jar ProxyClient-1.0-SNAPSHOT-jar-with-dependencies.jar
  1. 启动完成之后

访问 http://xefei.z.xx.com:9000/api/cc/get 就可以访问到http://192.168.31.108:8080/api/cc/get

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-02-28 15:14:49  更:2022-02-28 15:19:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:26:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码