安装


参考链接: sunnyos

端口不能冲突 443 4443 和一个 自定义端口

环境配置 (debain x64)


apt-get install build-essential
apt-get install git-core
golang
wget http://www.golangtc.com/static/go/1.4.2/go1.4.2.linux-amd64.tar.gz
tar -zxvf go1.4.2.linux-amd64.tar.gz
mv go /usr/local/
ln -s /usr/local/go/bin/* /usr/bin/
ngrok编译
cd /usr/local/
git clone https://github.com/inconshreveable/ngrok.git
export GOPATH=/usr/local/ngrok/
export NGROK_DOMAIN="linkfun.win"
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 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
复制证书
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key
修改日志路径 (搬瓦工可以不修改)
nano /usr/local/ngrok/src/ngrok/log/logger.go
log "github.com/keepeye/log4go"
生成服务端
//x86
cd /usr/local/go/src
GOOS=linux GOARCH=386 ./make.bash
cd /usr/local/ngrok/
GOOS=linux GOARCH=386 make release-server
//x64
cd /usr/local/go/src
GOOS=linux GOARCH=amd64 ./make.bash
cd /usr/local/ngrok/
GOOS=linux GOARCH=amd64 make release-server
生成客户端 mac
cd /usr/local/go/src
GOOS=darwin GOARCH=amd64 ./make.bash
cd /usr/local/ngrok/
GOOS=darwin GOARCH=amd64 make release-client
生成客户端 win
//32位
cd /usr/local/go/src
GOOS=windows GOARCH=386 ./make.bash
cd /usr/local/ngrok/
GOOS=windows GOARCH=386 make release-client
//64位
cd /usr/local/go/src
GOOS=windows GOARCH=amd64 ./make.bash
cd /usr/local/ngrok/
GOOS=windows GOARCH=amd64 make release-client
生成客户端 arm linux
//32位
cd /usr/local/go/src
GOOS=linux GOARCH=arm ./make.bash
cd /usr/local/ngrok/
GOOS=linux GOARCH=arm make release-client
生成客户端 x86_x64 linux
//32位
cd /usr/local/go/src
GOOS=linux GOARCH=386 ./make.bash
cd /usr/local/ngrok/
GOOS=linux GOARCH=386 make release-client
//64位
cd /usr/local/go/src
GOOS=linux GOARCH=amd64 ./make.bash
cd /usr/local/ngrok/
GOOS=linux GOARCH=amd64 make release-client

改默认配置信息

nano /usr/local/ngrok/src/ngrok/client/model.go
找到第23行,将 defaultServerAddr = "ngrokd.ngrok.com:443"
修改为 defaultServerAddr = "linkfun.win:4443" 即可。
nano /usr/local/ngrok/src/ngrok/client/views/term/view.go
找到第100行,将
v.APrintf(termbox.ColorBlue|termbox.AttrBold, 0, 0, "ngrok")
修改为
v.APrintf(termbox.ColorBlue|termbox.AttrBold, 0, 0, "your logo")

服务端启动


/usr/local/ngrok/bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":9100"

客户端启动


http

默认模式
//2 种命令方法都可以
./ngrok -config=./ngrok.cfg -subdomain=域名前缀 127.0.0.1:8888

./ngrok -config=./ngrok.cfg -subdomain=域名前缀 8888
改配置后模式
./ngrok -subdomain=域名前缀 8888

tcp

./ngrok -proto=tcp 22

nginx配置