# javanet
**Repository Path**: liugang2019/javanet
## Basic Information
- **Project Name**: javanet
- **Description**: Java内网穿透,通过把内网电脑映射到外网服务器,从而在有网的地方都可以访问内网服务。想在家里远程控制公司的电脑?想在公司远程家里的电脑?想在家里的电脑部署web服务,希望外网能够访问?想通过外网访问内网的linux服务器?客户的服务器无法通过外网直接访问,但又不想跑到客户现场进行维护?都可以使用javanet,java版内网穿透。
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 5
- **Created**: 2020-04-21
- **Last Updated**: 2021-11-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
#解决的问题
想在家里远程控制公司的电脑?想在公司远程家里的电脑?想在家里的电脑部署web服务,希望外网能够访问?想通过外网访问内网的linux服务器?客户的服务器无法通过外网直接访问,但又不想跑到客户现场进行维护?
通过映射内网服务到外网端口,解决外网不能访问内网问题。当访问外网端口时,实际上访问到的是内网的服务。
#原理
家里电脑需要远程公司电脑,那么我们通过一种技术把公司电脑远程端口3389映射到外网服务器的某个端口上,那么家庭电脑只需要远程外网服务器上的这个端口就访问到了公司电脑。而这种映射技术就是通过网络编程来实现,通过网络编程在外网服务器与公司电脑之间搭建一座数据传输的桥梁,这样家庭电脑通过访问外网服务器把数据传输给公司电脑,公司电脑返回的数据又通过外网服务器传输给家庭电脑。
#javanet
Java技术开发的内网穿透,端口映射工具。分为server端和client端。server端运行在外网服务器,client端运行在内网主机。可以都在内网运行测试。
#运行
启动server端和client端的Main.java程序。没有先后顺序之分,在运行时可以关闭client端再启动client端,也可以关闭server端再启动server端,此时不用重新启动client端。
#服务端配置
配置文件ports.properties
#版本号,决定是否重新读取文件
version=1
log_file=E://tmp/s.log
#服务器与客服端的通信端口,中途不能更改得和客户端配置保持一致
server_ip=192.168.1.155
server_port=30301
#服务端使用ip模式下,一个代理端口无法映射到两个内网服务
#201701031918305378客户端的唯一key,客户端接入服务器的凭证
#28080,内网服务器映射到外网的端口
#192.168.1.28,内网服务器地址
#8080,内网服务端口
#把192.168.1.28主机上在8080端口的服务映射到外网28080端口上
client1_port2=201701031918305378:28080:192.168.1.28:8080
client1_port3=201701031918305378:48080:192.168.1.49:8080
#客户端配置
配置文件config.properties
#client唯一标识
client_key=201701031918305378
#服务端地址
server_ip=192.168.1.155
#服务端通信端口,必须与服务器的配置一样
server_port=30301
#socket池配置
maximumSocketSize=10
coreSocketSize=1
#日志文件
logFile =E://c.log
#支持的服务
已测试,支持远程控制、ssh、ftp、web服务等功能。
#问题解答
更多支持,或问题可以关注[Java技术库](http://java.bcxuexi.com)。http://java.bcxuexi.com/subject/jdmz
QQ:495593667