内网穿透-ngrok服务器搭建,一步步从零开始 - 知乎

之前在开发公众号的过程中需要本地调试,结果就是非常麻烦。

通过查找大量资料最终选定ngrok内网穿透方案。

一、先说一下简易步骤:

1、公网服务器安装ngrok服务端,并启动。

2、公网服务器配置Nginx专有路径指向ngrok服务端,供访问使用

3、本地安装客户端

4、启动客户端本连接服务端。

二、工作流程

访问端输入网址->DNS->Nginx->ngrok服务端->映射的ngrok客户端->客户端返回响应->ngrok服务端->ngrok服务端返回到浏览器

三、搭建开始

1、安装golang

centos: yum install golang -y

ubuntu:apt-get install golang-go

测试版本信息

如果找到命令则配置系统变量:

vim /etc/profile
// 添加
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
source /etc/profile

1、安装服务端:

这里需要下载源码,编译出服务端和客户端。

①:下载源码

下载源码,然后生成证书

export NGROK_DOMAIN="ngrok.xxx.com"
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

返回ngrok目录生成服务端和客户端

#linux服务端
GOOS=linux GOARCH=386 make release-server (32位)
GOOS=linux GOARCH=amd64 make release-server(64位)
#linux客户端
GOOS=linux GOARCH=386 make release-client (32位)
GOOS=linux GOARCH=amd64 make release-client(64位)

#Mac OS服务端
GOOS=darwin GOARCH=386 make release-server
GOOS=darwin GOARCH=amd64 make release-server
#Mac OS客户端
GOOS=darwin GOARCH=386 make release-client
GOOS=darwin GOARCH=amd64 make release-client

#windows服务端
GOOS=windows GOARCH=386 make release-server
GOOS=windows GOARCH=amd64 make release-server
#windows客户端
GOOS=windows GOARCH=386 make release-client
GOOS=windows GOARCH=amd64 make release-client

这样服务端客户端就生成了。

我们在安装的过程中还有可能出现缺包少软件的地方,也很简单,缺啥安装啥。

启动服务端

测试服务端

启用客户端

先将刚刚生成的客户端拷贝到本地,新建配置文件ngrok.cfg

ngrok.cfg 内容

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

启动ngrok客户端,连接不成功

启动命令

./ngrok -config=ngrok.cfg -subdomain wx 6088
# wx为访问的二级域名,比如访问wx.ngrok.xxx.com时就会映射到我们本地 6088是本地端口

域名解析要加两个

ngrok.xxx.com-> xxx.xx.xxx.xxx(外网IP)
*.ngrok.xxx.com-> xxx.xx.xxx.xxx(外网IP) 该记录为泛解析

另外还需要开通服务器4443和10080端口

连接成功

访问测试

测试成功


原网址: 访问
创建于: 2021-08-26 11:45:25
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论