2020-03-09

使用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

參考資料

Ngrok官網(wǎng)

Ngrok中文文檔


轉(zhuǎn)載自http://www.itdecent.cn/p/8103f29bbd90

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容