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

背景介绍:之前使用的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="yourdomain"
    
    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是你要使用的域名和端口

没了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,967评论 19 139
  • 需要先安装go环境设置环境变量12345 # 可以根据自己需要调整路径 echo 'export GORO...
    加菲猫Jack阅读 2,005评论 3 1
  • 第一章 Nginx简介 Nginx是什么 没有听过Nginx?那么一定听过它的“同行”Apache吧!Ngi...
    JokerW阅读 32,799评论 24 1,002
  • 上期话题回顾“男人为什么不敢娶太完美的女人”。讨论了女人到底要不要追求完美?这期我们讨论女人的幸福与完美之间到底有...
    子夜吴歌zi阅读 1,327评论 0 4
  • 今天下午,奶奶让爸爸开车带我去买棉袄。说我最近没几件衣服,要去金鼎买一件。 爸爸先去热好车,我穿上暖频道的棉袄,心...
    蓝色Vivan阅读 158评论 0 1