原文出处:花生壳弱爆了~搭建ngrok内网穿透教程
内网穿透适合场景:本地电脑环境下开发测试。不想频繁把程序打包上传到云服务器上去。需要把程序测试ok之后才上传。典型场景:微信公众号,小程序等开发测试
ngrok是一个反向代理,它能够让你本地的web服务或tcp服务通过公共的端口和外部建立一个安全的通道,使得外网可以访问本地的计算机服务。也就是说,我们提供的服务(比如web站点)无需搭建在外部服务器,只要通过ngrok把站点映射出去,别人即可直接访问到我们的服务。
有做过微信公众号开发的人,对它应该不陌生。因为用户跟微信公众号产生的交互行为,微信会把用户的相关信息推送到我们自己的服务器,如果服务在本地,那微信当然无法推送给我们,这使得开发功能的时候调试相当麻烦。我们可以使用ngrok把本地站点映射出去,解决这个问题。
另外如果我们想把本地开发时候的系统临时给外网用户看,无需部署到服务器上面去就可以,非常方便。
ngrok是开源的,官网地址: https://github.com/inconshreveable/ngrok
下面,我们开始搭建ngrok服务。操作系统为CentOS 7.2
准备工作
搭建ngrok服务需要有一个外网服务器及一个域名解析到外网服务器上,我已经有了一个 xncoding.com 域名,并且拥有一台腾讯云主机。
在腾讯云主机的域名解析处,配置2个A记录,比如我新建2个 ngrok.xncoding.com 和 *.ngrok.xncoding.com 解析到vps服务器上。
搭建ngrok服务
搭建ngrok服务
安装go语言环境
ngrok是基于go语言开发的,所以需要先安装go语言开发环境,CentOS可以使用yum安装:
yum install golang
安装git
默认的git版本太低了,需要升级到git2.5,具体步骤如下:
sudo yum remove git
sudo yum install epel-release
sudo yum install https://centos7.iuscommunity.org/ius-release.rpm
sudo yum install git2u
git --version ,返回 git version 2.5.0 ,安装成功。
下载ngrok源码
新建一个目录,并clone一份源码:
mkdir ~/go/src/github.com/inconshreveable
cd ~/go/src/github.com/inconshreveable
git clone https://github.com/inconshreveable/ngrok.git
export GOPATH=~/go/src/github.com/inconshreveable/ngrok
生成自签名证书
使用ngrok.com官方服务时,我们使用的是官方的SSL证书。自己建立ngrok服务,需要我们生成自己的证书,并提供携带该证书的ngrok客户端。
证书生成过程需要有自己的一个基础域名,比如我的就是 ngrok.xncoding.com 。