前言
雖然現(xiàn)在云服務非常普及了但有時需要隨時隨地使用高性能的開發(fā)服務器。租云服務一個是太貴了第二是整套環(huán)境重新搭建費時又費力沦泌。今天花了點時間使用Ngrok的網(wǎng)穿透能力基本搞定一個相對靠譜的環(huán)境溉痢。
以下步驟基本復制:https://xukimseven.github.io/2018/01/18/Ngrok%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F.html
只是有一些小步驟沒調(diào)通,自己做了些修改包雀。
1宿崭、準備
一臺云服務器(已租用),一個域名(其實也可以不用),并且域名解析到云服務器,并且服務器的操作系統(tǒng)為CentOS7(amd64)
2、安裝環(huán)境
安裝gcc和git(用于下載ngrok源碼)
yum install gcc -y
yum install git -y
3才写、安裝go語言環(huán)境
yum install -y mercurial git bzr subversion golang golang-pkg-windows-amd64 golang-pkg-windows-386
4葡兑、檢查環(huán)境安裝
git --version //( >= 1.7 )
go version
5、在服務器上搭建Ngrok服務
5.1.下載ngrok源碼
git clone https://github.com/inconshreveable/ngrok.git
5.2.生成證書
cd ngrok
#這里修改為自己的域名
export NGROK_DOMAIN="cbcye.com"
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
5.3.將新生成的證書替換赞草,執(zhí)行下面命令后 “y” 回車 一行一行執(zhí)行代碼讹堤!
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp device.crt assets/server/tls/snakeoil.crt
cp device.key assets/server/tls/snakeoil.key
6、編譯生成ngrokd(服務端)
GOOS=linux GOARCH=amd64 make release-server
? 生成在~/ngrok/bin/目錄中
7厨疙、編譯生成ngrok(客戶端)
GOOS=windows GOARCH=amd64 make release-client
? 生成在~/ngrok/bin/windows_amd64/目錄中
8洲守、用SSH Secure Shell Client工具
將~/ngrok/bin/windows_amd64/里的文件下載到本地Windows下,如D:\ngrok
9沾凄、在D:\ngrok中新建文件岖沛,改名為 ngrok.cfg
文件中輸入:
server_addr: cbcye.com:8083
trust_host_root_certs: false
tunnels:
thttp:
remote_port: 8080
proto:
tcp: 80
thttps:
remote_port: 8443
proto:
tcp: 443
mstsc:
remote_port: 3389
proto:
tcp: 3389
Ngrok Conigure配置文件采用YAML格式,即對縮進有要求搭独,冒號后面加空格才是數(shù)字婴削。以上 8083 80 443 與 遠程開啟的端口一致,
根據(jù)自己的實際情況在服務器后臺安全組規(guī)則中開啟或刪除牙肝。
10唉俗、開啟遠程服務
在ngrok目錄中
如果不在
cd ngrok
sudo ./bin/ngrokd -domain="cbcye.com" -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":8083" &
這里的端口號與config文件對應嗤朴,視情況而定
[16:05:23 CST 2018/01/09][INFO] (ngrok/log.(*PrefixLogger).Info:83) [registry][tun] No affinity cache specified
[16:05:23 CST 2018/01/09][INFO] (ngrok/log.Info:112) Listening for public http connections on [::]:80
[16:05:23 CST 2018/01/09][INFO] (ngrok/log.Info:112) Listening for public https connections on [::]:443
[16:05:23 CST 2018/01/09][INFO] (ngrok/log.Info:112) Listening for control and proxy connections on [::]:8083
[16:05:23 CST 2018/01/09][INFO] (ngrok/log.(*PrefixLogger).Info:83) [metrics] Reporting every 30 seconds
顯示此為成功開啟
11、開啟客戶機服務
在Windows中D:\ngrok新建文件 改名 start.bat
輸入:
ngrok -config=ngrok.cfg start http https ssh mstsc
直接雙擊運行
如果是為了在Windows中后臺運行則在bat文件前面增加如下代碼:
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:begin
ngrok
Tunnel Status online
Version 1.7/1.7
Forwarding http://www.abc.com -> 127.0.0.1:80
Forwarding https://www.abc.com -> 127.0.0.1:443
Forwarding tcp://abc.com:2222 -> 127.0.0.1:22
Forwarding tcp://abc.com:52222 -> 192.168.1.7:3389
Web Interface 127.0.0.1:4040
Conn 0
Avg Conn Time 0ms
表示成功虫溜,
不成功的話看看自己的開啟端口是否與config文件中對應
或查看服務器的遠程端口是否在安全組中打開
1㈡ⅰ!衡楞!這很重要Vǔ!瘾境!
關(guān)于ngrok在遠程開機自啟問題
服務器后臺開機啟動運行ngrok服務端:
1.以下內(nèi)容新建一個 start.sh 文件 放到 ~/ngrok/start.sh
~/ngrok/bin/ngrokd -domain="abc.com" -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":8083" &
給權(quán)限:
chmod 755 ~/ngrok/start.sh
2.新建ngrok啟動腳本文件
sudo vi /etc/init.d/ngrok
文件內(nèi)容:
!/bin/sh
# chkconfig: 2345 90 60
BEGIN INIT INFO
Provides: ngrok
Required-Start:
Required-Stop:
Default-Start: 2 3 4 5
Default-Stop: 0 1 6
Short-Description: Start or stop the ngrok Proxy.
END INIT INFO
ngrok_path=~/ngrok/
case "$1" in
start)
echo "start ngrok service.."
sh ${ngrok_path}/start.sh
;;
*)
exit 1
;;
esac
提示 : 運行sudo vi /etc/init.d/ngrok之后 F缧印!直接按鍵盤 I 進入編輯模式迷守,然后復制下面內(nèi)容 然后 “esc” ":" "wq" "!" “回車” 意思是保存退出犬绒!
3.ngrok腳本文件 給權(quán)限
cd /etc/init.d
chmod 755 ngrok
4.添加啟動服務 ngrok
chkconfig --add ngrok
5.測試服務是否能啟動成功
service ngrok start
6.查看自啟動的服務 是否有 nrgok !兑凿!
chkconfig
執(zhí)行這個代碼如果出現(xiàn)后面的就OK了?Α! ngrok 0:off 1:off 2:on 3:on 4:on 5:on 6:off
服務器ngrok的服務端開機自動啟動成功了@窕8篮住!
? 這樣一來圣絮,自己的電腦就成 了一臺服務器慷暂,只要電腦不關(guān),且連著網(wǎng)的話晨雳,就非常適合做一個小型網(wǎng)站的測試平臺了行瑞。
? 如果看到這篇文章還有什么疑問想要尋求幫助的,歡迎聯(lián)系本人餐禁。微博血久、qq、微信在文章末尾處帮非。歡迎來告訴我你的想法氧吐。
? 如需轉(zhuǎn)載,請注明出處末盔,謝謝筑舅。