Skip to content
This repository has been archived by the owner on Aug 29, 2023. It is now read-only.

DangoTown/ReverseProxy

Repository files navigation

ReverseProxy

概述

使用kotlin编写程序, 并打包为jar运行 使用了kotlin-coroutines 协程来提高运行效率

实现

  • 使用Socket连接到目标服务器, 使用SocketServer来监听本地服务
  • 创建两个协程来交换数据

编译

  • 本项目使用gradle来编译项目, 并使用ShadowJar将代码编译为 Jar
  • 使用./gradlew build (Linux, Unix) | .\gradlew.bat build (Windows) 编译
  • 编译后的jar文件在./build/libs/<ArtifactsName>-all.jar 请运行-all包含在文件名内的jar文件
  • IntelliJ IDEA中使用 Ctrl + F9 编译项目并不出出现 -all 字样在文件名内, 请直接运行输出的jar文件

运行

  • 你可以在jar文件同级目录下创建config.txt 里面包含以下内容:
    • localHost: <Local Host>
    • localPort: <Local Port>
    • remoteHost: <Remote Host>
    • remotePort: <Remote Port>
  • 请将冒号后的配置替换为你所需要的配置

使用例

运行反代

$ java -jar ReverseProxy.jar 0.0.0.0 80 localhost 8000

运行后端

$ python3 -m http.server

测试

$ curl http://localhost