Ngrok服务器搭建

Ngrok 服务器搭建

环境需要

  • ubuntu16.04 系统
  • 公网ip地址
  • 域名

开始安装

拉下项目:

clone https://github.com/inconshreveable/ngrok.git ngrok2

安装golang语言:

apt-get install golang

配置域名映射:

*.ngrok.xxx.com ngrok.xxx.com 指向你的主机ip

PS. ngrok可任意命名

设置环境变量:

export NGROK_DOMAIN="ngrok.yourdomain.com"ngrok域名

生成证书

1
2
3
4
5
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.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 rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 5000

拷贝证书到指定目录

1
2
3
cp rootCA.pem assets/client/tls/ngrokroot.crt  #复制rootCA.pem到assets/client/tls/并更名为ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt #复制server.crt到assets/server/tls/并更名为snakeoil.crt
cp server.key assets/server/tls/snakeoil.key #复制server.key到assets/server/tls/并更名为snakeoil.key

编译

1
2
3
4
5
6
7
8
9
#不同客户端编译不同版本
#win服务端
GOOS=windows GOARCH=386 make release-server
#win客户端
GOOS=windows GOARCH=386 make release-client
#linux服务端
GOOS=linux GOARCH=386 make release-server
#linux客户端
GOOS=linux GOARCH=386 make release-client

编译完成会在bin目录生成相应文件

部署服务

1
2
#拷贝密钥文件到ngrokd相应目录,执行下面命令
./ngrokd -tlsKey="snakeoil.key" -tlsCrt="snakeoil.crt" -domain="ngrok.你的域名.com" -httpAddr=":80" -httpsAddr=":443"

PS:云服务器需要开放相应端口80,443

客户端使用

1
2
3
4
5
6
7
8
9
10
11
# 新建config.cfg文件,复制下面内容,需要修改server_addr
server_addr: "ngrok.hellongrok.com:4443"
trust_host_root_certs: false
tunnels:
#hellongrok可任意命名
hellongrok:
#subdomain: "test"
hostname: "dev.ngrok.hellongrok.com"
proto:
http: 8080
#https: 8094

启动命令: ./ngrok -config=ngrok.cfg start hellongrok

启动客户端并测试

打开浏览器,输入您映射后的域名就可以穿透内网访问您的web服务器了。