今天朋友叫我?guī)退罱▊€(gè)ngrok趾徽,我自己也是個(gè)喜歡折騰的人,所以就應(yīng)承下了翰守。用了2小時(shí)左右搭建成功孵奶,中間查看各種資料,都太亂蜡峰,太不利于大家搭建了袁。所以我準(zhǔn)備寫(xiě)一個(gè)簡(jiǎn)單明了的,方便大家參考湿颅。中間的踩的坑我就不講了载绿,直接把成功經(jīng)驗(yàn)分享給大家。
首先
主要有幾個(gè)步驟
1.準(zhǔn)備材料
? 1.一臺(tái)有公網(wǎng)IP的主機(jī)油航,或者vps等(Linux崭庸,如果Windows這篇文章僅供參考)
2.一個(gè)域名
3.git,安裝。
? ? ? apt install git
?4.Golang 最新版?下載到服務(wù)器怕享,國(guó)內(nèi) http://www.golangtc.com/download执赡,國(guó)外就是官網(wǎng)。
? ? ? ?wget http://www.golangtc.com/static/go/1.7.3/go1.7.3.linux-amd64.tar.gz
?5.ngrok 源碼函筋,去github下載沙合,或者用git拉取,地址(https://github.com/inconshreveable/ngrok)
2.配置環(huán)境
1.配置 A 記錄指向你的主機(jī)IP跌帐,類(lèi)似 ?* tunnel.yuming.com (我沒(méi)法截圖首懈,打開(kāi)域名配置你自己就知道怎么做了)。
2.配置 Golang?
? ? tar -xzvf ?go1.7.3.linux-amd64.tar.gz ?解壓Golang文件
? ? ?mv ./go/ ? /usr/local/ ? 移動(dòng)go文件夾到 /usr/local/ 文件夾
? ? ?mkdir gopath ?在用戶目錄下創(chuàng)建 gopath 用的目錄
? ? ?vim ?.mypath 在用戶目錄新建文件谨敛,存放go的環(huán)境信息
? ? ? ? ? export PATH=$PATH:/usr/local/go/bin
? ? ? ? ? export GOPATH=~/gopath
? ? ? ? ? export GOROOT=/usr/local/go
? ? ? ? ? export GOBIN=$GOPATH/bin
? ? ?如果你是bash 就直接在 ~/.bashrc 里面加一句 source ~/.mypath究履,其他的自己看吧。
? ? ?然后執(zhí)行 source .mypath 把環(huán)境變量添加進(jìn)來(lái)
3.配置ngrok
如果是git拉取的就直接 mv ./ngrok/ ? ~/gopath/src/ ?把ngrok下的所有文件移動(dòng)到 gopath 下
其他的也類(lèi)似佣盒,最后效果如下圖:(沒(méi)有bin,和sslkey)
? ?4.配置SSL證書(shū)
建議在 assets 文件夾中執(zhí)行挎袜,我在sshkey里面執(zhí)行的,最后文件移動(dòng)的目錄層級(jí)很多肥惭。
把其中的域名替換成你自己的域名就好
$ openssl genrsa -out rootCA.key 2048
$ openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=tunnel.yuming.com" -days 5000 -out rootCA.pem
$ openssl genrsa -out device.key 2048
$ openssl req -new -key device.key -subj "/CN=tunnel.yuming.com" -out device.csr
$ openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
執(zhí)行完后目錄下有六個(gè)文件:
device.crt ?device.csr ?device.key ?rootCA.key ?rootCA.pem ?rootCA.srl
拷貝文件
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp device.crt assets/server/tls/snakeoil.crt
cp device.key assets/server/tls/snakeoil.key
3.編譯程序
到gopath 目錄下 執(zhí)行 make release-server ?replease-client
執(zhí)行成功后 在gopath/bin 目錄下會(huì)有 ngrok(Linux客戶端) 和ngrokd(服務(wù)端)
執(zhí)行 unset GOBIN 刪除 GOBIN 變量,否則交叉編譯報(bào)錯(cuò)
執(zhí)行 GOOS=windows GOARCH=386 make release-client 交叉編譯Windows
執(zhí)行 GOOS=darwin GOARCH=amd64 make release-client 交叉編譯 Mac
后臺(tái)啟動(dòng) ngrok 服務(wù)
setsid ./ngrokd -domain="tunnel.yuming.com" -httpAddr=":80" -httpsAddr=":443" -log ./access.log
4.下載使用
使用下載工具下載客戶端到本地紊搪,我是mac 我用的scp
scp root@ip:~/gopath/bin/darwin_amd64/ngrok ? ?./ ?回車(chē)后輸入密碼開(kāi)始下載
vim ngrok.cfg 輸入
? ? ? ?server_addr: "tunnel.yuming.com:443"
? ? ? ?trust_host_root_certs: false
保存退出(wq)
./ngrok -config=ngrok.cfg -subdomain=test ? ip:8000(ip蜜葱,端口隨意你自己定)
test 就是客戶端想要綁定的域名,連接成功后截圖:
然后 使用 test.tunnel.yuming.com 訪問(wèn)牵囤,展示成功。
5.慶祝成功
點(diǎn)贊滞伟。
吐槽一下揭鳞,簡(jiǎn)書(shū)的編輯功能太難用了。(字?jǐn)?shù)挺喜慶)梆奈。