一 . ngrok科普
- ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道
- 实现发布NAT和防火墙后的局域网服务,互联网访问
- 实现web接口回调,比如微信,支付宝开发中的异步通知
二 . 服务端编译
1. 安装golang依赖环境,必须是1.6以上版本
wget https://storage.googleapis.com/golang/go1.6.3.linux-amd64.tar.gz
sudo tar -xzf go1.6.3.linux-amd64.tar.gz -C /usr/local
sudo vim /etc/profile
GOROOT="/usr/local/go"
PATH=$GOROOT/bin:$PATH
goalng必须是1.6以上版本,否则编译时报unknown tls.Config field 'GetCertificate' in struct literal
2. 下载源码
git clone https://github.com/inconshreveable/ngrok.git ngrok
cd ngrok
3. 生成证书
sudo openssl genrsa -out base.key 2048
sudo openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=ngrok.lixp.cc" -out base.pem
sudo openssl genrsa -out server.key 2048
sudo openssl req -new -key server.key -subj "/CN=ngrok.lixp.cc" -out server.csr
sudo 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
4.编译
make release-server
三 . 客户端编译
GOOS=windows GOARCH=amd64 make release-client
四 . 服务端启动
./ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="ngrok.lixp.cc" -httpAddr=":1980" -httpsAddr=":1943"
五 . 客户端启动
1.创建文件ngrok.cfg
server_addr: "ngrok.lixp.cc:4443"
trust_host_root_certs: false
2.启动
ngrok -config ngrok.cfg -subdomain hhhh 8080