以下以阿里云centos7服务器为例,并且已经安装好git、golang
一、下载ngrok
cd /data/wwwroot
git clone https://github.com/tutumcloud/ngrok.git
二、生成ngrok使用的https证书
cd /data/wwwroot/ngrok
NGROK_DOMAIN="ngrok.test.com"
openssl genrsa -out base.key 2048
openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.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 base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt
并替换
cp base.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key
三、编译服务端
make release-server
生成bin/ngrok
四、编译客户端
GOOS=windows GOARCH=amd64 make release-client
生成bin/windows_amd64/ngrok.exe
把ngrok.exe
下载到你电脑
mac下编译: GOOS=darwin GOARCH=amd64 make release-client
五、运行服务端
后台运行
nohup ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="ngrok.test.com" -httpAddr=":3080" -httpsAddr=":3043" >/dev/null 2>log &
注意事项
1、3080,3043端口可以改成80,443,如果这两个端口空闲的话。
2、阿里云安全组开放3080、3043、4443端口,4443是默认的客户端通信端口。
3、iptables开放3080、3043、4443端口。
4、域名解析*.ngrok,记得带上*.,不然无法匹配xxx.ngrok.test.com三级域名。
六、运行客户端
编译配置文件ngrok.cfg
server_addr: "ngrok.test.com:4443"
trust_host_root_certs: false
运行
ngrok -config=ngrok.cfg -subdomain abc 8080
有疑问加站长微信联系(非本文作者)