利用服务器搭建自己的 ngrok服务实现内网穿透

介绍

ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

通过 ngrok 服务我们可以在本地调试微信的接口,调试微信和支付宝的支付回调或者临时搭建一个通道用于在外网访问本地部署的项目。

准备

一台云服务器(以 centos 为例)
一个域名

搭建

  1. 配置一个 ngrok 的二级域名 :ngrok.xxx.com (将 xxx.com 替换为你自己的域名,下同)
    一个泛域名 : *.ngrok.xxx.com
    都指向云服务器的 ip 地址域名配置

  2. 在服务器上安装 git

    yum -y install git
    
  3. 在服务器上安装 golang

    yum -y install golang
    
  4. clone ngrok 源码

    #创建一个文件夹
    mkdir ~/ngrok && cd ~/ngrok
    #下载源码
    git clone https://github.com/inconshreveable/ngrok.git
    
  5. 生成自签名 ssl 证书

    openssl genrsa -out rootCA.key 2048
    
    openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=ngrok.xxx.com" -days 5000 -out rootCA.pem
    openssl genrsa -out device.key 2048
    
    openssl req -new -key device.key -subj "/CN=ngrok.xxx.com" -out device.csr
    openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
    
  6. 替换默认的证书

    # 拷贝刚才生成的证书到指定的文件夹
    cp rootCA.pem assets/client/tls/ngrokroot.crt
    cp device.crt assets/server/tls/snakeoil.crt
    cp device.key assets/server/tls/snakeoil.key
    
  7. 编译服务端与客户端的 ngrok 文件

    服务端(Linux):

    make release-server
    

    客户端:

    # linux 客户端
    make release-client
    # mac 客户端
    GOOS=darwin GOARCH=amd64 make release-client
    # windows 客户端
    GOOS=windows GOARCH=amd64 make release-client
    
  8. 启动服务端 ngrokd

    # :8999 和 :4430为服务器的端口,因为我的服务器默认的 80和 443 端口被占用了,改用其他的端口
    ./bin/ngrokd -domain="ngrok.xxx.com" -httpAddr=":8999" -httpsAddr=":4430"
    
  9. 下载编译好的客户端文件到本地

    # mac 客户端
    scp root@xxx:~/ngrok/bin/darwin_amd64/ngork ./
    # windows 客户端
    scp root@xxx:~/ngrok/bin/windows_amd64/ngork.exe ./
    
  10. 配置客户端连接(以 mac 环境为例)
    在这里插入图片描述
    修改 ngrok.cfg 文件改为以下内容

    server_addr: " ngrok.xxx.com:4443"
    trust_host_root_certs: false
    

    将 ngrok 文件设置为可执行文件

    chmod +x ngrok
    

    在客户端启动一个项目,假设在我的客户端有一个运行的项目,端口为8000,启动客户端

    #如果不加参数-subdomain=test,将会随机自动分配子域名。
    ngrok -config=ngrok.cfg  -subdomain=test 8000
    

    如果配置没有问题的话,会出现以下内容
    在这里插入图片描述
    访问 test.ngrok.xxx.com:8999 即可访问到运行在本地的项目

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值