使用Ngrok進(jìn)行內(nèi)網(wǎng)穿透(Windows)
前言
相信很多開發(fā)者都有這樣的需求,需要讓外網(wǎng)訪問你本地的服務(wù)器,方便調(diào)試本地代碼,或者讓別人體驗(yàn)到自己做的應(yīng)用。那么這時(shí),我們需要做的就是將我們本地的端口映射到一個(gè)外網(wǎng)的端口上,也就是內(nèi)網(wǎng)穿透。常見的解決方案有 Ngrok, frp 等。本文將以 Ngrok 為例,講述如何使用 Ngrok 進(jìn)行內(nèi)網(wǎng)穿透。
Ngrok
Ngrok 是一個(gè)反向代理,通過在公共端點(diǎn)和本地運(yùn)行的 Web 服務(wù)器之間建立一個(gè)安全的通道,實(shí)現(xiàn)內(nèi)網(wǎng)主機(jī)的服務(wù)可以暴露給外網(wǎng)。Ngrok 可捕獲和分析所有通道上的流量,便于后期分析和重放,所以 Ngrok可以很方便地協(xié)助服務(wù)端程序測試。Ngrok希望幫人節(jié)省更多的時(shí)間去編程。只需一個(gè)命令,便可將一個(gè)本地服務(wù)器暴露在NAT或防火墻后面的互聯(lián)網(wǎng)。
Ngrok入門
首先到?Ngrok官網(wǎng)?進(jìn)行下載。

官網(wǎng)
解壓下載后的安裝包,得到一個(gè)ngrok.exe文件。

安裝包
運(yùn)行ngrok.exe文件,可以看到如下界面,展示的內(nèi)容有該程序的描述、例子、版本號(hào)、作者、命令行。Ngrok是一個(gè)命令行應(yīng)用,通過輸入指令,執(zhí)行相對應(yīng)的功能。

程序界面
經(jīng)過上面的步驟,我們已經(jīng)完成了安裝,接下來需要做的就是對ngrok進(jìn)行配置。我們需要配置authtoken(賬戶憑證)。這時(shí),我們需要到?Ngrok官網(wǎng)?注冊一個(gè)賬號(hào),然后在用戶中心里可以查到我們的authtoken(賬戶憑證),authtoken是每個(gè)用戶的身份憑證,請注意保密。

賬戶憑證
復(fù)制我們的用戶憑證,并在ngrok命令行中,輸入下面的命令,按回車鍵執(zhí)行。
(注意:2CZJkTcaAAXzRJx53AnD_6aVs8BBAaybUUpSMTxBCC這一串要換成你自己的authtoken)
ngrok authtoken 2CZJkTcaAAXzRJx53AnD_6aVs8BBAaybUUpSMTxBCC
執(zhí)行成功后,命令行界面中會(huì)出現(xiàn)下面的信息。此時(shí),代表配置成功。ngrok程序已經(jīng)在你的用戶目錄下,創(chuàng)建一個(gè).ngrok2文件夾,并在文件夾中創(chuàng)建一個(gè)配置文件ngrok.yml。
Authtoken saved to configuration file: C:\Users\acer/.ngrok2/ngrok.yml
在命令行界面中,執(zhí)行下面命令,即將本地端口80映射到外網(wǎng)中,如果需要映射其他端口,只需將80改成相對應(yīng)的端口即可。
ngrok http 80
執(zhí)行成功后,會(huì)出現(xiàn)如下界面,其中紅框標(biāo)出的,即映射出去的外網(wǎng)地址(http://eac71ad7.ngrok.io)。此時(shí),內(nèi)網(wǎng)穿透已經(jīng)完成,此時(shí)我們便可通過訪問該域名從外網(wǎng)訪問本地服務(wù)器了。

端口映射結(jié)果
注意:該程序需一直保持運(yùn)行,程序關(guān)閉,映射也將關(guān)閉。如果需要關(guān)閉映射,可以使用ctrl + c 或關(guān)閉該界面,進(jìn)行程序終止。每次重新執(zhí)行命令,映射外網(wǎng)的域名都會(huì)發(fā)生改變。如果希望域名不變,可通過開通ngrok的會(huì)員服務(wù),具體可在官網(wǎng)進(jìn)行查看。
擴(kuò)展
ngrok 除了提供端口映射之外,還提供了一個(gè)實(shí)時(shí)的Web UI,您可以在其中查看你的隧道上運(yùn)行的所有HTTP流量。在啟動(dòng) ngrok 之后,只需在Web瀏覽器中打開http://localhost:4040即可檢查請求詳細(xì)信息。
當(dāng)我們向公開網(wǎng)址發(fā)出請求之后,我們將可以在 Web UI 中看到請求和響應(yīng)的所有詳細(xì)信息,包括時(shí)間,持續(xù)時(shí)間,標(biāo)題,查詢參數(shù)和請求有效負(fù)載以及線上的原始字節(jié)。

流量監(jiān)控
未完待續(xù)
本文只是對 Ngrok 這個(gè)工具的一個(gè)小入門而已。隨著對這個(gè)工具的深扒,發(fā)現(xiàn)這個(gè)工具的功能甚是強(qiáng)大,內(nèi)網(wǎng)穿透只是它最基本的一個(gè)功能,它還有重放請求,請求正文驗(yàn)證,重寫主機(jī)頭等功能。只要運(yùn)用得好,還能夠做很多事情。今天就先到這了,算是一個(gè)拋磚引玉,希望能讓你對 Ngrok 有一些了解。最后附上在官網(wǎng)抄過來的幾句話。
Ngrok
One command for an instant, secure URL to your localhost server through any NAT or firewall.
public urls for building webhook integrations
public urls for sending previews to clients
public urls for testing your chatbot
public urls for demoing from your own machine
public urls for SSH access to your Raspberry Pi
public urls for exposeing your local web server
public urls for testing on mobile devices
參考資料
轉(zhuǎn)載自http://www.itdecent.cn/p/8103f29bbd90