服務(wù)端操作系統(tǒng):centos7
使用到的命令:
- yum install gcc -y 安裝編譯環(huán)境
- yum install git -y 安裝git 下載代碼用的
-
yum install golang 安裝golang語言 如果提示沒有安裝包則先執(zhí)行
rpm --import https://mirror.go-repo.io/centos/RPM-GPG-KEY-GO-REPO 和
curl -s https://mirror.go-repo.io/centos/go-repo.repo | tee /etc/yum.repos.d/go-repo.repo
然后再執(zhí)行 yum install golang就好了
- git clone https://github.com/tutumcloud/ngrok.git ngrok 下載ngrok代碼
- cd ngrok 切換到代碼目錄
生成證書
- NGROK_DOMAIN="tunnel.test.com" 設(shè)置你的域名,這里test.com就是你的頂級域名蛹疯,不建議直接設(shè)置頂級域名,免得影響別的子域名使用
- openssl genrsa -out base.key 2048 生成客戶端RSA私鑰 無加密
- openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.pem 生成客戶端公鑰
- openssl genrsa -out server.key 2048 生成服務(wù)端RSA私鑰 無加密
- openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csr 生成服務(wù)端公鑰
- openssl x509 -req -in server.csr -CA base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt 生成簽名
生成證書結(jié)束
- cp base.pem assets/client/tls/ngrokroot.crt 替換現(xiàn)有證書
- make release-server release-client 編譯生成服務(wù)器文件ngrokd和客戶端文件ngrok
上面命令生成的客戶端只能在和服務(wù)器環(huán)境一樣的系統(tǒng)上使用热监,我們可以根據(jù)客戶端使用的系統(tǒng)重新編譯客戶端執(zhí)行文件苍苞,比如:
GOOS=linux GOARCH=arm make release-client 生成安卓系統(tǒng)客戶端
GOOS=darwin GOARCH=amd64 make release-client 生成mac系統(tǒng)客戶端
GOOS=windows GOARCH=386 make release-client 生成windows客戶端
GOOS 表示運行系統(tǒng), GOARCH 表示系統(tǒng)架構(gòu)
- scp 用戶名@服務(wù)器ip:服務(wù)器文件路徑 本地存放路徑 #將客戶端文件下載到本地
域名解析
不建議直接解析頂級域名狼纬,免得影響別的子域名使用羹呵,假設(shè)test.com為頂級域名,我們使用tunnel作為穿透的二級域名
將tunnel.test.com 解析到服務(wù)器,記錄類型為A,記錄值填寫服務(wù)器ip
-
將*.tunnel.test.com 解析到服務(wù)器,記錄類型為CNAME,記錄值為tunnel.test.com
- ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="你生成證書時填的域名" -httpAddr=":8081" -httpsAddr=":8082" 服務(wù)器端啟動命令 端口任意填疗琉,沒被占用和能外網(wǎng)訪問就行
18.編輯客戶端配置文件冈欢,比如下面配置
-
ngrok -config ngrok.cfg start 隧道名1 隧道名2 ...... 客戶端啟動命令,windows把命令里面的ngrok替換為ngrok.exe盈简,然后在ngrok.exe所在目錄使用cmd終端執(zhí)行凑耻,出現(xiàn)下圖表示成功
本教程視頻實操版,地址:https://www.bilibili.com/video/BV1r5411n77K/柠贤,搭配食用更香哦香浩。