1. 程式人生 > >阿里雲centos6.9搭建ngrok伺服器

阿里雲centos6.9搭建ngrok伺服器

準備工作:(1)阿里雲ECS伺服器(2)自己的域名

1,安裝gcc

 centos檢視是否安裝了gcc命令   rpm -qa|grep gcc*        

沒有就需要安裝 yum install gcc

2,安裝git

 yum install git

3,安裝go執行環境

1)下載安裝包  地址:https://golang.org/dl/

2)解壓該安裝包

/usr/local目錄下會多出go目錄

3)設定環境變數 vim/etc/profile   新增下列內容

GO_HOME=/usr/local/go

exportPATH=$PATH:$GO_HOME/bin

4)讓環境變數立即生效並檢查是否安裝成功

說明安裝成功了

4,下載ngrok原始碼   github地址:https://github.com/inconshreveable/ngrok

下載完畢,當前目錄下會有一個ngrok目錄

5,生成證書

starcup.top是我的二級域名,以它為示例

進入ngrok目錄下,執行下面命令

NGROK_DOMAIN="starcup.top"

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

opensslx509 -req -in server.csr -CA base.pem -CAkey base.key -CAcreateserial -days10000 -out server.crt

6,替換原本的證書

cpbase.pem assets/client/tls/ngrokroot.crt 

7編譯生成ngrok伺服器

make release-server release-client

這時bin目錄下有ngrokd檔案了

8,啟動ngrok伺服器 ,執行下面命令

./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="starcup.top" -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":4443"

domain 後面是生成證書的那個域名

-httpAddr http協議埠 預設為80

-httpsAddr https協議埠 預設為443

 -tunnelAddr 通道埠 預設4443

出現上圖說明成功啟動

9,編譯生成windows客戶端

GOOS=windows GOARCH=amd64 makerelease-client

然後bin目錄下會多了windows_amd64資料夾

進入windows_amd64目錄,新建ngrok.cfg檔案   命令 touchngrok.cfg

vim開啟新增以下內容

server_addr: "starcup.top:4443"

trust_host_root_certs:false

注意4443是上面-tunnelAddr指定的埠,要一致才行

10,將阿里雲伺服器中的windows_amd64資料夾下載到本地磁盤裡面  可以用WinSCP或ftp工具下載

11,啟動客戶端

在本地電腦開啟cmd,進入windows_amd64目錄下,執行下面命令

ngrok -config=ngrok.cfg  -log=ngrok.log  -subdomain=www  8080

結果如下:


12,每次啟動ngrok服務都要輸入很長的命令,下面將ngrok設定自定義service

以centos6.9示例

vim /etc/init.d/ngrok

#!/bin/bash

#chkconfig: - 99 01

##

#description: this is a ngrok customscript!

case $1 in

       start)

       cd /home/mysoft/ngrok/

       ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt-domain="starcup.top" -httpAddr=":80" -httpsAddr=":443"-tunnelAddr=":4443"

       echo ngrok  is running...

 

       ;;

       stop)

       echo 關閉視窗就行了

       ;;

       *)

       echo Usage:`basename $0` start|stop|restart

esac

修改ngrok檔案許可權

chomd 755 /etc/init.d/ngrok

以後就可以使用service ngrok start開啟ngrok服務了

13,問題:

如果你的ngrok.log日誌裡面顯示不能訪問你的域名對應的主機,則需要去阿里雲控制檯設定DNS 兩個A記錄泛解析*和@這樣建立的域名才能訪問你的本地配置的地址