说明
了解本文之前,最好先看前篇:<<微信公众号开发80端口映射解决方案>>。最近公司要搞微信公众号开发,需要解决80端口映射的问题,为了稳定可靠,只好自己搭建ngrok服务端。ngrok 是一个使用go语言编写的反向代理软件,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道,实现内网穿透。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。
环境和条件
服务器Centos6.8_x64+windows10_x64
一台有公网ip的服务器
域名解析到服务器。此处拿域名ngrok.XXX.com举例。
关于域名解析,如果你的域名是为此专用的,可以开启泛解析到此服务器上面。如果你的主域名已经在用,你仅仅需要一个二级域名解析到此服务器,并且开启二级域名的泛解析。我选择是第二种,如下图。当然你不做泛解析也可以,自己在本的hosts文件加添加记录也可以。
安装步骤
一.安装依赖包
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
二.安装go语言环境
可以选择yum安装,我选择yum安装
yum install -y golang
也可以手动安装,下载地址http://www.golangtc.com/download
下载安装包之后,直接解压,配置环境变量即可。
三.编译ngrok
3.1下载ngrok源码并设置变量
cd /usr/local/
git clone https://github.com/inconshreveable/ngrok.git
export GOPATH=/usr/local/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 -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 5000
拷贝证书文件到指定位置
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/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
3.4 交叉编译客户端
Windows客户端
cd /usr/local/ngrok/
GOOS=windows GOARCH=amd64
make release-client
MAC客户端
cd /usr/local/ngrok/
GOOS=darwin GOARCH=amd64
make release-client
客户端配置文件
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"
开启客户端
ngrok -config=ngrok.cfg -subdomain=test 80
启动成功如下效果
本文出自 “技术成就梦想” 博客,请务必保留此出处http://pizibaidu.blog.51cto.com/1361909/1937245