小白搭建ngrok完全手册

编程入门 行业动态 更新时间:2024-10-18 01:28:00

小白搭建ngrok<a href=https://www.elefans.com/category/jswz/34/1713656.html style=完全手册"/>

小白搭建ngrok完全手册

恕我直言,连偷懒都不会的程序员,真的很累~

前段时间开发 微信公众号后端,微信测试公众号,需要配置公网域名。本地的居然用不了。

搭建ngrok小白手册

  • 将本地服务映射到公网
  • 你要准备这些
    • 1.域名解析
    • 2.配置安全组
    • 3.安装go编译环境
    • 4.ngrok版本
    • 5.下载ngrok源码
    • 6.生成自签名证书
    • 7.编译服务器端
          • 7.1试一下
    • 8.编译客户端
          • 8.1 windows客户端
          • 8.2 mac
    • 9.启动服务器端
    • 10.设置本地客户端
            • 在同级目录下新建一个配置文件ngrok.cfg

将本地服务映射到公网

  • 本地开发了一个服务,立即给开发的同事用,无需部署在服务器。
  • 开发微信公众号,用ngrok能快速配置到测试账号上。

你要准备这些

需要花点钱。

  1. 一个服务器,阿里云、华为云上有99一年的服务器,买一个。
  2. 买一个域名,几十块一年。

1.域名解析




2.配置安全组


我开放了12020、12021、4443

3.安装go编译环境

本文以阿里云服务器为例,服务器必须有公网地址。
需要环境git、go
aliyun自带git

go语言版本无要求,可以使用yum傻瓜式安装(yum install go -y

4.ngrok版本

ngrok是开源的,但 早早就停止维护了。可以fork一个。避免哪天源码都被删除了。

5.下载ngrok源码

cd ~/
mkdir ngrokService
cd ngrokService
git clone .git
export GOPATH=~/ngrokService/ngrok/
export NGROK_DOMAIN="tunnel.你的域名"
cd ngrok

这里的export两个环境变量,有没有用?
答案是有用的

6.生成自签名证书

自建ngrokd服务,我们需要生成自己的证书,并提供携带该证书的ngrok客户端。

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 device.key 2048
openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000


替换秘钥

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.编译服务器端

阿里云一般都是64位的,这年头,有几个是32位的。

GOOS=linux GOARCH=amd64 make release-server
#如果是32位系统,这里 GOARCH=386

编译时间比较长

这里有很多下载。这样就算编译成功了。

7.1试一下
bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":8000" -httpsAddr=":4433"

没报错,就是这样的输出。

8.编译客户端

8.1 windows客户端
GOOS=windows GOARCH=amd64 make release-client  
8.2 mac
GOOS=darwin GOARCH=amd64 make release-client

我用的是mac,用scp拷贝出来

没出错的话,你应该会看到这样的东西

scp root@你的ECS服务器IP地址:~/ngrokService/ngrok/bin/darwin_amd64/ngrok ngrok-origin

记得要copy出来。我copy之后,用ln了这个文件

ln 你copy过来的ngrok文件  /usr/local/bin/ngrok

9.启动服务器端

我们需要在后台启动,否则断开ssh链接,service也就关了。

nohup ./bin/ngrokd -tlsKey=device.key -tlsCrt=device.crt -domain="tunnel.你的域名" -httpAddr=":12020" -httpsAddr=":12021" > /dev/null 2>log &

10.设置本地客户端

在同级目录下新建一个配置文件ngrok.cfg
server_addr: "tunnel.你的域名:4443"
trust_host_root_certs: false
tunnels:abc:proto:http: 12020subdomain: ngrok

这是我的ngrok.cfg文件

然后你执行就可以了

ngrok -subdomain=wangxueming -log=ngrok.log -config=ngrok.cfg 80

解释一下

-config 就是上面配置文件ngrok.cfg的路径
-subdomain 就是需要分配域名的前缀部分
-log 就是日志的保存路径
80 就是本机websever的端口,比如apache监听的端口,一会ngrok会将请求映射到该端口上。看你自己的配置了。你监听是什么端口。

正常运行你会看到这样的情况

在服务器端的日志,会有这样的信息

如果你发现bad cert,请检查一下你的域名配置什么的。
本文中,域名,端口一致的地方,请根据情况,自行配置,但是也需要保持一致。

截止发文,ngrok的搭建,全部删除,试过一遍。应该是OK的。

更多推荐

小白搭建ngrok完全手册

本文发布于:2024-02-06 16:58:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1750254.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:完全手册   ngrok

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!