相信做Web開發的同學們,經常會遇到需要將本地部署的Web應用能夠讓公網環境直接訪問到的情況,例如微信應用調試、支付寶介面調試等。這個時候,一個叫ngrok的神器可能會幫到你,它提供了一個能夠在公網安全訪問內網Web主機的工具,能捕獲所有HTTP請求的內容,也支持TCP埠映射,支持Linux、Wi ...
相信做Web開發的同學們,經常會遇到需要將本地部署的Web應用能夠讓公網環境直接訪問到的情況,例如微信應用調試、支付寶介面調試等。這個時候,一個叫ngrok的神器可能會幫到你,它提供了一個能夠在公網安全訪問內網Web主機的工具,能捕獲所有HTTP請求的內容,也支持TCP埠映射,支持Linux、Windows、Mac OS X 等平臺。
我們現在就來小試下牛刀,感受下 ngrok 的好玩之處。
一、ngrok 下載
到官網下載ngrok小工具:https://ngrok.com/,工具體積很小,現在已經升級到 2.X 的版本,只支持64位操作系統,並被作者用於商業化。1.X版本的免費自定義固定二級功能變數名稱功能已經開始收費,這塊後面會說明。
二、ngrok 使用
以windows版本為例,把下載的壓縮包解壓到本機硬碟,用 DOS命令切換到 ngrok.exe 所在的目錄:
好了,接下來如何使用呢?我們來通過演示幾個簡單樣例來說明:
輸入 ngrok http 8001,回車,出現如下信息:
意思是 ,隨機分配一個公網可以訪問的二級功能變數名稱http://49412880.ngrok.io/ 轉發到我們本機的8001埠 ,這也就意味著,現在訪問 http://49412880.ngrok.io/ 就如同訪問內網的http://127.0.0.1:8001。
同時通過ngrok提供的管理界面(http://127.0.0.1:4040)可以清晰的看到當前有哪些連接、請求的URL等, 是不是很方便?但是上面分配的功能變數名稱是臨時且隨機的,一旦本機重啟或者ngrok重啟後,這個功能變數名稱就變化了。如何把一個固定的功能變數名稱映射到本機呢? V1.X的版本是可以免費支持將一個固定的二級功能變數名稱指向本機的,不過作者已經把 V2.X的版本商業化,所以固定功能變數名稱的轉發現在需要收費了,費用倒是不貴,有興趣的同學可以去官網看看。
當我們的機器綁定了多個IP時,通過指定IP來轉發映射:ngrok http 192.168.1.101:8006
也可以轉發同一區域網內其它的主機和埠:ngrok http 192.168.4.6:8008
TCP埠轉發:ngrok tcp 22
ngrok tcp 3389
這樣我們可以在公網SSH到內網Linux機器,遠程桌面到內網Windows機器了,當然外網埠也是臨時隨機的。如下圖,我們已經在公網環境下遠程到了內網windows機器上
怎麼樣,有意思吧。
三、ngrok小問題
不過需要說明一點,ngrok的訪問可能會不太穩定,原因你們都懂的,指不定哪天就被牆了。