ngrok配置,分為用戶端和服務端:
服務端配置稍微麻煩點,用戶端相對簡單,下面總結一下安裝過程中遇到的一些問題:
1 下載下傳golang安裝包,下載下傳位址:https://golang.org/dl/,配置go的環境變量,安裝過程中會自動添加goroot環境變量
2 下載下傳git,下載下傳位址:https://git-scm.com/
3 通過下載下傳ngrok:git clone https://github.com/inconshreveable/ngrok.git
4 進入ngrok目錄,編譯 cd ngrok && make(make指令是linux下的,如果想要在windows下使用,可以下載下傳Cygwin轉換,配置環境變量path:D:\CygwinPortable\App\Cygwin\bin)
報錯
解決辦法:修改ngrok下的makefile檔案;
a、将 export GOPATH:=$(shell pwd)
改為 export GOPATH:=ngrok源碼路徑
b、将 bin/go-bindata:
GOOS="" GOARCH="" go get github.com/jteeuwen/go-bindata/go-bindata
這段改為 bin/go-bindata:
GOOS=windows GOARCH=amd64 go get github.com/jteeuwen/go-bindata/go-bindata
c、修改log4go的路徑
修改src\ngrok\log\logger.go中log4o那段代碼為
log "github.com/keepeye/log4go"
如果找不到go-bindata,需要下載下傳https://github.com/jteeuwen/go-bindata.git
d、編譯make執行:
說明已經生成ngrok的用戶端和服務端執行檔案,這樣建構出的是debug版本
cmd執行
make release-all;
release版本;
debug版本與release版本的差別在于debug版本不打包 assets下的資源檔案,執行時通過檔案系統通路。
5、 進入ngrok目錄,生成證書:
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
這一步報錯
這裡的”/“需要進行轉譯
$NGROK_DOMAIN改為自己的域名,下面的一個也是如此
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
6、編譯服務端:make release-server
啟動服務端:
bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":8000"
啟動成功
7、編譯用戶端
make release-client
為用戶端添加配置檔案:ngrok.cfg
./ngrok -config=./ngrok.cfg -subdomain=test 80,執行指令,啟動用戶端
聯通成功,這裡的ngrok指令即用戶端的ngrokexe,注意路徑