簡簡單單教你實現內網穿透

 sudo ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="zzmd.superboycxx.top" -httpAddr=":8081" -httpsAddr=":8082"

 

屁話不講,先來看下效果:

 

1.搭建環境(安裝git,golang)

        因爲Ngrok是基於Go語言編寫的

 

sudo apt-get install build-essential golang mercurial git

 

2.安裝ngrok(運行下面命令,一般不會有問題的)

# git clone https://github.com/tutumcloud/ngrok.git ngrok
# cd ngrok
生成自簽名證書
$ cd ngrok

# NGROK_DOMAIN="ngrok.mdzz2333.cn"換成自己的域名哦

# 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

 


  在當前目錄,替換一個文件:

 

 cp base.pem assets/client/tls/ngrokroot.crt

 

3.編譯客戶端(看你自己,這裏可以有linux的,和windows的)

linux:

 

sudo make release-server release-client
這一步驟等待時間較長,成功編譯後,會在bin目錄下找到ngrokd和ngrok這兩個文件。
將/ngrok/bin目錄下的 ngrok 通過ssh的scp指令下載到當前客戶端所在的系統中。

 
scp username@serverIp:/ngrok/bin/ngrok /home/ubunutu/ngrok

 

 

windows:

 

GOOS=windows GOARCH=amd64 make release-client  

 

4.啓動服務端(域名換成自己的

 

# sudo ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="ngrok.mdzz2333.cn" -httpAddr=":8081" -httpsAddr=":8082"

通過 http://ngrok.mdzz2333.cn:8081 和 http://ngrok.mdzz2333.cn:8082 (大家要訪問自己的域名哦) 就可以訪問到 ngrok 提供的轉發服務訪問後看到提示:Tunnel pub.imququ.com:8081 not found,這說明萬事俱備,只差客戶端來連了。在服務端爲了保證服務的一直啓動,可以使用screen,此處略過apt install screen,你可以看我另一篇博客,裏面寫了,你搜索關鍵詞:screen
 

5.啓動客戶端

在根路徑下,創建一個ngrok配置文件:ngrok.cfg

server_addr: “ngrok.mdzz2333.cn:4443"
trust_host_root_certs: false

注意:這裏的server_addr換成前面配置的自簽名證書中的域名

另外,這個域名請提前解析到服務器IP,參考如下:

*.ngrok    ngrok.

接下來只需要指定子域、要轉發的協議和端口,以及配置文件,運行客戶端:

ngrok.exe -config=ngrok.cfg -log=ngrok.log -subdomain=test 8080  

 

 

 

 

 

 

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