美文网首页程序员
搭建ngrok实现内网穿透(使用nginx代理)

搭建ngrok实现内网穿透(使用nginx代理)

作者: 写java的逗比叫z1 | 来源:发表于2018-08-24 17:31 被阅读14次

    背景介绍:之前使用的ngrok服务挂了

    搭建环境 Ubuntu Server 16.04 LTS 64位

    1. 安装git

      sudo apt-get install build-essential golang mercurial git
      
    2. 获取源码

      git clone https://github.com/tutumcloud/ngrok.git ngrok
      
    3. 生成替换证书

      cd ngrok
      NGROK_DOMAIN="ngrok.itcuc.cc"
      
      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
      
      cp base.pem assets/client/tls/ngrokroot.crt
      
    4. 编译源码(生成客户端)

      sudo make release-server release-client
      

      生成windows下的客户端

      GOOS=windows GOARCH=amd64 make release-client
      
    5. 启动服务

      sudo ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="ngrok.itcuc.cc" -httpAddr=":8081" -httpsAddr=":8082"
      
    6. 配置域名解析

    image.png
    1. 配置nginx代理

      在nginx.conf中加入

      server {
              listen 80;
              server_name *.ngrok.itcuc.cc ngrok.itcuc.cc;
              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:8081;
                              proxy_set_header X-Nginx-Proxy true;
                              proxy_set_header Connection "";
                              proxy_pass      http://127.0.0.1:8081;
              }
          }
      

      reload Nginx

    2. 验证安装

      在浏览器打开http://ngrok.itcuc.cc/,如果出现Tunnel ngrok.itcuc.cc:8081 not found就表示安装好了

    3. 安装客户端

      下载第5步保存的windows客户端
      在同目录新建ngrok配置文件,名称随便,例如ngrok.conf
      在配置文件中加入代码

      server_addr: ngrok.itcuc.cc:4443
      trust_host_root_certs: false
      

      新建bat文件,加入代码

      cd %cd%
      ngrok -config=ngrok.cfg -subdomain=wxtest 8080
      

      subdomain是你要使用的域名和端口

    没了

    相关文章

      网友评论

        本文标题:搭建ngrok实现内网穿透(使用nginx代理)

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