美文网首页程序员的日常程序员
Ngrok 服务搭建与客户端编译

Ngrok 服务搭建与客户端编译

作者: 无痕无敌 | 来源:发表于2016-11-26 12:22 被阅读508次

    今天朋友叫我帮他搭建个ngrok,我自己也是个喜欢折腾的人,所以就应承下了。用了2小时左右搭建成功,中间查看各种资料,都太乱,太不利于大家搭建。所以我准备写一个简单明了的,方便大家参考。中间的踩的坑我就不讲了,直接把成功经验分享给大家。

    首先

    主要有几个步骤

    1.准备材料

      1.一台有公网IP的主机,或者vps等(Linux,如果Windows这篇文章仅供参考)

    2.一个域名

    3.git,安装。

          apt install git

     4.Golang 最新版 下载到服务器,国内 http://www.golangtc.com/download,国外就是官网。

           wget http://www.golangtc.com/static/go/1.7.3/go1.7.3.linux-amd64.tar.gz

     5.ngrok 源码,去github下载,或者用git拉取,地址(https://github.com/inconshreveable/ngrok)

    2.配置环境

    1.配置 A 记录指向你的主机IP,类似  * tunnel.yuming.com (我没法截图,打开域名配置你自己就知道怎么做了)。

    2.配置 Golang 

        tar -xzvf  go1.7.3.linux-amd64.tar.gz  解压Golang文件

         mv ./go/   /usr/local/   移动go文件夹到 /usr/local/ 文件夹

         mkdir gopath  在用户目录下创建 gopath 用的目录

         vim  .mypath 在用户目录新建文件,存放go的环境信息

              export PATH=$PATH:/usr/local/go/bin

              export GOPATH=~/gopath

              export GOROOT=/usr/local/go

              export GOBIN=$GOPATH/bin

         如果你是bash 就直接在 ~/.bashrc 里面加一句 source ~/.mypath,其他的自己看吧。

         然后执行 source .mypath 把环境变量添加进来

    3.配置ngrok

    如果是git拉取的就直接 mv ./ngrok/   ~/gopath/src/  把ngrok下的所有文件移动到 gopath 下

    其他的也类似,最后效果如下图:(没有bin,和sslkey)

       4.配置SSL证书

    建议在 assets 文件夹中执行,我在sshkey里面执行的,最后文件移动的目录层级很多。

    把其中的域名替换成你自己的域名就好

    $ openssl genrsa -out rootCA.key 2048

    $ openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=tunnel.yuming.com" -days 5000 -out rootCA.pem

    $ openssl genrsa -out device.key 2048

    $ openssl req -new -key device.key -subj "/CN=tunnel.yuming.com" -out device.csr

    $ openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000

    执行完后目录下有六个文件:

    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

    3.编译程序

    到gopath 目录下 执行 make release-server  replease-client

    执行成功后 在gopath/bin 目录下会有 ngrok(Linux客户端) 和ngrokd(服务端)

    执行 unset GOBIN 删除 GOBIN 变量,否则交叉编译报错

    执行 GOOS=windows GOARCH=386 make release-client 交叉编译Windows

    执行 GOOS=darwin GOARCH=amd64 make release-client 交叉编译 Mac

    后台启动 ngrok 服务

    setsid ./ngrokd -domain="tunnel.yuming.com" -httpAddr=":80" -httpsAddr=":443" -log ./access.log

    4.下载使用

    使用下载工具下载客户端到本地,我是mac 我用的scp

    scp root@ip:~/gopath/bin/darwin_amd64/ngrok    ./  回车后输入密码开始下载

    vim ngrok.cfg 输入

           server_addr: "tunnel.yuming.com:443"

           trust_host_root_certs: false

    保存退出(wq)

    ./ngrok -config=ngrok.cfg -subdomain=test   ip:8000(ip,端口随意你自己定)

    test 就是客户端想要绑定的域名,连接成功后截图:

    我的是最新版本,不知道为什么没有 web interface 但是 本地 http://localhost:4040/http/in 可以使用

    然后 使用 test.tunnel.yuming.com 访问,展示成功。

    5.庆祝成功

    点赞。

    吐槽一下,简书的编辑功能太难用了。(字数挺喜庆)。

    相关文章

      网友评论

      • 无痕无敌:简书中如何使用 makedown ?我不会用,格式很难看。
        无痕无敌: @无痕pan 哦,当天就知道了!
        00天火00:先把设置编辑习惯为makedown,然后写文章的时候进入预览模式,就可以时时看到文章样式。
      • 无痕无敌:……编辑器里显示1024个字符,发表出来编程 918 个字符了。

      本文标题:Ngrok 服务搭建与客户端编译

      本文链接:https://www.haomeiwen.com/subject/bttgpttx.html