以下的 ngrok.getcharzp.cn 都替换成自己购买的域名,并将其做好相应的解析,相关的视频教程:www.bilibili.com/video/BV1ZU…
使用docker搭建
需要准备:
域名 + 公网服务器(centos) ,将域名的A记录值映射到公网服务器的IP上 , ngrok、*.ngrok
参考文档: hub.docker.com/r/jueying/n…
在服务器上运行下面的指令
docker run -d --name ngrok-server -p 80:80 -p 8082:8082 -p 443:443 jueying/ngrok-server ngrok.getcharzp.cn 80 8082 443
复制代码
从ngrok-server中复制对应的操作系统的客户端(PS:复制后进入到对应的/home/ngrok/bin目录下,确认是否已成功生成了windows_amd64目录,若没有生成可以稍等后再重新复制)
docker cp ngrok-server:/usr/local/ngrok/bin/ /home/ngrok
复制代码
进入到 /home/ngrok/bin/windows_amd64 目录下,复制生成的nginx.exe可执行文件到本地电脑上。在nginx.exe同级的目录下创建一个ngrok.cfg文件
server_addr: "ngrok.getcharzp.cn:443"
trust_host_root_certs: false
复制代码
在nginx.exe同级的目录下创建一个ngrok.bat文件
ngrok.exe -subdomain=test -config=ngrok.cfg 80
复制代码
双击 ngrok.bat文件,若提示Tunnel Status online ,则说明配置成功了。
使用源文件编译
域名 + 公网服务器(centos)
目前这边golang使用的版本为1.14.15
go version go1.14.15 linux/amd64 安装
cd /root
wget https://storage.googleapis.com/golang/go1.14.15.linux-amd64.tar.gz
tar -C /root -xzf go1.14.15.linux-amd64.tar.gz
复制代码
/etc/profile文件编辑
vim /etc/profile
# 添加
export GOROOT=/root/go
export PATH=$PATH:$GOROOT/bin
source /etc/profile
复制代码
下载源文件
git clone https://github.com/inconshreveable/ngrok.git
复制代码
创建存放key的目录
cd ngrok && mkdir keys && cd keys
复制代码
设置需要映射的域名
export NGROK_DOMAIN="ngrok.getcharzp.cn"
复制代码
生成相关证书
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
复制代码
将生成的证书替换掉
cp rootCA.pem ../assets/client/tls/ngrokroot.crt
cp device.crt ../assets/server/tls/snakeoil.crt
cp device.key ../assets/server/tls/snakeoil.key
复制代码
采用国内的镜像
git clone -- https://gitee.com/mirrors/log4go.git src/github.com/alecthomas/log4go
git clone -- https://gitee.com/ngrok-install/websocket.git src/github.com/gorilla/websocket
git clone -- https://gitee.com/ngrok-install/go-vhost.git src/github.com/inconshreveable/go-vhost
git clone -- https://gitee.com/ngrok-install/mousetrap.git src/github.com/inconshreveable/mousetrap
git clone -- https://gitee.com/ngrok-install/go-bindata.git src/github.com/jteeuwen/go-bindata
git clone -- https://gitee.com/mirrors_addons/osext.git src/github.com/kardianos/osext
git clone -- https://gitee.com/ngrok-install/binarydist.git src/github.com/kr/binarydist
git clone -- https://gitee.com/GoLibs/go-runewidth.git src/github.com/mattn/go-runewidth
git clone -- https://gitee.com/ngrok-install/termbox-go.git src/github.com/nsf/termbox-go
git clone -- https://gitee.com/mirrors/go-metrics.git src/github.com/rcrowley/go-metrics
复制代码
进入ngrok的根目录下,选择对应的服务端和客户端进行编译
cd ..
#linux服务端
GOOS=linux GOARCH=386 make release-server (32位)
GOOS=linux GOARCH=amd64 make release-server(64位)
#linux客户端
GOOS=linux GOARCH=386 make release-client (32位)
GOOS=linux GOARCH=amd64 make release-client(64位)
#Mac OS服务端
GOOS=darwin GOARCH=386 make release-server
GOOS=darwin GOARCH=amd64 make release-server
#Mac OS客户端
GOOS=darwin GOARCH=386 make release-client
GOOS=darwin GOARCH=amd64 make release-client
#windows服务端
GOOS=windows GOARCH=386 make release-server
GOOS=windows GOARCH=amd64 make release-server
#windows客户端
GOOS=windows GOARCH=386 make release-client
GOOS=windows GOARCH=amd64 make release-client
复制代码
进入当前目录对应的 bin 目录下,启动服务端
./ngrokd -domain="ngrok.getcharzp.cn" -httpAddr=":80"
复制代码
进入 windows_amd64目录下载ngrok.exe,当然这里根据具体的客户端平台进行下载
在本地的ngrok.exe同目录下新建ngrok.cfg
server_addr: "ngrok.getcharzp.cn:4443" trust_host_root_certs: false
在本地的ngrok.exe同目录下新建ngrok.bat
ngrok.exe -config=ngrok.cfg -subdomain=test 80
复制代码
双击 ngrok.bat文件运行。