【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文件放在一起即可。里面有操作说明,更加方便: