搭建自己的ngrok服务

Ubutun 14.04 64位搭建自己的ngrok服务

本问参考Ubuntu下编译ngrok,搭建自己的ngrok服务,搭建自己的ngrok服务等文章。

部署环境

  • 阿里云ECS服务器,经典网络
  • CPU: 1核
  • 内存: 1 GB
  • 操作系统: Ubuntu 14.04 64位

相关下载

  • Ngrok源码地址
  • [GO语言][5]go1.8.1.linux-amd64.tar.gz下载

安装顺序

  • 安装 install hg sudo apt-get install mercurial
  • 下载GO语言 wget https://www.golangtc.com/static/go/1.9/go1.9.linux-arm64.tar.gz
  • 下载Ngrok git clone https://github.com/inconshreveable/ngrok.git
  • 解压GO语言 tar -C /usr/local -xzf go1.9.linux-arm64.tar.gz
  • vi ~/.bashrc
    shell
    • export GOPATH=/usr/local/go

    • export PATH=$GOPATH/bin:$PATH

    • export GOROOT=/usr/local/go

    • export GOPATH=$PATH:$GOROOT/bin
  • 生效配置 source ~/.bashrc
  • 进行ngrok编译domain设置

    • export GOPATH=/usr/local/ngrok/
    • export NGROK_DOMAIN=”mydomain.cn”

    注意,这里的mydomain.cn 为dns中设置的域名

  • 生成证书

    • 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
  • 复制证书
    • cp rootCA.pem assets/client/tls/ngrokroot.crt
    • cp server.crt assets/server/tls/snakeoil.crt
    • cp server.key assets/server/tls/snakeoil.key
  • 编译

    • make release-server release-client
    • GOOS=windows GOARCH=amd64 make release-client

    客户端编译其他选项


    - **cd ngrok**
    - **GOOS=linux GOARCH=amd64 make release-server release-client**
    - **GOOS=windows GOARCH=amd64 make release-server release-client**
    - **GOOS=darwin GOARCH=amd64 make release-server release-client**
    - **GOOS=linux GOARCH=arm make release-server release-client**

    运行

    • 启动服务

      • ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain=”mydomain.com” -httpAddr=”:8081” -httpsAddr=”:8082” -tunnelAddr=”:443”
      • 或者
      • ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain=”mydomain.cn” -httpAddr=”:8081”

      注意,这里httpAddr和httpsAddr是 ngrok服务 转发 http 和 https 请求的端口,为了避免和 Nginx/Apache 等的 80 端口冲突,
      使用了8081和8082(后面会有步骤进行 80 端口转发,这里先不表)。

  • 客户端

  • ngrok.exe -config=ngrok.cfg -log=ngrok.log -subdomain=test 80
    - 其中ngrok.cfg为如下

    server_addr: "mudomain.cn:4443"
    trust_host_root_certs: false

你可能感兴趣的:(搭建自己的ngrok服务)