要求:要有备案的域名,和可测试的服务器。
1.给域名添加两条a记录,
ngrok.heyintec.com 和 *.ngrok.heyintec.com 分别都指向42.192.120.161(我自己的服务器)
2.在服务器上安装go环境和ngrok
a.先安装go
wget https://storage.googleapis.com/golang/go1.8.linux-amd64.tar.gz
#解压缩到/usr/local目录
tar -C /usr/local -xzf go1.8.linux-amd64.tar.gz
#修改环境变量
vi /etc/profile
export PATH=$PATH:/usr/local/go/bin
source /etc/profile
#查看go是否安装成功
go version
b.再来安装ngrok
#下载到源码到/usr/local目录
cd /usr/local/
git clone https://github.com/inconshreveable/ngrok.git
cd ngrok
#生成ssl证书
export NGROK_DOMAIN="ngrok.heyintec.com"
#指定go执行路径
export GOPATH=/usr/local/ngrok/
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 server.key 2048
openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csr
openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 5000
#移动证书,记住要覆盖 输入y
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key
3.编译生成服务端和客户端
#服务端,linux系统GOOS=linux,64位系统GOARCH=amd64,32位系统GOARCH=386
GOOS=linux GOARCH=amd64 make release-server
#客户端,我这里是mac
GOOS=darwin GOARCH=amd64 make release-client
#客户端linux
GOOS=linux GOARCH=amd64 make release-client
#客户端windows
GOOS=windows GOARCH=amd64 make release-client
然后在ngrok的bin目录将会生成不同的可执行文件。
4.启动服务端
#在ngrok的bin目录,以守护进程启动ngrokd服务
nohup ./ngrokd -domain="ngrok.heyintec.com" -httpAddr=":8090" -httpsAddr=":8091" -tunnelAddr=":8092" &
5.启动客户端
我们把客户端文件下载到对应的机器上,比如我给拉到自己的mac电脑
在mac上新建一个针对ngrok客户端的配置文件 ngrok.cfg
bash
server_addr: "ngrok.heyintec.com:8092"
trust_host_root_certs: false
#命令行启动客户端
#映射子域名wx,也就是wx.ngrok.heyintec.com:8092 到内网本地的127.0.0.1:8083 端口
./ngrok -config ngrok.cfg -subdomain wx 127.0.0.1:8083