Bullet是一款开源的反向代理内网穿透利器,采用Java技术实现了基于Websocket的Bullet内网穿透交互协议,通过自定义的协议控制Ngrok客户端实现Web界面管理。
注意:本项目对Ngrok源码定制化的修改以满足安全性等需求,所以需要使用作者提供的Ngrok源码来编译。推荐使用百度网盘编译好的ngrokd & ngrok命令。
- 支持http+https、Http、Https协议、TCP协议;
- 免费开源、灵活配置、多租户支持、多协议支持;
- TLS实现数据的安全传输;
- 断连重试机制;
- 反向代理请求;
目前实现了Mac、linux、window全环境适配.理论上还可以支持ARM,有这方面用户需求的可以联系作者。
目录 | 说明 |
---|---|
build | 构建使用的目录接口,用户DevOps流水线发布产品 |
bullet-common | 公共模块,包含加密、日志配置、Bullet协议、Builer结构 |
bullet-client | Bullet客户端代理程序,主要控制Ngrok客户端协同操作 |
bullet-server | Server端为服务端主控程序,提供系列接口供Web前端页面调用,控制Client操作Ngrok客户端 |
bullet-codemaker | 本人比较懒,用的Mybatis-Plus生成代码 |
databases | sql相关的(历史原因部分字段的设计采用驼峰) |
BulletServer占用的端口说明:
端口 | 说明 |
---|---|
8083 | Ngrok通道 |
80 | 代理的http端口(固定) |
443 | 代理的https端口(固定) |
8081 | Bullet WEB管理服务(默认端口,可通过环境变量修改) |
首先您需要登录到平台注册一个账号,激活后您将获得一个雪花域名并赠予一个月的使用权(激活账号后才有哦)。
bullet-client的部署非常简单,百度网盘下载对应的client包
下载地址:https://pan.baidu.com/s/1dy2qzPtN3CmftuHGm3BJgA
密码: h9hf
mkdir -p /opt/bullet/
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
./bin/bullet
================================================
================ Device NO =====================
=== 5s4jmygyox6o ===
================================================