阿里雲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記錄泛解析*和@這樣建立的域名才能訪問你的本地配置的地址