1 Star 0 Fork 23

疯狂的逍遥 / tio-proxy

forked from 西装革履的逗逗 / tio-proxy
关闭
 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

Tio-Proxy

这应该是全网第一款基于T-IO实现的内网穿透工具


Tio-Proxy是什么?

Tio-Proxy是一款采用java编写的内网穿透工具。

核心解决「NAT穿透」即内网穿透。

主要用于:

  1. 微信、支付宝等三方公网回调请求进入本地开发调试
  2. 本地项目工程跨网络演示
  3. 通过跳板机访问内部网络服务
  4. 代替SSH反向隧道转发
  5. 群晖NAS公网访问
  6. ...等等一系列

Tio-Proxy的优势

  1. 轻巧 :客户端三方依赖几乎为0
  2. 简易 :二次开发功能扩展十分简易。数据流转清晰,不再需要学习复杂的netty
  3. 新奇 :网络上java系的内网穿透,清一色采用netty编写。而Tio-Proxy另辟蹊径,使用了本土socket框架。
  4. 高效 :工具底层使用的是aio,实现了真正的异步非堵塞的 IO 操作

有了Tio-Proxy,让你拥有自己真正的「打洞」工具

在线体验

点击跳转访问到后台管理界面

图片 随意使用一个邮箱地址进行账号的创建

图片 已经把编译好的客户端存放在蓝凑云上,下载后直接可用

图片 进入我的隧道,新增一条隧道,IP地址指的是你想要暴露服务的地址,端口就是那个服务的端口

图片 隧道新增后,返回列表页面,会有一个秘钥和一个地址。该秘钥就是客户端启动时所需要的key,地址就是当客户端启动后,外网访问的地址

图片 执行如图所示的命令。客户端启动成功~~,此时访问隧道列表中的那个地址,就能访问到具体服务了

使用方式

由于项目新增了后台管理,需要使用一些以下服务。

  1. Nginx
  2. MySQL
  3. Redis

启动数据库,把.doc中的init.sql文件初始化好

启动Redis

进入项目根目录进行编译。web服务在web项目中,取出jar包直接运行即刻。

web项目中数据库和Redis的配置都在application.yml文件中更改

准备好自己的域名,先解析两个主机名到服务器。比如我这里使用的域名是jlearn.cn

设置两条映射。

www.jlearn.cn 用于访问后台管理界面

*.proxy.jlearn.cn 用于生成隧道地址

启动Nginx,同时把对应的配置配好。各域名做好映射

启动web项目,再启动server项目

进入web后台管理中,自己创建好隧道,复制出key,在终端中启动客户端。

拷贝出后台管理界面中的隧道地址,直接就能访问

Nginx配置

server {
    listen      80;
    server_name *.proxy.jlearn.cn;
    location / {
        proxy_pass http://127.0.0.1:10010;
        proxy_set_header Host $host:$server_port;  
        proxy_set_header X-Real-IP $remote_addr;  
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
        proxy_set_header REMOTE-HOST $remote_addr;
        client_body_buffer_size 256k;  
        proxy_connect_timeout 90;  
        proxy_send_timeout 90;  
        proxy_read_timeout 90;
    }
}

这个配置是用于生成隧道地址的。至于Server项目的端口为什么是10010,这个可以在配置文件中自己设置

server {
    listen          80;
    server_name     www.jlearn.cn;

    location /proxy {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host:$server_port;  
        proxy_set_header X-Real-IP $remote_addr;  
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
        proxy_set_header REMOTE-HOST $remote_addr;
        client_body_buffer_size 256k;  
        proxy_connect_timeout 90;  
        proxy_send_timeout 90;  
        proxy_read_timeout 90;
    }
}

这个配置是用于访问后台管理的


附录

jdk版本

1.8

项目如何编译

进入项目目录后直接跑

mvn clean install -Dmaven.test.skip=true -T 4C -Dmaven.compile.fork=true

工具的功能迭代方向

这个么,就靠各位亲啦

欢迎提问,欢迎各种骚扰

文档建设

这个正在规划中。近期就会编写。顺便还会再开一个系列,讲解下这个t-io的用法

MIT License Copyright (c) 2021 西装革履的逗逗 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

基于T-io实现的内网穿透 展开 收起
Java
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/wlz-xb/tio-proxy.git
git@gitee.com:wlz-xb/tio-proxy.git
wlz-xb
tio-proxy
tio-proxy
master

搜索帮助

14c37bed 8189591 565d56ea 8189591