Ngrok搭建筆記

環(huán)境準(zhǔn)備

VPS

這里以阿里云ECS為例,操作系統(tǒng)為CentOS7(64位)宋彼。

域名

將一個域名或二級域名泛解析到VPS服務(wù)器上渣慕。
例如將*.ngrok.tanxin.link解析到VPS的IP。
要注意钩骇,此時還需要將ngrok.tanxin.link的A記錄設(shè)置為VPS的IP豺谈。

軟件下載地址:

配置過程

安裝git

  1. 安裝git郑象,我安裝的是2.6版本,防止會出現(xiàn)另一個錯誤茬末,安裝git所需要的依賴包

     yum -y install zlib-devel openssl-devel perl hg cpio expat-devel gettext-devel curl curl-devel perl-ExtUtils-MakeMaker hg wget gcc gcc-c++
    
  2. 下載git wget https://www.kernel.org/pub/software/scm/git/git-2.6.0.tar.gz

  3. 解壓git tar zxvf git-2.6.0.tar.gz

  4. 編譯git

     cd git-2.6.0
     ./configure --prefix=/usr/local/git
     make
     make install
    
  5. 創(chuàng)建git的軟連接

     ln -s /usr/local/git/bin/* /usr/bin
    

安裝go環(huán)境

準(zhǔn)備go環(huán)境厂榛,我的系統(tǒng)是64位的centos所以我下載amd64的包(32位的下載386的包即可)

  1. 下載go的軟件包

    wget https://studygolang.com/dl/golang/go1.4.2.linux-amd64.tar.gz

解壓出來可以隨便指定位置
tar -zxvf go1.4.2.linux-amd64.tar.gz
mv go /usr/local/(*如果此處移動失敗 請使用先復(fù)制到該目錄再刪除的方法)
  1. go的命令需要做軟連接到/usr/bin

     ln -s /usr/local/go/bin/* /usr/bin
    

編譯ngrok

cd /usr/local/
git clone https://github.com/inconshreveable/ngrok.git
export GOPATH=/usr/local/ngrok/
export NGROK_DOMAIN="xxx.XXXX.xxx"(*此處改為你自己的域名即可)
cd ngrok

為域名生成證書

openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.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 rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 5000

在軟件源代碼目錄下面會生成一些證書文件,我們需要把這些文件拷貝到指定位置

cp rootCA.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key

修改代碼

按理來說丽惭,跳過這一步直接進(jìn)行后續(xù)的編譯工作沒有什么問題击奶。但是由于google無法訪問,造成編譯的時候從code.google.com上自動下載依賴包log4go超時而編譯失敗责掏。
所以柜砾,我們需要將依賴包的下載地址改為github上的地址
    vi /usr/local/ngrok/src/ngrok/log/logger.go
將第四行改成下面的
    log "github.com/keepeye/log4go"
指定編譯環(huán)境變量,如何確認(rèn)GOOS和GOARCH换衬,可以通過go env來查看

編譯服務(wù)端

cd /usr/local/go/src
GOOS=linux GOARCH=amd64 ./make.bash
cd /usr/local/ngrok/
GOOS=linux GOARCH=amd64 make release-server

編譯客戶端(按自己的客戶端選擇編譯即可)

適用于mac os 64位操作系統(tǒng)
cd /usr/local/go/src
GOOS=darwin GOARCH=amd64 ./make.bash
cd /usr/local/ngrok/
GOOS=darwin GOARCH=amd64 make release-client
適用于Windows的客戶端編譯
cd /usr/local/go/src
GOOS=windows GOARCH=amd64 ./make.bash
cd /usr/local/ngrok/
GOOS=windows GOARCH=amd64 make release-client
客戶端配置文件(新建ngrok.cfg痰驱,將配置信息粘貼進(jìn)去就行)
server_addr: "xxx.xxxx.xx:4443"
trust_host_root_certs: false 
服務(wù)端啟動
 /usr/local/ngrok/bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":8888"
客戶端使用
 ./ngrok -config=./ngrok.cfg -subdomain=blog 80
 setsid ./ngrok -config=./ngrok.cfg -subdomain=test 80
在linux下如果想后臺運行
screen -S yourname -> 新建一個叫yourname的session
screen -ls -> 列出當(dāng)前所有的session
screen -r yourname -> 回到y(tǒng)ourname這個session
screen -d yourname -> 遠(yuǎn)程detach某個session
screen -d -r yourname -> 結(jié)束當(dāng)前session并回到y(tǒng)ourname這個session

問題

出現(xiàn)這個錯誤說明我們需要安裝hg
package code.google.com/p/log4go: exec: "hg": executable file not found in $PATH
解決辦法
           yum install hg -y
編譯到go get gopkg.in/yaml.v1 的時候卡住不走了,說明是git比較低瞳浦,版本需要大于1.7.9.5以上
fatal: Unable to find remote helper for 'https' 出現(xiàn)這個問題担映,可以重新安裝 curl curl-devel 然后再重裝git
安裝git-core
wget https://www.kernel.org/pub/software/scm/git/git-core-0.99.6.tar.gz
tar zxvf git-core-0.99.6.tar.gz
cd git-core-0.99.6
make prefix=/usr/libexec/git-core install
export PATH=$PATH:/usr/libexec/git-core/

Nginx 和 Ngrok 并存

nginx 配置:
server
    {
        listen 80;
        server_name *.ngrok.tanxin.com;
        keepalive_timeout 70;
        proxy_set_header "Host" $host:8888;
        location / {
                proxy_pass_header Server;
                proxy_redirect off;
                proxy_pass http://127.0.0.1:8888;
        }
        access_log off;
        log_not_found off;
    } 
注意:
  • 服務(wù)器防火墻 4443 端口開啟
  • golang注意版本
  • ngrok nginx 端口競爭問題
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市叫潦,隨后出現(xiàn)的幾起案子蝇完,更是在濱河造成了極大的恐慌,老刑警劉巖诅挑,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件四敞,死亡現(xiàn)場離奇詭異,居然都是意外死亡拔妥,警方通過查閱死者的電腦和手機忿危,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來没龙,“玉大人铺厨,你說我怎么就攤上這事∮蚕耍” “怎么了解滓?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長筝家。 經(jīng)常有香客問我洼裤,道長,這世上最難降的妖魔是什么溪王? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任腮鞍,我火速辦了婚禮值骇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘移国。我一直安慰自己吱瘩,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布迹缀。 她就那樣靜靜地躺著使碾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪祝懂。 梳的紋絲不亂的頭發(fā)上票摇,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天,我揣著相機與錄音砚蓬,去河邊找鬼兄朋。 笑死,一個胖子當(dāng)著我的面吹牛怜械,可吹牛的內(nèi)容都是我干的颅和。 我是一名探鬼主播,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼缕允,長吁一口氣:“原來是場噩夢啊……” “哼峡扩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起障本,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤教届,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后驾霜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體案训,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年粪糙,在試婚紗的時候發(fā)現(xiàn)自己被綠了强霎。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,754評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡蓉冈,死狀恐怖城舞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情寞酿,我是刑警寧澤家夺,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站伐弹,受9級特大地震影響拉馋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一煌茴、第九天 我趴在偏房一處隱蔽的房頂上張望柠逞。 院中可真熱鬧,春花似錦景馁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至撒璧,卻和暖如春透葛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背卿樱。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工僚害, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人繁调。 一個月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓萨蚕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蹄胰。 傳聞我的和親對象是個殘疾皇子岳遥,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,654評論 2 354

推薦閱讀更多精彩內(nèi)容