安装git
首先检查git
的版本,如果版本小于1.7.9.5会在之后的编译中遇到一个坑。
如果版本小于1.7.9.5,那么首先卸载git
,再通过源码安装:
1 2 3 4 5 6 7 8 9 10 11 12 13
| yum remove git
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++
wget https://www.kernel.org/pub/software/scm/git/git-2.6.0.tar.gz tar zxvf git-2.6.0.tar.gz cd git-2.6.0
./configure --prefix=/usr/local/git make && make install echo "export PATH=\$PATH:/usr/local/git/bin" >> /etc/profile source /etc/profile
|
安装go
1 2 3 4 5 6 7 8 9
| wget http://www.golangtc.com/static/go/1.4.2/go1.4.2.linux-386.tar.gz tar -C /usr/local/ -zxf ./go1.4.2.linux-386.tar.gz
wget http://www.golangtc.com/static/go/1.4.2/go1.4.2.linux-amd64.tar.gz tar -C /usr/local/ -zxf ./go1.4.2.linux-amd64.tar.gz
echo "export GOROOT=/usr/local/go" >> /etc/profile echo "export PATH=\$GOROOT/bin:\$PATH" >> /etc/profile
|
检查是否安装成功:
为go
设置编译环境
1 2 3 4 5 6 7 8
| cd /usr/local/go/src GOOS=linux GOARCH=386 ./make.bash GOOS=linux GOARCH=amd64 ./make.bash GOOS=linux GOARCH=arm ./make.bash GOOS=linux GOARCH=mipsle ./make.bash GOOS=darwin GOARCH=amd64 ./make.bash GOOS=windows GOARCH=386 ./make.bash GOOS=windows GOARCH=amd64 ./make.bash
|
更多的编译参数请参考链接
编译ngrok
下载源码
1 2 3
| cd ~ git clone https://github.com/inconshreveable/ngrok.git cd ngrok
|
生成域名的自签名证书
1 2 3 4 5 6 7
| NGROK_DOMAIN="your.domain.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
|
编译ngrok服务端
1
| GOOS=linux GOARCH=386 make release-server
|
编译ngrok客户端
首先我们可以对源码做一些自定义修改,这里是可选操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| vim ./src/ngrok/client/model.go
vim ./src/ngrok/client/views/term/view.go
vim ./src/ngrok/client/client/cli.go
|
编译客户端:
1
| GOOS=windows GOARCH=386 make release-client
|
安装ngrok
这里就比较随意,文件放哪里都可以,我的方案如下:
1 2 3 4 5 6
| mkdir /usr/local/ngrok mkdir /etc/ngrokd cp bin/ngrokd /usr/local/ngrok/ cp device.key /etc/ngrok/ cp device.crt /etc/ngrok/ ln -s /usr/local/ngrok/ngrokd /usr/bin/
|
设置开机启动:
ngrok客户端配置
创建一个配置文件ngrok.cfg
,内容为:
1 2
| server_addr: "your.domain.com:4443" trust_host_root_certs: false
|
启动客户端参数为:
1 2 3
| ./ngrok -config=ngrok.cfg -subdomain test 8080
|
常见问题
如果运行ngrokd
时启动失败,一般是端口被占用,使用netstat -ntlp
查看80、443、4443端口是否被占用。
如果是无法链接,一般是端口没有开放:
1 2 3 4 5
| iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT iptables -A INPUT -p tcp --dport 4443 -j ACCEPT service iptables save /etc/init.d/iptables restart
|