# proxy4j
**Repository Path**: sumlen/proxy4j
## Basic Information
- **Project Name**: proxy4j
- **Description**: Java 内网穿透
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: https://gitee.com/zgbd/proxy4j
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 7
- **Created**: 2024-10-15
- **Last Updated**: 2024-10-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 前言
`Proxy4j`是Java开源的内网穿透。使用者无需安装JDK,下载解压即可运行文件。应用场景:内网穿透、反向代理,目前支持协议 TCP、SOCKS5。
## 项目结构
- proxy4j-client 穿透客户端
- proxy4j-server 穿透服务端
- proxy4j-core 穿透公共类
- proxy4j-socks5 socks5服务端
- 打包目录 存放OpenJDK的jre环境、一键打包脚本。方便Java程序在使用者没装jdk的环境下运行。
## 使用
内网穿透部署:外网服务器部署proxy4j server(需安装mysql),内网部署proxy4j client,使用者访问外网监听的端口即可。
Socks5的方式:内网额外再部署一个socks5服务端,再把socks5端口内网穿透出来,使用proxifier 软件设置socks5的ip和端口即可。
proxifier 下载地址:https://www.proxifier.com/download/
数据库默认使用h2数据库,启动服务端访问:http://127.0.0.1/h2,账号密码:root/12345
## 可执行包下载
| 标题 | 版本 | 操作 | 大小 |
|------------------------------------------| ---- | ------------------------------------------------------------ |-----|
| proxy4j 服务器版 | v1.0 | [下载](https://alice-bucket.oss-cn-beijing.aliyuncs.com/lowcode/proxy4j_1.0_server.zip) | 28M |
| proxy4j 服务器版(包含Windows64 JDK8) | v1.0 | [下载](https://alice-bucket.oss-cn-beijing.aliyuncs.com/lowcode/proxy4j_1.0_server_jdkwin64.zip) | 74M |
| proxy4j 客户端版、socks5服务端 | v1.0 | [下载](https://alice-bucket.oss-cn-beijing.aliyuncs.com/lowcode/proxy4j_1.0_client.zip) | 15M |
| proxy4j 客户端版、socks5服务端(包含Windows64 JDK8) | v1.0 | [下载](https://alice-bucket.oss-cn-beijing.aliyuncs.com/lowcode/proxy4j_1.0_client_jdkwin64.zip) | 61M |
## 运行
### windows
```shell
# 服务端运行
server.bat
# 客户端运行
client.bat
# socks5运行
socks5.bat
```
### linux
```shell
# 服务端运行
server.sh
# 客户端运行
client.sh
# socks5运行
socks5.sh
```
### docker
服务端运行
```shell
# 自定义创建镜像
# docker build -f Dockerfile -t proxy4j-server:1.0.2 .
# 拉取镜像
docker pull terrybg/proxy4j-server:1.0.2
# 运行镜像
docker run --restart=always --network host --name=proxy4j-server -d terrybg/proxy4j-server:1.0.2
```
客户端运行
```shell
# 自定义创建镜像
# docker build -f Dockerfile -t proxy4j-client:1.0.2 .
# 拉取镜像
docker pull terrybg/proxy4j-client:1.0.2
# 运行镜像
docker run --restart=always --network host --name=proxy4j-client -d terrybg/proxy4j-client:1.0.2
# 挂载配置文件的方式
docker run --restart=always --network host --name=proxy4j-client -d terrybg/proxy4j-client:1.0.2
mkdir -p /home/soft/proxy4j/proxy4j-client
docker cp proxy4j-client:/proxy4j/application.yml /home/soft/proxy4j/proxy4j-client/application.yml
docker rm -f proxy4j-client
docker run --restart=always --network host -v /home/soft/proxy4j/proxy4j-client/application.yml:/proxy4j/application.yml --name=proxy4j-client -d terrybg/proxy4j-client:1.0.2
```
socks5运行
```shell
# 自定义创建镜像
# docker build -f Dockerfile-socks5 -t proxy4j-socks5:1.0.2 .
# 拉取镜像
docker pull terrybg/proxy4j-socks5:1.0.2
# 运行镜像
docker run --restart=always --network host -d terrybg/proxy4j-socks5:1.0.2
```
## 后续迭代方向
- 优化代码和稳定性
- Web管理端
- 传输添加客户端版本号
- 支持udp、stcp、sudp、p2p
- Quarkus、GraalVM版本
## 可运行脚本说明
frp、nps是go语言开发的,在windows环境exe文件无需安装任何环境即可运行,但是存在一个问题会报病毒被杀掉。Proxy4j解决了这个问题,打包后内置jre环境,下载解压即可运行。
使用GraalVM或者Spring Navtive也可实现,但是这块技术目前还成熟,构建和打包都比较麻烦,使用内置jre的方案更好。
## 更新历史
### 1.0.0
`2022-12-29`
- 🎉 `Proxy4j` 第一个开源版本
- 🎉 `Proxy4j` 支持TCP、Socks5内网穿透
- 🎉 `Proxy4j` 解压即用,无需安装JDK可运行解决方案
### 1.0.1
`2023-01-05`
- 🎉 `Proxy4j` 支持h2数据库,默认是h2数据库
### 1.0.2
`2023-01-10`
- 🎉 `Proxy4j` Docker部署
`2023-02-13`
- 🎉 socks5 添加验证