ngrok是一个能做内网穿透的工具,是开发微信公众号的一个必不可少的工具。
需要的东西:
- 一个一级域名
- 一台有公网IP的linux服务器
简单说下如何配置:
1.假设你已经有一级域名了,进入到域名管理

2.添加一个解析规则,测试添加的二级域名是 ngrok.xxx.com,ngrok可以随便取,为了方便记忆取这个名,xxx.com为你的域名,记录值为你放ngrok的服务器公网地址,ngrok.xxx.com即为NGROK_BASE_DOMAIN
3.再添加一个域名为test.ngrok.xxx.com,至此域名部分操作已经完成。
4.(服务器操作部分)在公网linux服务器上面安装Golang和git。
ngrok是用Go写的,后面需要根据源码打包客户端出来,git主要用来下载ngrok的源码。
使用到的2条Cetos下的安装命令:
yum install -y go
yum install -y git
5.下载源码(此处使用非官方地址,修复了部分包无法获取(摘自网络))
git clone https://github.com/tutumcloud/ngrok.git ngrok
下载完成后,目录结构长这样
6.生成自签名证书
ngrok.xxx.com为NGROK_BASE_DOMAIN(拷贝时记得替换成你的)(摘自网络)
NGROK_DOMAIN="ngrok.xxx.com"
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
7.编译服务端
make release-server release-client
8.启动服务
仅提供一种最简单的方式:
./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="ngrok.xxx.com" -httpAddr=":80" -httpsAddr=":443"

9.编译客户端
(1) windows
GOOS=windows GOARCH=amd64 make release-client
下载编译好的客户端,截图目录下的ngrok.exe文件

(2)mac
GOOS=darwin GOARCH=amd64 make release-client
10.启动客户端
与ngrok.exe同级建立一个新文件ngrok.cfg。文件内容如下:
server_addr: "ngrok.xxx.com:4443"
trust_host_root_certs: false
ps:记得开放公网服务器的4443端口
新建一个启动的脚本start.bat(名字随意),内容如下
大致意思为:将子域名test.ngrok.xxx.com的访问请求,转至本地的8080端口。
@echo on
cd %cd%
ngrok -config=ngrok.cfg -log=ngrok.log -subdomain=test.ngrok.xxx.com 8080

打开浏览器,访问test.ngrok.xxx.com即可成功访问本地8080项目。
参考博客:
10分钟教你搭建自己的ngrok服务器 https://blog.youkuaiyun.com/yjc_1111/article/details/79353718