【1】什么是內網穿透?
首先,我們生活中的網絡從應用上可以分為內網和外網;
內網就是你自己的網絡環境,就你自己能訪問,比如你本地測試進行的localhost;
外網就不言而喻了,你看網頁,視頻等這些網址都是外網。
那么什么又是內網穿透呢?簡單的說就是通過訪問一個外網地址,然后穿透到你的內網地址。
【2】內網穿透有什么用?
【情景1】
假設你寫了一個代碼功能,本地測試已經OK,此時,你要想讓千里之外的朋友幫你測試,會怎么做呢?
A方案:如果你的朋友懂代碼,你可以把代碼打包發給他,讓他在本地測試;
B方案:如果你的朋友不懂代碼,你只能搭建一套服務器,然后放到服務器上面,讓他通過外網訪問進行測試;
不論是A方案還是B方案,整個過程復雜繁瑣。特別是B方案,如果不會服務器部署那套,那直接白搭。
此時,ngrok 就可以派上用場了,只需要打開輸入一個命令,就可以讓你千里之外的朋友測試了,整個操作耗時5秒不到。
【情景2】
我們有時在對接各種授權的時候,比如微信授權,微信那邊會要一個帶有https的備案域名進行回調,如果你都還未申請這些東西,或者還正在申請(域名備案往往需要半個月左右),那么現在的你只能干等,以至于代碼都不能寫或測試。
此時,ngrok 同樣可以大顯身手,你可以在這個過程中,用 ngrok 給你的域名,配置到微信回調地址上,這樣就不影響正常開發了。
【3】實戰練習
說了這么多概念篇幅,就是為了讓你明白他的概念和用途,接下來我們寫個實戰例子,看看 ngrok 到底該怎么用?
(1)隨便創建一個 springboot 項目,然后在 Controller 中隨便寫一個請求的返回。

(2)啟動項目,本地進行訪問測試。

(3)下載 ngrok,然后雙擊打開。
下載鏈接:https://pan.baidu.com/s/1SafO2stm6RbgPVugOKBt0g ( 提取碼:fvm4 )
然后輸入命令:ngrok http 8080 (8080為你的程序訪問端口)

(4)然后我們就可以看到如下界面,現在我們拷貝那個https的網址。

(5)然后拼上你的方法路徑,進行訪問,可以看到這個帶https的域名也能夠訪問到你的程序。這樣的話,你不但自己可以測試,還可以把這個公網地址發給你讓千里之外的朋友,讓他幫你測試。

(6)并且每訪問一次,剛剛的那個窗口還會幫你記錄你的訪問歷史。
