搭建ngrok所需要的服務(wù)器推薦
阿里云高性能服務(wù)器2折起:點(diǎn)我購(gòu)買
ngrok是什么
ngrok說(shuō)簡(jiǎn)單點(diǎn)谱秽,類似花生殼,它的功能就是可以讓你本地服務(wù)暴露在外網(wǎng)上面摹迷,可以通過(guò)公網(wǎng)訪問(wèn)疟赊。比如你自己寫(xiě)個(gè)網(wǎng)站,想和朋友們炫耀下峡碉;又比如搭建了個(gè)游戲近哟,想和朋友們一起玩;對(duì)于程序猿來(lái)說(shuō)鲫寄,微信開(kāi)發(fā)時(shí)無(wú)法在本地調(diào)試等都可以通過(guò)ngrok實(shí)現(xiàn)吉执。
需要準(zhǔn)備的
1疯淫、一臺(tái)公網(wǎng)的linux服務(wù)器,銀子短缺的可以網(wǎng)上找找有免費(fèi)的(我的是ubuntu server)
2戳玫、一個(gè)域名(現(xiàn)在域名很便宜熙掺,買個(gè)萬(wàn)一以后值錢了呢)
3、懂中文咕宿,能看懂下面的文字
編譯準(zhǔn)備
1币绩、將你的域名泛解析到你的服務(wù)器
2、進(jìn)入http://www.golangtc.com/download下載go,對(duì)應(yīng)你服務(wù)器的版本荠列。這里我下載的是:go1.4.2.linux-amd64.tar.gz类浪。然后直接將go安裝包解壓到服務(wù)器
/usr/local/go
即可,然后將
/usr/local/go/bin/*
復(fù)制到
/usr/bin
3、安裝git及ngrok源碼:
安裝git
sudo apt-get install git
安裝ngrok:
cd /usr/local/src/
git clone https://github.com/inconshreveable/ngrok.git
export GOPATH=/usr/local/src/ngrok/
export NGROK_DOMAIN="ngrok.lovehxy.com"
cd ngrok
上面其中的ngrok.lovehxy.com就是你的二級(jí)域名,隨便起肌似。
開(kāi)始編譯
1费就、首先為根域名生成證書(shū)
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=ngrok.lovehxy.com" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=ngrok.lovehxy.com" -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
2、編譯服務(wù)端
先指定環(huán)境變量:
GOOS=linux GOARCH=amd64
#如果是32位系統(tǒng)川队,這里 GOARCH=386
再make:
make release-server
如果make過(guò)程中卡住,請(qǐng)升級(jí)git版本至1.7.9.5以上
編譯成功后,在
/usr/local/src/ngrok/bin
下生成了一個(gè)ngrokd可執(zhí)行文件,這就是我們編譯的服務(wù)端,啟動(dòng):
bin/ngrokd -domain="ngrok.lovehxy.com" -httpAddr=":8000"
如果沒(méi)有其他問(wèn)題,會(huì)出現(xiàn)以下輸出:
[11:05:48 CST 2015/11/16] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [registry] [tun] No affinity cache specified
[11:05:48 CST 2015/11/16] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [metrics] Reporting every 30 seconds
[11:05:48 CST 2015/11/16] [INFO] (ngrok/log.Info:112) Listening for public http connections on [::]:8000
[11:05:48 CST 2015/11/16] [INFO] (ngrok/log.Info:112) Listening for public https connections on [::]:443
[11:05:48 CST 2015/11/16] [INFO] (ngrok/log.Info:112) Listening for control and proxy connections on [::]:4443
先crtl+c退出,下面可是編譯客戶端力细。
注:上述編譯的過(guò)程會(huì)需要去github、google code下載其余依賴項(xiàng)目的源碼固额,因此需要掛VPN眠蚂。當(dāng)然,如果服務(wù)器不能掛vpn可以在本地進(jìn)行上面介紹的操作過(guò)程斗躏,然后將編譯后的源碼復(fù)制到服務(wù)器上重新編譯即可逝慧。 還有一種最簡(jiǎn)單的解決辦法就是,修改源碼啄糙,將需要連接google code的地址改為連接github上的地址:
找到 /root/ngrok/src/ngrok/log/logger.go 笛臣,看到里面有一個(gè)import中引用了google code,將其改為:"github.com/keepeye/log4go" 隧饼。
3沈堡、編譯客戶端
直接編譯:
make release-client
編譯出來(lái)的是linux平臺(tái)下的客戶端,如果你是linux的客戶端就可以直接使用。
mac下的客戶端編譯:
cd /usr/local/go/src
GOOS=darwin GOARCH=amd64 ./make.bash
然后回ngrok目錄,繼續(xù)編譯:
cd -
GOOS=darwin GOARCH=amd64 make release-client
完成后可以在
/usr/local/src/ngrok/bin/darwin_amd64/
下發(fā)現(xiàn)ngrok,拷貝到你的mac電腦上
在啟動(dòng)之前我們需要為客戶端編寫(xiě)一個(gè)配置文件ngrok.cfg:
server_addr: "ngrok.lovehxy.com:4443"
trust_host_root_certs: false
然后運(yùn)行:
./ngrok -config=./ngrok.cfg -subdomain=test 80
其中-subdomain就是需要分配域名的前綴部分
如果沒(méi)有錯(cuò)誤,會(huì)有以下輸出:
Tunnel Status online
Version 1.7/1.7
Forwarding http://test.ngrok.lovehxy.com:8000 -> 127.0.0.1:80
Forwarding https://test.ngrok.lovehxy.com:8000 -> 127.0.0.1:80
Web Interface 127.0.0.1:4040
# Conn 0
Avg Conn Time 0.00ms
現(xiàn)在訪問(wèn):test.ngrok.lovehxy.com:8000就可以訪問(wèn)你本機(jī)的80端口了
windows下的客戶端編譯:
cd /usr/local/go/src
GOOS=windows GOARCH=amd64 ./make.bash
cd -
GOOS=windows GOARCH=amd64 make release-client
#同理燕雁,這里的amd64是64位系統(tǒng)诞丽,32位改成386
#應(yīng)該會(huì)在 bin/windows_amd64 目錄下生成ngrok客戶端程序
然后執(zhí)行:
ngrok -config=ngrok.cfg -subdomain test 8080
即可
怎么樣,是不是很cool。有能力的小伙伴趕緊購(gòu)買一個(gè)云服務(wù)器來(lái)部署自己的ngork服務(wù)吧拐格。
推薦阿里云服務(wù)器: 點(diǎn)我購(gòu)買