如何讓你的本地上的項目不用部署到服務器也能讓外網看到?使用ngrok內網穿透實現

前言

hello啊,(~ ̄▽ ̄)~

本次的主題是如上題所示。

操作完後,闊以讓你本機上項目不用部署到服務器上也能讓別人看到(嘛~ 其實就是一種偷懶的方法啦~)

如果覺得沒那個必要的話,也闊以直接溜了(畢竟直接部署到服務器上面不就好咯φ(゜▽゜*)♪)

當然,像這種場景還是很多地方是需要的勒( •̀ ω •́ )✧,so! 直接進入主題吧!
在這裏插入圖片描述


一、準備工作

1、一臺雲服務器 :我的是騰訊雲服務器(只有配置啥的。。別管我配置是啥,你們肯定是越高越好撒!!)
2、一個解析後的域名:這個也是在騰訊雲上面買的(來來來,瞧一瞧,看一看,像這個 .com .cn 啥的超有牌面的好伐!)
3、一臺電腦:能啓就行 (要求不過分,就一臺能喫雞的電腦,這樣纔算標配好伐 (●ˇ∀ˇ●))
4、一個項目:能用就行 (至少登錄沒問題吧,界面也不能太醜吧,功能也不能太差吧…)
5、遠程控制軟件:我用的是finalshell (能操作就行啦~)


二、安裝ngrok運行環境 (liunx)

命令行1:

# 安裝 gcc 和gcc-c++  

yum -y install gcc
 
yum -y install gcc-c++
 
# 安裝 golang , 下載地址在https://studygolang.com/dl中找的,想換版本可以在這裏找
 
wget https://studygolang.com/dl/golang/go1.8.linux-amd64.tar.gz
 
tar -zxvf go1.8.linux-amd64.tar.gz

成功圖形1:
在這裏插入圖片描述
命令行2:


vi /etc/profile   #文件中加上環境變量
 
source /etc/profile   #使環境生效
 
go version   #查看go是否安裝成功

要加的環境變量2:

export GOROOT=你的go解壓地址
 
export PATH=$PATH:$GOROOT/bin

成功圖形2:

在這裏插入圖片描述
在這裏插入圖片描述

三、安裝ngrok (liunx)

命令行:


#安裝git 用於下載ngrok代碼

 yum -y install git
 
#克隆代碼,文件夾命名爲 ngrok-server,也可以填寫,默認就是ngrok
 
git clone https://github.com/inconshreveable/ngrok.git ngrok-server

成功圖形:
在這裏插入圖片描述

四、配置ngrok (liunx)

重點:
1、生成一個自己的客戶端的ssl證書
2、自己的雲服務器要打開安全組

(1)生成一個自己的客戶端ssl證書

注意! 證書生成過程需要一個NGROK_BASE_DOMAIN。 填寫我們的域名地址
命令行1:

cd ngrok-server    #進入安裝根目錄

NGROK_DOMAIN="javawwl.com"
 
openssl genrsa -out rootCA.key 2048
 
openssl req -new -x509 -nodes -key rootCA.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out rootCA.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 rootCA.pem -CAkey rootCA.key -CAcreateserial -days 10000 -out server.crt

成功圖形1:

在這裏插入圖片描述

命令行2:

#下面複製證書到默認讀取目錄下
\cp -rf rootCA.pem assets/client/tls/ngrokroot.crt
 
\cp -rf server.crt assets/server/tls/snakeoil.crt
 
\cp -rf server.key assets/server/tls/snakeoil.key

成功圖形2:

在這裏插入圖片描述

(2)設置安全組

這個就不過多講了,涉及到端口了,因爲每個人的端口設置度可以不一樣的哈。

在這裏插入圖片描述

五、生成客戶端和服務端並運行ngrok (liunx)

命令行1:


#linux服務端
 
GOOS=linux GOARCH=386 make release-server
 
#win客戶端
 
GOOS=windows GOARCH=386 make release-client

成功圖形1:
在這裏插入圖片描述
命令行2:

# 進入服務端
cd linux_386
 
#後臺運行服務端
nohup ./ngrokd -domain="javawwl.com"  -httpAddr=":8000" -httpsAddr=":8001" -tunnelAddr=":8002" &

成功圖形2:

在這裏插入圖片描述
在這裏插入圖片描述

六、下載window客戶端並配置運行 (window)

這個下載就行了,[]( ̄▽ ̄)*
在這裏插入圖片描述
然後增加兩個文件在同目錄下
在這裏插入圖片描述
ngrok.cfg 文件:

server_addr: javawwl.com:8002
trust_host_root_certs: false
 
tunnels:
 ssh-example:
  remote_port: 8093
  proto:
   tcp: 22
 sssh-example:
  emote_port: 3389
  proto:
   tcp: 3389
 ftp-example:
  remote_port: 21
  proto:
   tcp: 21
 http1-example:
  subdomain: blog1
  proto:
   http: 8013
   https: 8014
 http2-example:
  subdomain: blog2
  proto:
   http: 8080

start.bat 文件:

#啓動所有隧道
 
ngrok -config=ngrok.cfg start-all
 
pause
 
#啓動指定隧道
 
ngrok -config=ngrok.cfg start ssh-example sssh-example

接下來就點擊start.bat就行了?我的確實是歐克了,但是如果你項目的端口號啥的不一樣就完了
所以的放一波圖解:
在這裏插入圖片描述
在這裏插入圖片描述
想改動那個ngrok.cfg文件的話

可以康康文檔參考:ngrok中文文檔

但是還有最最重要的一步,創建子域名(針對不會爲自己域名創建子域名的人而寫的)

比如我上面的那個blog1和blog2,這些都是我創建的子域名,如果你們沒有創建的話,那:blog1.xxx.com肯定是訪問不了的

在這裏插入圖片描述

七、訪問 (window)

當然,在你關閉服務端,或者你關閉本地的客戶端之後,都是沒辦法聯通的,所以缺一不可。

想要用的時候打開就行。

在這裏插入圖片描述

就比如我的項目在我本地項目用的就是8013端口,那麼我在外面用http://blog1.javawwl.com:8000就可以訪問到了
在這裏插入圖片描述

後言

ngrok中文文檔:ngrok中文文檔

參考博客:linux服務器搭建ngrok服務-實現內網穿透

上面大佬寫的不錯,就是有些我之前沒搞明白的東西,所以就自己先嚐試了一下,再補全了。(大佬裏面還有自啓服務,我懶,不想寫了,大家隨意吧)

歐了,散了,散了,大家(~ ̄▽ ̄)~洗洗睡吧。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章