Ngrok 服務(wù)搭建與客戶端編譯

今天朋友叫我?guī)退罱▊€ngrok,我自己也是個喜歡折騰的人,所以就應(yīng)承下了。用了2小時左右搭建成功,中間查看各種資料,都太亂,太不利于大家搭建。所以我準(zhǔn)備寫一個簡單明了的,方便大家參考。中間的踩的坑我就不講了,直接把成功經(jīng)驗分享給大家。

首先

主要有幾個步驟

1.準(zhǔn)備材料

? 1.一臺有公網(wǎng)IP的主機(jī),或者vps等(Linux,如果Windows這篇文章僅供參考)

2.一個域名

3.git,安裝。

? ? ? apt install git

?4.Golang 最新版?下載到服務(wù)器,國內(nèi) http://www.golangtc.com/download,國外就是官網(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,類似 ?* tunnel.yuming.com (我沒法截圖,打開域名配置你自己就知道怎么做了)。

2.配置 Golang?

? ? tar -xzvf ?go1.7.3.linux-amd64.tar.gz ?解壓Golang文件

? ? ?mv ./go/ ? /usr/local/ ? 移動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)來

3.配置ngrok

如果是git拉取的就直接 mv ./ngrok/ ? ~/gopath/src/ ?把ngrok下的所有文件移動到 gopath 下

其他的也類似,最后效果如下圖:(沒有bin,和sslkey)


? ?4.配置SSL證書

建議在 assets 文件夾中執(zhí)行,我在sshkey里面執(zhí)行的,最后文件移動的目錄層級很多。

把其中的域名替換成你自己的域名就好

$ 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í)行完后目錄下有六個文件:

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 目錄下會有 ngrok(Linux客戶端) 和ngrokd(服務(wù)端)

執(zhí)行 unset GOBIN 刪除 GOBIN 變量,否則交叉編譯報錯

執(zhí)行 GOOS=windows GOARCH=386 make release-client 交叉編譯Windows

執(zhí)行 GOOS=darwin GOARCH=amd64 make release-client 交叉編譯 Mac

后臺啟動 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 ? ?./ ?回車后輸入密碼開始下載

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 就是客戶端想要綁定的域名,連接成功后截圖:


我的是最新版本,不知道為什么沒有 web interface 但是 本地 http://localhost:4040/http/in 可以使用

然后 使用 test.tunnel.yuming.com 訪問,展示成功。

5.慶祝成功

點贊。

吐槽一下,簡書的編輯功能太難用了。(字?jǐn)?shù)挺喜慶)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容