阿里雲搭建自己的ngrok服務-實現內網穿透
參考博文:https://blog.csdn.net/qq_34292044/article/details/78559128
https://blog.csdn.net/huanxiang201311/article/details/72725891
一.環境準備
1.固定的ip地址,我用的是阿里雲,系統cenos6,比較老的系統。阿里雲有自己的安全組策略,請把你自己的埠加進安全組裡。如圖
2.需要有域名,已經域名解析。本文使用阿里萬網域名以及阿里dns解析。如圖
,域名當初買的是一年一塊錢,DNS解析如圖所示
點選解析設定,設定要解析的ip,然後域名要經過實名驗證才會生效
完成之後可以本地ping一下我們自己的域名,看會不會解析成我們自己的ip地址,網路是否通順
二 linux伺服器上安裝ngrok,開啟ngrok服務
1.安裝git和golang,其中git不是必須的,安裝git僅僅是為了後面下載ngrok原始碼方便,golang是因為ngrok是用go語言寫的
1.yum install gcc
2.yum install git ,若存在最好先執行yum remove git,再安裝,怕到時候下載不下來ngrok原始碼
3.安裝golang語言環境-wget https://studygolang.com/dl/golang/go1.8.linux-amd64.tar.gz。下載地址在https://studygolang.com/dl中找的,想換版本可以在這裡找
4.tar -zxvf go1.8.linux-amd64.tar.gz
5.vi /etc/profile 加上這兩句話
export GOROOT=你的go解壓地址
export PATH=$PATH:$GOROOT/bin
source /etc/profile 是環境生效
go version 檢視go是否安裝成功
2,。下載ngro原始碼,安裝
1.cd /software/git
2.git clone https://github.com/inconshreveable/ngrok.git
3.ngrok配置,執行一下命令。使用ngrok.com官方服務時,我們使用的是官方的SSL證書。自建ngrokd服務,如果不想買SSL證書,我們需要生成自己的自簽名證書,並編譯一個攜帶該證書的ngrok客戶端。
證書生成過程需要一個NGROK_BASE_DOMAIN。 填寫我們的域名地址
cd ngrok
NGROK_DOMAIN="你的域名"
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
經過以上步驟,證書已經生成
4 cp base.pem assets/client/tls/ngrokroot.crt 複製證書
5 make release-server release-client
這一步驟等待時間較長,成功編譯後,會在bin目錄下找到ngrokd和ngrok這兩個檔案。
6.前面生成的 ngrokd 就是服務端程式了,指定證書、域名和埠啟動它(證書就是前面生成的,注意修改域名)
./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="你的域名" -httpAddr=":80" -httpsAddr=":8082"
若正常的話會提示
7.生成ngrokwindows客戶端
GOOS=windowsGOARCH=amd64 make release-client windown系統
GOOS=windowsGOARCH=amd64 make release-client mac系統
8.然後在同級目錄下新建一個配置檔案ngrok.cfg:
server_addr: "你的域名:4443"
trust_host_root_certs: false
同目錄下新建一個start.bat
@echo on
cd %cd%
#ngrok -proto=tcp 22
#ngrok start web
ngrok -config=ngrok.cfg -log=ngrok.log -subdomain=wechat 80
雙擊start.bat 正常情況下有如下所示
三,優化ngrok服務-設定開機啟動
一,在ngrok程式目錄下新建一個啟動指令碼,例如:
start.sh
path=/software/git/ngrok
$path
./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="你的域名" -httpAddr=":80" -httpsAddr=":8082"
path為當前目錄的路徑
啟動指令碼要寫後臺啟動的指令碼,後面的啟動專案根據自己需要來寫
二,把ngrok程式製作成系統服務
在 /etc/rc.d/init.d目錄下新建一個服務專案(ngrok),如下:
[plain] view plain copy
#!/bin/sh
#chkconfig:2345 70 30
#description:ngrok
ngrok_path=/software/git/ngrok
case "$1" in
start)
echo "start ngrok service.."
sh ${ngrok_path}/start.sh
;;
*)
exit 1
;;
esac
給該檔案賦許可權755
chmod 755 ngrok
三,註冊ngrok服務自啟動
chkconfig --add ngrok
測試服務是否能啟動成功
service ngrok start
檢查自啟動的服務
chkconfig
reboot重啟就實現自啟後臺運行了