joggle的ngrokd通道部署
直接使用云服务器部署Joggled(joggle)服务,部署要求:
- 1、采购一款云服务器,配置要求不够1G1核即可,宽带100MB(按量付费);
- 2、购买一个域名,用于提供穿透服务的,将所有顶级、二级域名泛解析到云服务器IP;
- 3、搞一个免费的域名证书,需要支持泛域名配置的;
注意:目前还没有开发添加域名、端口的功能,需要用户自行在数据库domain表添加并绑定给用户ID。 (添加域名是一个低频操作,所以没有优先做这块功能。)
安装joggled通道服务
joggled服务主要占用80 443 8083 端口,因此部署前需要检查服务器的三个端口是否放开(包含服务器自身防火墙和云服务器的厂商提供的防火墙)。
首先百度盘种下载通道程序压缩包:
下载地址: https://pan.baidu.com/s/1Xy5_R_ezPFft9vsZrLNBSA
密码: wq2e
下载完成后,上传到服务器的/opt/ngrok/
目录中,并解压
mkdir -p /opt/ngrok
# 上传文件到 /opt/ngrok/bullet-server-linux.tar.gz
cd /opt/ngrok
# 解压程序
tar -xvf bullet-server-linux.tar.gz
# 编辑脚本文件/bin/bullet-server
vi /bin/bullet-server
脚本文件配置内容
#!/bin/sh
/opt/ngrok/bin/ngrokd \
-serverUrl="localhost:8081" \
-domain=cjbb.cc \
-httpAddr=:80 \
-httpsAddr=:443 \
-tunnelAddr=:8083 \
-serverTunnelId=1 \
-serverApiToken=8hiUhv4vo%NRQhXx
配置参数 | 说明 | 配置例 |
---|---|---|
serverUrl | 管理端的接口地址(不含协议) | localhost:8081 |
domain | 通道的域名,支持二级域名 | a.cjbb.cc |
serverTunnelId | 通道的id,从管理端添加后会生成对应的通道id,也可以数据库直接添加 | |
serverApiToken | 通道的token,每个通道都可以配置独立的Token | |
tunnelAddr | 通道的管理链接与代理链接端口,默认8083 | 8083 |
httpsAddr | 通道的https协议占用端口,默认443 | 443 |
httpAddr | 通道的http协议占用端口,默认80 | 80 |
以上配置保存ok后,就进入下一步证书配置
证书配置说明
bullet 证书分为两种:
- 1、通道证书 一般由开发者颁发,也支持自定义
- 2、域名证书 可信的机构获得,使用商用的或者免费的
注意:域名证书须使用泛*证书,可以使用多个域名共同使用的证书。通道与域名证书也可以使用同一套。
配置路径在 conf/cert
文件夹里,目录结构如下所示
├── cert
│ ├── server.crt 通道证书
│ ├── server.key 通道私钥
│ ├── cjbb.cc 泛域名证书
│ │ ├── fullchain.pem
│ │ └── privkey.pem
│ └── test.cjbb.cc 自定义域名,也可以使用泛域名证书
│ ├── fullchain.pem
│ └── privkey.pem
└── readme.md
证书名称说明:+
文件 | 说明 |
---|---|
fullchain.pem | 包括了cert.pem和chain.pem的内容 |
privkey.pem | 证书的私钥 |
启动通道服务
前面的启动脚本与证书配置都完成的情况,就可以正式启动通道了。 如果启动通道后,你的管理服务没启动,那么通道服务会一直websocket重试链接管理服务,最大延时30秒。
./bin/bullet-server
启动通道后,观察日志输出情况,一般链接成功后会输出链接成功文案,失败会重试,认证的最大重试为100次。
将通道配置为linux服务
在doc目录中有个service服务案例,拷贝到/etc/systemd/system/
目录下,然后修改为自己的配置。
启动与自动启动命令如下:
systemctl enable joggled
systemctl start joggled