需要软件依赖:
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 install git
下载与安装go语言:
http://www.golangtc.com/download
我下载得是:
go1.7.4.linux-amd64.tar.gz
////////////////
解压:
tar -zxvf go1.4.2.linux-386.tar.gz
mv go /usr/local/
制作go语言命令软连接:
ln -s /usr/local/go/bin/* /usr/bin/
////////////////////
使用git克隆ngrok项目
cd /usr/local/
git clone https://github.com/inconshreveable/ngrok.git
////////////////////
编译ngrok前得准备:
cd ngrok
export GOPATH=/usr/local/ngrok/
export NGROK_DOMAIN=”ngrok.gamecc.cn”
这里得NGROK_DOMAIN请设置为自己得主机地址(域名)
为域名生成证书:
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
上面得$NGROK_DOMAIN其实是刚才export得环境变量,我们如果要手动输入得话也行。那么上面得export NGROK_DOMAIN=”xxx.xxx.xxx”则无需设置。
拷贝证书到指定位置:
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key
修改logger.go源代码,天朝得服务器需要修改,香港或则美国的主机可以忽略这一步:
vim /usr/local/ngrok/src/ngrok/log/logger.go
log “github.com/keepeye/log4go”
/////////////////////////////////////////////////////////////////////////
开始编译:
指定编译环境变量
cd/usr/local/go/src
GOOS=linux GOARCH=amd64 make
这里的amd64是代表英特尔或者amd的64位cpu架构(因为amd64架构率先推出桌面版的64位cpu,所以在linux中,为了纪念这个事情,桌面级别的64bit架构cpu都使用这个amd64代号加以说明)
编译ngrok服务器端
cd/usr/local/ngrok
GOOS=linux GOARCH=amd64 make release-server
编译ngrok客户端
GOOS=linux GOARCH=amd64 make release-client
编译windows系统版本的客户端
GOOS=windows GOARCH=amd64 make release-client