系统:centos6.8
1、安装git
.略
2、安装依赖
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++ golang
3、添加域名解析
ngrok.snsprj.cn是ngrok服务绑定的域名;*.ngrok.snsprj.cn是域名泛解析,ngrok的客户端在连接时可以自己指定子域名前缀。
4、安装ngrok
git clone https://github.com/inconshreveable/ngrok.gitcd ngrokNGROK_DOMAIN="ngrok.snsprj.cn"openssl genrsa -out base.key 2048openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.pemopenssl genrsa -out server.key 2048openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -outserver.csropenssl x509 -req -in server.csr -CA base.pem -CAkey base.key -CAcreateserial -days 10000 -outserver.crtcp base.pem assets/client/tls/ngrokroot.crt
make release-server
生成的服务端在[安装目录ngrok]/bin/ngrokd
5、生成客户端
客户端如果跟编译的机器系统不同,编译前需要加参数。
# 编译mac使用的客户端GOOS=darwin GOARCH=amd64 make release-client
# 编译windows使用的客户端(未验证)
GOOS=windows GOARCH=amd64 make release-client
生成的客户端在ngrok/bin/darwin_amd64/ngrok
6、启动服务端(注意修改路径、域名、端口号)
/usr/local/ngrok/bin/ngrokd -tlsKey=/usr/local/ngrok/server.key -tlsCrt=/usr/local/ngrok/server.crt -domain="ngrok.snsprj.cn" -httpAddr=":8888" -httpsAddr=":444" > /home/logs/ngrok.log &
监听http 8888端口,https 444端口,所有访问到外网服务器8888和444端口的数据都会经过ngrok处理转发。可以把上面的命令加到/etc/rc.local,实现开机自启动。
7、启动客户端
将第5步生成的客户端下载到mac电脑上,例如/workspace/applications/ngrok/下。
在该目录新建一个配置文件 ngrok.cfg,内容如下:
server_addr: "ngrok.snsprj.cn:4443"trust_host_root_certs: false
测试将aaa.ngrok.snsprj.cn映射到本地的8080端口。
# 启动客户端
./ngrok -subdomain aaa -config=ngrok.cfg 8080
现在,启动本地的tomcat,端口8080,可以通过http://aaa.ngrok.snsprj.cn:8888访问。
最终效果:
注意事项:
ngrok服务用的到端口号都要在防火墙开启。
有疑问加站长微信联系(非本文作者)