1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/qianyingchao-tio-proxy

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Tio-Proxy

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 的用法。

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Проникновение во внутреннюю сеть на основе T-io. Развернуть Свернуть
MIT
Отмена

Обновления (1)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/qianyingchao-tio-proxy.git
git@api.gitlife.ru:oschina-mirror/qianyingchao-tio-proxy.git
oschina-mirror
qianyingchao-tio-proxy
qianyingchao-tio-proxy
master