【1】 准备工作

(1)腾讯云服务器一台

(2)一个已经备案的域名,在腾讯云里面先进行范解析该域名。

【2】安装工具

(1)使用yum命令安装go语言

  yum install golang

查看是否安装成功

go version

如果有版本显示,即代表成功了

(2)使用yum命令安装git

yum install git

查看是否安装成功

git version

(3)下载 ngrok 源码

找一个存放 ngrok 的文件夹 ,clone 一份源码:

我的存放在/usr/local 下,所以先进入该目录下

cd /usr/local
git clone https://github.com/inconshreveable/ngrok.git
export GOPATH=/usr/local/ngrok

这个第二步过程有点慢,耐心等待。。。

【3】生成自签名证书

假设自己的域名是abc.cn, 按照如下命令即可,注意将下面的abc.cn换成自己的域名!!!

cd /usr/local/ngrok
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=ngrok.abc.cn" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=ngrok.abc.cn" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000

执行完成以上命令后,在 ngrok 目录下,会新生成 6 个文件:

device.crt device.csr device.key rootCA.key rootCA.pem rootCA.srl

然后执行以下操作,替换证书:

cp rootCA.pem assets/client/tls/ngrokroot.crt

cp device.crt assets/server/tls/snakeoil.crt

cp device.key assets/server/tls/snakeoil.key

询问是否覆盖时,直接y 即可。

【4】编译 ngrokd 和 ngrok

先进入到ngrok目录。 然后生成服务端执行文件,make这一步也很慢,耐心等待。。。

cd /usr/local/ngrok
make release-server

上面的都执行完毕后,开始生成客户端执行文件

GOOS=xxx GOARCH=xxx make release-client

根据不同的平台使用,挑选不同的GOOS:

Linux 平台 32 位系统:GOOS=linux GOARCH=386
Linux 平台 64 位系统:GOOS=linux GOARCH=amd64

Windows 平台 32 位系统:GOOS=windows GOARCH=386
Windows 平台 64 位系统:GOOS=windows GOARCH=amd64

MAC 平台 32 位系统:GOOS=darwin GOARCH=386
MAC 平台 64 位系统:GOOS=darwin GOARCH=amd64

ARM 平台:GOOS=linux GOARCH=arm

然后下载编译后的客户端,通过ssh等都可以,生成的目录在 ngrok 的 bin 目录下,当前例子的路径为 /usr/local/ngrok/bin/windows_amd64/ngrok.exe

【5】启动 ngrokd 服务器

一般使用在后台运行的模式(需要进入到ngrokd的上一级 /usr/local/ngrok/bin):

nohup ./ngrokd -domain="ngrok.abc.cn" -httpAddr=":8080" -httpsAddr=":8089" &

如果要关闭,直接kill进程即可。;;

6. 启动ngrokd服务器

请将 bin/ngrokd 放入环境变量中,启动命令:

1
$ ngrokd -domain=”ngrok.morongs.com” -httpAddr=”:8088″ -httpsAddr=”:8089″

其中,-domain为你的ngrok服务域名,-httpAddr为http服务端口地址,访问形式为:xxx.ngrok.morongs.com:8088,也可设置为80默认端口,-httpsAddr为https服务,同上。

ngrokd启动后,退出命令行即关闭服务。如果想要在后台运行,则执行:

1
$ nohup ngrokd -domain=”ngrok.morongs.com” -httpAddr=”:8000″ &

注意末尾需要有 & 号,详细搜索 nohup 了解。
关闭服务只需通过:

1
2
$ ps -A # 找到PID,执行关闭
$ kill xxxid

【6】启动 ngrok 客户端

将第四步下载的文件放置目录在:g:/ngrok 目录里,然后新建文件ngrok.cfg,文件内容如下:注意替换成自己的域名


server_addr: "ngrok.abc.cn:4443"

trust_host_root_certs: false

server_addr 端口默认 4443,还需要服务器开启 4443 端口,腾讯云需要去安全组放行 4443 外网端口,不然无法正常使用。

然后使用 cmd 到这个路径下(g:/ngrok/),执行命令启动并转发本地的 80 端口:

ngrok -subdomain demo -config=./ngrok.cfg 80

运行完了以后会有提示域名,根据提示域名访问,我这里这里为 : http://demo.ngrok.abc.cn:8088,访问这个就等于访问到你的 http://127.0.0.1:80 下的内容了。

当然你也可以下载我写好的bat启动脚本,将启动脚本和ngrok.cfg和ngrok.exe文件放在一起即可。里面有操作说明,更加方便:

https://download.csdn.net/download/zlw_spider/10608105