ngrok的部署方法
一段时间前从小伙伴TKS那里听说ngrok可以穿透内网,正好之前折腾ssh穿透搞的焦头烂额,于是便想折腾这ngrok,经过网上翻阅数十个资料与教程,均未架设成功,然后自己折腾了几天,东拼西凑终于架设成功,用起来确实是舒服,比ssh更简单,而且http/https映射更方便。 首先是文字教程,系统使用ubuntu14.04x86
golang方面
wget https://storage.googleapis.com/golang/go1.4.2.linux-386.tar.gztar -C /usr/local -xzf go1.4.2.linux-386.tar.gz#环境变量mkdir $HOME/goecho 'export GOROOT=/usr/local/go'>> ~/.bashrcecho 'export GOPATH=$HOME/go'>> ~/.bashrcecho 'export PATH=$PATH:$GOROOT/bin'>> ~/.bashrcsource $HOME/.bashrc### 获取ngrok1.7到本地
git clone https://github.com/tutumcloud/ngrok.git ngrokcd ngrok### 域名证书方面
(srk.win换成你自己的域名) openssl genrsa -out rootCA.key 2048openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=srk.win" -days 5000 -out rootCA.pemopenssl genrsa -out device.key 2048openssl req -new -key device.key -subj "/CN=srk.win" -out device.csropenssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000cp rootCA.pem assets/client/tls/ngrokroot.crtcp device.crt assets/server/tls/snakeoil.crtcp device.key assets/server/tls/snakeoil.key### 配置golang环境编译linux服务端与客户端
x86使用GOARCH=386 x64则使用amd64 #golang环境cd /usr/local/go/src/GOOS=linux GOARCH=386 CGO_ENABLED=0 ./make.bash#编译ngrok服务端与客户端cd /root/ngrokGOOS=linux GOARCH=386 make release-server release-client### Windows配置
windows只需要32位即可不必编译64位 #golang环境cd /usr/local/go/src/GOOS=linux GOARCH=386 CGO_ENABLED=0 ./make.bash#编译windows客户端cd /root/ngrokGOOS=linux GOARCH=386 make release-client### 启动服务端
编译好的客户端会在ngrok/bin目录下ngrokd为服务端ngrok为客户端windows_386目录内为windows客户端,服务端与客户端对应,客户端不能连接其它的服务端,服务端也不能被其它的客户端连接,客户端ngrok-c则除外。 #正常启动默认通信端口4443./bin/ngrokd -domain="srk.win"#指定监听通信端口/http/https端口./bin/ngrokd -domain="srk.win" -httpsAddr=":445" -httpAddr=":82" -httpsAddr=":4443"#nohup后台运行(也可以使用screen运行)nohup /root/ahost/bin/ngrokd -domain="ahost.win" -httpsAddr=":445" -httpAddr=":82" -tunnelAddr=":4444" &### 视频教程
[video width="768" height="432" preload="auto" mp4="https://nzue3k56y.qnssl.com/bandicam%202016-03-10%2022-16-01-953.MP4"\]\[/video\]