搭建属于自己的ngrok服务

2019-06-20 09:52:25 浏览数 (2)

代码语言:txt复制
开发过程中,很多时候处于公司内网,而有些时候需要外部能够访问到本地部署的服务,那么我们需要一个中转,其中ngrok就是这样一个比较优秀的服务。

源码编译

代码语言:txt复制
证书生成
cd ngrok
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=ngrok.xxxx.org" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=ngrok.xxxx.org" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000

替换原有证书
$ cp rootCA.pem assets/client/tls/ngrokroot.crt
$ cp device.crt assets/server/tls/snakeoil.crt
$ cp device.key assets/server/tls/snakeoil.key



交叉编译环境
$ GOOS=linux GOARCH=amd64 make release-client
$ GOOS=windows GOARCH=amd64 make release-client
$ GOOS=linux GOARCH=arm make release-client
代码语言:txt复制
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

启动服务器

代码语言:txt复制
$ nohup ngrokd -domain="ngrok.xxxx.org" -httpAddr=":8088" -httpsAddr=":8089" & 

启动客户端

ngrok.cfg

代码语言:txt复制
server_addr: “ngrok.xxxx.org:4443"
trust_host_root_certs: false

start client

代码语言:txt复制
$ ngrok -subdomain demo -config=./config.cfg 4000

wechat oauth support

代码语言:txt复制
upstream ngrok {  
    server 127.0.0.1:8088; # 此处端口要跟 启动服务端ngrok时指定的端口一致
    keepalive 64;
}
server {  
    listen       80;
    server_name  *.ngrok.xxxx.org;
    #charset koi8-r;
    #access_log  /var/log/nginx/log/ngrok.log  main;
    location / {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host  $http_host:8088; #此处端口要跟 启动服务端ngrok 时指定的端口一致
            proxy_set_header X-Nginx-Proxy true;
            proxy_set_header Connection "";
            proxy_pass      http://ngrok;
    }
}

参考

  • https://morongs.github.io/2016/12/28/dajian-ngrok/

0 人点赞