环境准备
CentOS7 64位
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 install -y mercurial git bzr subversion golang golang-pkg-windows-amd64 golang-pkg-windows-386
go version
输入go版本号
下载安装ngrok
cd /usr/local/
git clone https://github.com/inconshreveable/ngrok.git
export GOPATH=/usr/local/ngrok/
export NGROK_DOMAIN="[test.com]"
cd ngrok
生成SSL证书 用于 Ngrok 服务端和客户端通信认证使用
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
复制证书到 tls下
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key
cd /usr/local/ngrok
GOOS=linux GOARCH=amd64 #如果是32位系统,这里 GOARCH=386
make release-server
如下载失败,重来一次获取就OK了。
正常情况下,在ngrok/bin/下会有ngrokd文件,这就是我们的服务端了。
启动服务端
cd /usr/loca/ngrok
##可以指定证书,域名,端口号来启动:
./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="test.com" -httpAddr=":8234" -httpsAddr=":8334" -tunnelAddr=":7443"
如需后台运行,指令改为:
nohup ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="test.com" -httpAddr=":8234" -httpsAddr=":8334" -tunnelAddr=":7443"&
上面的对应端口需要在防火墙设置通过。
访问测试
https://test.com:8334/
http://test.com:8234/
这时看到界面输出,但无法提供服务。
Tunnel test.com:8234 not found
下一章测试windows客户端。
http://blog.csdn.net/xundh/article/details/79134558
而我们实际使用的域名是用二级域名。
参考:
http://www.jb51.cc/article/p-vkfutmge-gt.html
https://my.oschina.net/Kxvz/blog/914183
http://blog.csdn.net/yucdsn/article/details/78746745