部署準備
1.vps主機一臺(我用的是搬瓦工vps,一年100多點磺平,很實惠)
2. 頂級域名一個 并泛解析到vps的獨立ip地址
3.樹莓派一個
go語言安裝 樹莓派和vps安裝go的方式有所不同,樹莓派下需要編譯
對于64位Linux:
$ wget https://storage.googleapis.com/golang/go1.4.1.linux-amd64.tar.gz
對于32位Linux:
$ wget https://storage.googleapis.com/golang/go1.4.1.linux-386.tar.gz
在/usr/local下安裝程序
$ sudo tar -xzf go1.4.1.linux-xxx.tar.gz -C /usr/local
在/etc/profile中添加系統(tǒng)范圍的PATH環(huán)境變量姨蟋。
$ sudo vi /etc/profile
export PATH=$PATH:/usr/local/go/bin
檢查Go語言的版本
$ go version
樹莓派安裝go參考 http://www.reibang.com/p/4c79aec8b5e7
ngrok安裝與配置
在vps上下載ngrok源碼 xxxx.com換成自己的域名
git clone https://github.com/inconshreveable/ngrok.git ~/ngrok
export GOPATH=~/ngrok/
export NGROK_DOMAIN="xxxx.com"
cd ~/ngrok
生成證書,Ngrok會使用此證書加密通訊
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
將證書文件復制到指定位置
cp rootCA.pem assets/client/tls/ngrokroot.crt -i
cp server.crt assets/server/tls/snakeoil.crt -i
cp server.key assets/server/tls/snakeoil.key -i
編譯服務器端與客戶端
服務器端為linux-x86-64
export GOOS=linux
export GOARCH=386
make release-server
客戶端為arm
export GOOS=linux
export GOARCH=arm
make release-client
~/ngrok/bin目錄下會產(chǎn)生兩個文件如圖
QQ截圖20170731210641.png
linux_386是服務器用的文件眷蜓, linux _arm是樹莓派上用的文件
vps上部署ngrok服務
cp ~/ngrok/bin/linux_386/ngrokd /usr/bin/
單獨開個線程
yum install -y screen
screen -S ngrokd
sudo ngrokd -domain="xxxx.com" -httpAddr=":80" -httpsAddr=":443"
如果80 443被的程式占用的話烈疚,修改端口號即可炕檩,或者kill掉占用進程
樹莓派上部署ngrok客戶端
在樹莓派上新建個文件夾sudo mkdir ~/ngrok
cd ~/ngrok
sudo nano ngrok.cfg
里面加入 server_addr: xxxxxx.com:4443
trust_host_root_certs: false
然后ctrl+o ent 保存 ctrl+X 離開
把在vps上編譯的liunx_arm里面的ngrok文件弄到樹莓派~/ngrok里面。
sudo ./ngrok -subdomain test -proto=http -config=ngrok.cfg 80
QQ截圖20170731212603.png
QQ截圖20170731212711.png