参考了网上很多复杂的编译教程,自己做了一遍。
我的系统是 Ubuntu 14.04.2 LTS
1.首先装必要的工具
apt-get install build-essential golang mercurial git
2.获取 ngrok 源码
cd /root/
git clone https://github.com/inconshreveable/ngrok.git ngrok
export GOPATH=/root/ngrok/
export NGROK_DOMAIN="ngrok.avs.com"
cd 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 device.key 2048
openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp device.crt assets/server/tls/snakeoil.crt
cp device.key assets/server/tls/snakeoil.key
我的系统是 Ubuntu 14.04.2 LTS
1.首先装必要的工具
apt-get install build-essential golang mercurial git
2.获取 ngrok 源码
cd /root/
git clone https://github.com/inconshreveable/ngrok.git ngrok
export GOPATH=/root/ngrok/
export NGROK_DOMAIN="ngrok.avs.com"
cd ngrok
3.go环境搭建
go环境安装可以通过源码安装或安装EPEL扩展源后使用yum安装,由于使用yum安装的go不能进行交叉编译,不能够编译生成Windows客户端,所以推荐使用通过源码安装。源码安装go的详细过程如下:
- 1).下载源码,可以在 http://www.golangtc.com/download 上找到自己系统对应的源码。由于我的系统是centos的,所以下载的是:go1.4.2.linux-amd64.tar.gz。
- 2).将其解压到/usr/local目录下:
tar -C /usr/local -xzf go1.4.2.linux-amd64.tar.gz
- 3). 在 root 权限执行:
mkdir $HOME/go
echo 'export GOROOT=/usr/bin/go'>> ~/.bashrc
echo 'export GOPATH=$HOME/go'>> ~/.bashrc
echo 'export PATH=$PATH:$GOROOT/bin'>> ~/.bashrc
source $HOME/.bashrc
4.生成域名ngrok.test.com证书
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 device.key 2048
openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp device.crt assets/server/tls/snakeoil.crt
cp device.key assets/server/tls/snakeoil.key
设置变量:
GOOS=linux GOARCH=amd64 #如果是32位系统,这里 GOARCH=386
生成服务端与客户端
make release-server release-client