Skip to content

Dawson-Jiang/Java-Nat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JavaNat

介绍

纯Java实现类似内网穿透,实现shell等命令直达内网终端.结构简单,基础功能完整。

系统架构

系统分三部分:
  • 服务端server:运行在外网服务器上,负责管理各个终端和用户端,控制和转发消息;
  • 终端terminal:运行在内网终端上,负责连接服务器和本地第三方服务,如shell;
  • 用户端user:用户操作的客户端,负责与用户交互,连接服务器和本地第三方客户端,如xshell等。 #####系统核心流程:
  • 1.服务器启动,完成配置初始化等工作;
  • 2.终端和用户端启动,连接服务器固定端口,并上报配置信息,如id,name等;服务器返回支持的服务配置,端口映射关系;
  • 3.用户端根据服务配置启动多端口监听。用户同一时间只能操作一个终端,选择终端后,等待第三方客户端连;
  • 4.第三方客户端连接后,根据其连接端口,和当前选择的终端创建回话,并连接服务器,连接到服务器后上报会话信息,然后启动会话,相互透明转发第三方客户端和服务器的数据;
  • 5.服务器收到新会话信息后,创建会话,同发送会话信息到对应终端;等待终端连接,然后启动会话,相互透明转发用户端和终端的数据;
  • 6.终端收到新会话信息后,创建会话,然后连接服务器,连接到服务器后上报会话信息,再连接第三方服务,如shell;连接成功后启动会话,相互透明转发服务器端和第三方服务的数据;

安装教程

  • 1.三个端均为纯java控制台程序,可以通过命令打包直接启动;
  • 2.用户端默认也是控制命令交互,可以进行简单界面封装;
  • 3.移动端使用终端程序需要进一步封装,比如android可以封装到单独app(该项目已创建一个app demo)或已有app创建service启动;ios端可以通过flutter等方式进行封装;

使用说明

1.服务器需要配置CmdConfig.json

参与贡献

About

一个java版本的简单基本的内网穿透

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published