sudo ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="zzmd.superboycxx.top" -httpAddr=":8081" -httpsAddr=":8082"
屁话不讲,先来看下效果:html
1.搭建环境(安装git,golang)node
由于Ngrok是基于Go语言编写的linux
sudo apt-get install build-essential golang mercurial git
2.安装ngrok(运行下面命令,通常不会有问题的)git
# git clone https://github.com/tutumcloud/ngrok.git ngrok # cd ngrok
生成自签名证书 $ cd ngrok # NGROK_DOMAIN="ngrok.mdzz2333.cn"换成本身的域名哦 # 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
在当前目录,替换一个文件:github
cp base.pem assets/client/tls/ngrokroot.crt
3.编译客户端(看你本身,这里能够有linux的,和windows的)golang
linux:windows
sudo make release-server release-client 这一步骤等待时间较长,成功编译后,会在bin目录下找到ngrokd和ngrok这两个文件。
将/ngrok/bin目录下的 ngrok 经过ssh的scp指令下载到当前客户端所在的系统中。
scp username@serverIp:/ngrok/bin/ngrok /home/ubunutu/ngrok
windows:服务器
GOOS=windows GOARCH=amd64 make release-client
4.启动服务端(域名换成本身的)dom
# sudo ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="ngrok.mdzz2333.cn" -httpAddr=":8081" -httpsAddr=":8082"
经过 http://ngrok.mdzz2333.cn:8081 和 http://ngrok.mdzz2333.cn:8082 (你们要访问本身的域名哦) 就能够访问到 ngrok 提供的转发服务访问后看到提示:Tunnel pub.imququ.com:8081 not found,这说明万事俱备,只差客户端来连了。在服务端为了保证服务的一直启动,能够使用screen,此处略过apt install screen,你能够看我另外一篇博客,里面写了,你搜索关键词:screen
ssh
5.启动客户端
在根路径下,建立一个ngrok配置文件:ngrok.cfg
server_addr: “ngrok.mdzz2333.cn:4443" trust_host_root_certs: false
注意:这里的server_addr换成前面配置的自签名证书中的域名
另外,这个域名请提早解析到服务器IP,参考以下:
*.ngrok ngrok.
接下来只须要指定子域、要转发的协议和端口,以及配置文件,运行客户端:
ngrok.exe -config=ngrok.cfg -log=ngrok.log -subdomain=test 8080