Skip to content

Joggle是基于Ngrok二开的开源内网穿透项目,多节点、私有部署、云服务。

License

Notifications You must be signed in to change notification settings

joggle-cn/joggle

Repository files navigation

什么是 Joggle内网穿透?

Joggle是一款开源的反向代理内网穿透利器,采用Java技术实现了基于Websocket的Bullet内网穿透交互协议,通过自定义的协议控制Ngrok客户端实现Web界面管理。

注意:本项目对Ngrok源码定制化的修改以满足安全性等需求,所以需要使用作者提供的Ngrok源码来编译。推荐使用百度网盘编译好的ngrokd & ngrok命令。

本项目已经解决ngrok内存泄漏问题

LICENSE 996.icu

国内加速地址: https://gitee.com/marker/bullet.git

介绍; https://www.oschina.net/p/bullet-joggle

Joggle 特性

  • 支持http+https、Http、Https协议、TCP协议;
  • 免费开源、灵活配置、多租户支持、多协议支持;
  • TLS实现数据的安全传输;
  • 断连重试机制;
  • 反向代理请求;
  • 远程网络唤醒(v1.2.3开始支持);
  • 支持多CPU平台docker容器镜像;
  • 任意门支持,提供文件传输服务 (设计中...)(v1.2.15开始支持)
  • 支持P2P(NAT打洞)管理,不消耗公网付费流量;(v1.2.15开始支持)

Joggle的管理界面

image

目前实现了Mac、linux、window、Android、ARM设备等全环境适配。

Bullet 逻辑架构

image

Joggle 项目结构

目录 说明
build 构建使用的目录接口,用户DevOps流水线发布产品
bullet-common 公共模块,包含加密、日志配置、Bullet协议、Builer结构
bullet-server Server端为服务端主控程序,提供系列接口供Web前端页面调用,控制Client操作Ngrok客户端
databases sql相关的(历史原因部分字段的设计采用驼峰)

JoggleServer占用的端口说明:

端口 说明
8083 Ngrok通道
80 代理的http端口(固定)
443 代理的https端口(固定)
8081 Bullet WEB管理服务(默认端口,可通过环境变量修改)

JoggleClient 快速体验

首先您需要登录到平台注册一个账号,激活后您将获得一个雪花域名并赠予一个月的使用权(激活账号后才有哦)。

joggle-client的部署非常简单,百度网盘下载对应的client包

下载地址:https://pan.baidu.com/s/1dy2qzPtN3CmftuHGm3BJgA
密码: h9hf

1、创建bullet文件夹

mkdir -p /opt/bullet/

2、解压客户端压缩包

tar -xvf bullet-client-linux.tar.gz

树形结构如下

.
├── bin
│   ├── bullet
│   ├── bullet.bat
│   └── ngrok
├── conf
│   ├── cert
│   │   ├── ca.crt
│   │   └── readme.md
│   ├── config.json
│   └── ngrok.yml
├── doc
│   ├── bullet.service
│   └── http\345\215\217\350\256\256.md
└── lib
    ├── bullet-client.jar
    └── readme.txt

3、执行 ./bin/bullet 启动客户端 输出日志有客户端编号

./bin/bullet

================================================	
================ Device NO =====================	
=== 5s4jmygyox6o ===	
================================================	

4、登录到Bullet平台绑定设备

image

5、将赠送的域名绑定到设备即可开启内网穿透之旅。

image