微信公众号开发80端口映射之搭建ngrok服务器

  

说明

了解本文之前,最好先看前篇:& lt; & lt;微信公众号开发80端口映射解决方案在祝辞。最近公司要搞微信公众号开发,需要解决80端口映射的问题,为了稳定可靠,只好自己搭建ngrok服务端.ngrok是一个使用去语言编写的反向代理软件,通过在公共的端点和本地运行的Web服务器之间建立一个安全的通道,实现内网穿透.ngrok可捕获和分析所有通道上的流量,便于后期分析和重放。

,

环境和条件

服务器Centos6.8_x64 + windows10_x64


一台有公网ip的服务器


域名解析到服务器。此处拿域名ngrok.XXX.com举例。


关于域名解析,如果你的域名是为此专用的,可以开启泛解析到此服务器上面。如果你的主域名已经在用,你仅仅需要一个二级域名解析到此服务器,并且开启二级域名的泛解析。我选择是第二种,如下图。当然你不做泛解析也可以,自己在本地举办文件添加记录也可以。

微信公众号开发80端口映射之搭建ngrok服务器

微信公众号开发80端口映射之搭建ngrok服务器

,

安装步骤

,

一。安装依赖包

yum  -y  install  zlib-devel  openssl-devel  perl  hg  cpio  expat-devel  gettext-devel  curl  curl-devel  perl-ExtUtils-MakeMaker  hg  wget  gcc  gcc-c + +, git

,

二。安装去语言环境

,

可以选择百胜安装,我选择百胜安装

yum安装- y golang

也可以手动安装,下载地址http://www.golangtc.com/download

下载安装包之后,直接解压,配置环境变量即可。

,

三。编译ngrok

,

3.1下载ngrok源码并设置变量cd/usr/local/

git克隆https://github.com/inconshreveable/ngrok.git

export GOPATH=/usr/地方/ngrok/

export NGROK_DOMAIN=" ngrok.XXX.com "

cd/usr/local/ngrok

3.2生成自签名证书,ngrok为ssl加密连接。
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  server.key  2048年   openssl  req  -new  -key  server.key  -subj “/CN=$ NGROK_DOMAIN”, -out  server.csr   openssl  x509  -req 拷贝;server.csr  -CA  rootCA.pem  -CAkey  rootCA.key  -CAcreateserial  -out  server.crt  -days  5000年

,

<编辑>

cp还。/客户端/tls/ngrokroot pem资产。crt

cp服务器。crt/服务器/tls/snakeoil资产。crt

cp服务器。关键资产/服务器/tls/snakeoil.key

,

<编辑>

vim/usr/local/ngrok/src/ngrok/log/logger.go

log "github.com/keepeye/log4go"

 

3.3 编译服务端和linux客户端,GOOS和GOARCH可以参照go env

cd/usr/local/ngrok/

GOOS=linux GOARCH=amd64

make clean

make release-server release-client


执行完会在当前目录生成一个bin文件夹,里面包含了ngrokdngrok文件;
其中,bin/ngrokd文件是服务端程序;bin/ngrok文件是客户端程序(注意上面指定了GOOS

64位linux的,所以这个文件是不能在macwin等其他平台跑的,下面将进行说明如何交叉编译)


 

3.4 交叉编译客户端

 

cd/usr/local/ngrok/

GOOS=windows GOARCH=amd64 

make release-client

 

cd/usr/local/ngrok/


server_addr: "ngrok.XXX.com:4443"

trust_host_root_certs: false

 

四.启动服务

 

/usr/local/ngrok/bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80"

 

setsid/usr/local/ngrok/bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80"


启动服务后会,默认会开启监听80,443,4443。当然80和443端口你可以指定端口,只需要如下启动服务

微信公众号开发80端口映射之搭建ngrok服务器