Ngrok的安装与配置

前提条件:

  1. Linux服务器一台
  2. 域名一个

准备工作:

  1. 安装gcc
  2. 安装git
  3. 安装go语言环境

开始搭建Ngrok

  1. 下载源码
1
git clone git@github.com:inconshreveable/ngrok.git
  1. 生成证书(此处需要用到域名,我的域名为"hayye.cn")
1
2
3
4
5
6
cd ngrok
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=hayye.cn" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=hayye.cn" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
  1. 替换证书
1
2
3
yes|cp rootCA.pem assets/client/tls/ngrokroot.crt
yes|cp device.crt assets/server/tls/snakeoil.crt
yes|cp device.key assets/server/tls/snakeoil.key
  1. 编译生成ngrokd(服务端)
1
2
3
#这里是交叉编译,linux系统GOOS=linux,64位系统GOARCH=amd64,32位系统GOARCH=386
#当前系统可用go env查看
GOOS=linux GOARCH=amd64 make release-server
  1. 编译生成ngrok(客户端)
1
2
#注释同上
GOOS=windows GOARCH=amd64 make release-client

生成成功后可在/bin/windows_amd64/文件夹下找到ngrok.exe文件,下载到你的windows计算机中准备使用。

  1. 启动服务端(/usr/local/src/ngrok目录下)
1
./bin/ngrokd -tlsKey=assets/server/tls/snakeoil.key -tlsCrt=assets/server/tls/snakeoil.crt -domain="hayye.cn"  -httpAddr=":8081" -httpsAddr=":8082" -tunnelAddr=":8083"
  1. 启动客户端
    新建配置文件ngrok.cfg
    其中proto中配置的是本地端口号例:127.0.0.1:8080
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
server_addr: "hayye.cn:8083"
trust_host_root_certs: false
tunnels:
http:
subdomain: "www"
proto:
http: "8080"

https:
subdomain: "www"
proto:
https: "443"

ssh:
remote_port: 2222
proto:
tcp: "22"

新建启动文件ngrok.bat
复制以下内容,双击打开即可链接

1
2
3
Title Start Ngrok
echo.
ngrok.exe -config ngrok.cfg start http https ssh