超好用內網映射神器


本文收錄在企業項目實戰系列

一、概念用途

1、介紹

  ngrok是非常流行的反向代理服務,可以進行內網穿透,支持80端口以及自定義tcp端口轉發。這樣你就可以運行本地的程序,而讓別人通過公網訪問了

  ngrok 是一個反向代理,通過在公共的端點和本地運行的 Web 服務器之間建立一個安全的通道。ngrok 可捕獲和分析所有通道上的流量,便於后期分析和重放

  

2、為什么要使用ngrok?

作為一個Web開發者,我們有時候會需要臨時地將一個本地的Web網站部署到外網,以供他人體驗評價或協助調試等等,通常我們會這么做:

  ① 找到一台運行於外網的Web服務器

  ② 服務器上有網站所需要的環境,否則自行搭建

  ③ 將網站部署到服務器上

  ④ 調試結束后,再將網站從服務器上刪除

只不過是想向朋友展示一下網站而已,要不要這么麻煩,累感不愛╰(`□′)╯

  

3、有了ngrok之后,世界是如此的美好

① 首先注冊並下載ngrok,得到一串授權碼

② 運行命令ngrok -authtoken 你的授權碼 80,80是你本地Web服務的端口,而之后ngrok會記住你的授權碼,直接ngrok 80就OK了

③ 會得到一串網址,通過這個網址就可以訪問你本地的Web服務了

  

二、安裝

1、官網下載,解包

地址https://link.jianshu.com/?t=https://ngrok.com/download下載, 解壓

2、rz 並解包

unzip ngrok-stable-linux-amd64.zip -d /app/

會有一個ngrok 的執行文件

  

三、官網注冊賬戶,獲取隧道authtoken

1、注冊賬戶

https://dashboard.ngrok.com/user/signup

2、登錄並獲取隧道authtoken,且登錄后也有詳細的教程

3、在linux 上認證隧道authtoken

[root@centos app]# ./ngrok authtoken AuQ3TpQG35JL1HcK5WTM_7666C7RTfjYcZtoQyRHsG

會在/root/.ngrok2/ngrok.yml 下記錄隧道authtoken

  

4、./ngrok -h 可以查詢命令幫助

(1)注釋:

名稱:

   ngrok - 將本地端口連接到公共URL並檢查流量

描述:

    ngrok將NAT和防火牆后面的本地網絡服務暴露給網絡

    公共互聯網通過安全隧道。分享本地網站,建立/測試

    webhook消費者和自我主持的個人服務。

    每個命令的詳細幫助可以通過'ngrok help <command>'來獲得。

    打開http:// localhost:4040 for ngrok的Web界面來檢查流量。

  

例子:

    ngrok http 80#用於端口80 Web服務器的安全公共URL

    ngrok http -subdomain = baz 8080#port 8080可在baz.ngrok.io

    ngrok http foo.dev:80#隧道到主機:端口而不是本地主機

    ngrok tcp 22#將任意TCP流量隧道到端口22

    ngrok tls -hostname = foo.com 443#將foo.com的TLS流量傳送到端口443

    ngrok start foo bar baz#從配置文件啟動隧道

  

四、使用ngrok

1、先准備一個web服務和頁面

yum -y install httpd

systemctl start httpd

vim /var/www/html/index.html

hello word

  

2、開啟ngrok,測試http協議 80端口

(1)開啟ngrok 服務,會隨機給一個地址,在公網上訪問這個地址,即可訪問到內網的web服務

[root@centos app]# ./ngrok http 80

  

3、外網訪問,成功

  

4、為了安全也可以設置登錄賬戶和密碼

[root@master app]# ./ngrok http -auth="along:along" 80

登錄web頁面,需輸入賬號密碼

5、測試tcp協議 22端口

(1)在內網開啟ngrok,指定tcp 22端口

[root@master app]# ./ngrok tcp 22

(2)公網物理機測試

[root@along html]# ssh root@0.tcp.ngrok.io -p11053

 

五、ngrok 其他功能

1、自定義子域名

(1)介紹

因為自動生成的會隨機改變,如果想要固定訪問域名地址,需要自定義,這個功能需要付費!!!!!!!

舉例,新開一個隧道,以`along` 為名稱,后面跟Web端口 ngrok http -subdomain=along 8080

  

(2)在自己的ngrok 用戶里,自定義域名

① 打開ngrok的面板Reserved(保留的)標簽欄, 注冊一個想要保留的域名xxx.com

② 點擊CNAME按鈕,獲取DNS CNAME record,也就是后面的xxxx.ngrok.io

  

③ 激活該域名

ngrok http -hostname=xxxx.com 8000

  

2、關閉訪問檢測

ngrok http -inspect=false '端口號'

  

3、強制訪問網址為Http或者https

ngrok http -bind-tls=false site.dev:80

ngrok http -bind-tls=true site.dev:80

  

  

參考文檔

ngrok官網使用說明https://link.jianshu.com/?t=https://ngrok.com/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM