java-port-forwarding 内网端口转发开源项目

我要开发同款
匿名用户2018年03月30日
54阅读
开发技术Java
所属分类程序开发、网络工具包
授权协议DBAD license

作品详情

java-port-forwarding

Acrosstheintranetwecanreacheverycornerintheworld.

通过服务器,转发内网主机的TCP数据包,由服务器作为中间人,完成客户端到主机端的通信。

为动态IP拨号上网或无网络管理权限的主机提供对外服务,借以实现内网穿透。

加密转发数据,可避开路由器对端口及协议的封禁。

模块说明名词解说

主机端:需要被转发服务的电脑端

服务器端:提供转发服务

客户端:任意设备

比如,出差在外,需要通过手机(客户端)访问位于家中的一台台式机(主机端),可以通过一台服务器,来转发两者间的数据通信。

commander服务器端

内置SpringBOOT,提供了主机管理与端口转发配置,默认访问地址:https://serverip:8888。

使用sqlite数据库

在${server.command.port}上开启监听,负责下发心跳测试包及指令到主机端。

在${server.forward.port}上开启监听,在服务器端下发转发指令后,主机端将连接到指令的端口上,然后同时也连接到服务器的此端口上,并将两者的输入输出流对接起来,以完成转发。

messenger主机端

无任何依赖

可转发本机或局域网内其它任何机器的TCP数据包

设置快速开始

按需修改两个模块下的配置文件,比如几个端口及主机端的服务器地址等。

使用Maven打包,mvnpackage,将会在target目录下分别生成服务器端original-commander-1.0-SNAPSHOT.jar和主机端messenger-1.0-SNAPSHOT.jar。

在拥有固定IP的服务器端执行java-jaroriginal-commander-1.0-SNAPSHOT.jar。

在主机端执行java-jarmessenger-1.0-SNAPSHOT.jar,如果需要后台运行,可执行javaw-jarmessenger-1.0-SNAPSHOT.jar。

使用初始账号admin及密码123456登陆https://serverip:8888/,进行主机端的端口转发管理。

别忘了修改初始登陆密码。

指令数据包结构

FAFAFA协议头

00000000加密后的数据体长度

00000000主机ID

0000指令,最高2位用于描述加密类型,01表示DES加密,后14位表示指令

......DES加密后的数据体

转发数据包结构

FAFAFA协议头

00000000数据包长度

...........DES加密后的数据体

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论