一. 安装gcc
二.安装go环境
三.下载ngrok源码
1.解压
2.生成证书
cd ngrok
NGROK_DOMAIN="cutedou.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
3.替换证书
cp base.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key
4.编译生成ngrokd服务端
#这里是交叉编译,linux系统GOOS=linux,64位系统GOARCH=amd64,32位系统GOARCH=386
#当前系统可用go env查看
GOOS=linux GOARCH=amd64
make release-server
5.启动服务
./bin/ngrokd -tlsKey="assets/server/tls/snakeoil.key" -tlsCrt="assets/server/tls/snakeoil.crt" -domain="$NGROK_DOMAIN" -httpAddr=":8888" -httpsAddr=":8889" -tunnelAddr=":9999"
6.出现下面信息,启动成功
[14:52:23 CST 2017/03/18] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [registry] [tun] No affinity cache specified
[14:52:23 CST 2017/03/18] [INFO] (ngrok/log.Info:112) Listening for public http connections on [::]:8081
[14:52:23 CST 2017/03/18] [INFO] (ngrok/log.Info:112) Listening for public https connections on [::]:8082
[14:52:23 CST 2017/03/18] [INFO] (ngrok/log.Info:112) Listening for control and proxy connections on [::]:8083
[14:52:23 CST 2017/03/18] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [metrics] Reporting every 30 seconds
7.编译生成ngrok客户端
生成windows环境客户端如下:
#这里是交叉编译,linux系统GOOS=linux,64位系统GOARCH=amd64,32位系统GOARCH=386
#当前系统可用go env查看
GOOS=windows GOARCH=amd64 make release-client
生成的客户端在bin目录下:windows_amd64.
注意:
不同平台使用不同的GOOS和GOARCH
Linux平台32位系统:GOOS=linux GOARCH=386
Linux平台64位系统:GOOS=linux GOARCH=amd64
MAC平台32位系统:GOOS=darwin GOARCH=386
MAC平台64位系统:GOOS=darwin GOARCH=amd64
Windows平台32位系统:GOOS=windows GOARCH=386
Windows平台64位系统:GOOS=windows GOARCH=amd64
ARM平台:GOOS=linux GOARCH=arm
- 将生成的客户端windows_amd64拷贝到windows系统中
- 在ngrok.exe的同级目录下创建ngrok.cfg文件,配置如下:
server_addr: "cutedou.com:8888"
trust_host_root_certs: false
tunnels:
http:
subdomain: "www"
proto:
http: "80"
https:
subdomain: "www"
proto:
https: "80"
ssh:
remote_port: 2222
proto:
tcp: "22"
10.在ngrok.exe所在目录下打开DOS窗口, 执行以下命令:
ngrok.exe -config=ngrok.cfg start http https ssl
11.启动成功显示如下: