1 安裝git 和Golang
apt-get install build-essential golang mercurial git
2 下載源碼,當然也可以不安裝git灭衷,但是需要手動上傳代碼到需要的位置次慢。
此處使用非官方地址,修復了部分包無法獲认枨(摘自網(wǎng)絡)
git clone https://github.com/tutumcloud/ngrok.git ngrok
3 生成自簽名證書
使用ngrok.com官方服務時迫像,我們使用的是官方的SSL證書。自建ngrokd服務瞳遍,如果不想買SSL證書闻妓,我們需要生成自己的自簽名證書,并編譯一個攜帶該證書的ngrok客戶端掠械。
證書生成過程需要一個NGROK_BASE_DOMAIN由缆。 以ngrok官方隨機生成的地址xxx.ngrok.com為例注祖,其NGROK_BASE_DOMAIN就是“ngrok.com”,
如果你要提供服務的地址為“example.ngrok.xxx.com”均唉,那NGROK_BASE_DOMAIN就應該 是“ngrok.xxx.com”是晨。
本次測試,由于沒有多余的域名舔箭,我替換成自己的二級域名“risk001.cn”罩缴。
cd ngrok
NGROK_DOMAIN="risk001.cn"
openssl genrsa -out base.key 2048
openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.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 base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt
執(zhí)行完成后需要替換證書
cp base.pem assets/client/tls/ngrokroot.crt
編譯
make release-server release-client
編譯成功后會在bin目錄下找到ngrokd和ngrok這兩個文件。其中ngrokd 就是服務端程序了层扶。
啟動服務端
./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="risk001.cn" -httpAddr=":80" -httpsAddr=":443"
編譯客戶端
(1)windows
GOOS=windows GOARCH=amd64 make release-client?