1.入門
將本地Web服務(wù)器暴露給互聯(lián)網(wǎng)
ngrok允許您將本地計(jì)算機(jī)上運(yùn)行的Web服務(wù)器公開到Internet。 告訴ngrok你的網(wǎng)絡(luò)服務(wù)器正在偵聽哪個端口哲戚。
如果您不知道Web服務(wù)器正在偵聽哪個端口爹耗,那么它可能是端口80耙考,默認(rèn)為HTTP谜喊。
示例:將本地計(jì)算機(jī)的端口80上的Web服務(wù)器暴露給Internet
ngrok http 80
當(dāng)您啟動ngrok時,它將在您的終端中顯示一個UI琳骡,其中包含您的隧道的公共URL以及有關(guān)通過隧道進(jìn)行連接的其他狀態(tài)和度量信息锅论。
ngrok控制臺UI
ngrok by @inconshreveable
Tunnel Status online
Version 2.0/2.0
Web Interface http://127.0.0.1:4040
Forwarding http://92832de0.ngrok.io -> localhost:80
Forwarding https://92832de0.ngrok.io -> localhost:80
Connnections ttl opn rt1 rt5 p50 p90
0 0 0.00 0.00 0.00 0.00
檢查您的流量
ngrok提供了一個實(shí)時的網(wǎng)絡(luò)用戶界面,您可以在其中內(nèi)省您通過隧道運(yùn)行的所有HTTP流量楣号。 啟動ngrok之后最易,只需在Web瀏覽器中打開 http:// localhost:4040 即可查看請求詳細(xì)信息。
嘗試向您的公開網(wǎng)址發(fā)出請求炫狱。 之后藻懒,回顧檢查界面。 您將看到請求和響應(yīng)的所有詳細(xì)信息视译,包括時間嬉荆,持續(xù)時間,頭酷含,查詢參數(shù)和請求負(fù)載以及電線上的原始字節(jié)鄙早。
詳細(xì)反思HTTP請求和響應(yīng)
重播請求
開發(fā)由外部API發(fā)布的Webhook可能會通過要求您進(jìn)行一些工作(如撥打電話)來觸發(fā)掛接請求,從而減慢開發(fā)周期椅亚。 ngrok允許您通過單擊重播任何請求限番,大大加快了迭代周期。 點(diǎn)擊Web檢查用戶界面上任何請求右上角的“ 重播”按鈕重播呀舔。
一次點(diǎn)擊即可重播任何針對您的隧道式網(wǎng)絡(luò)服務(wù)器的請求
請求身體驗(yàn)證
ngrok特別支持在網(wǎng)絡(luò)上使用的最常見的數(shù)據(jù)交換格式弥虐。 請求或響應(yīng)主體中的任何XML或JSON數(shù)據(jù)將自動為您打印并檢查語法錯誤。
突出顯示JSON語法錯誤的位置
安裝你的Authtoken
在進(jìn)一步部分描述的ngrok.com服務(wù)的許多高級功能要求您注冊一個帳戶 媚赖。 注冊后霜瘪,您需要使用信息顯示板上顯示的authtoken配置ngrok。 這將授予您訪問僅帳戶功能的權(quán)限惧磺。 ngrok有一個簡單的'authtoken'命令颖对,使這很容易。 在引擎蓋下豺妓,所有authtoken命令都是在ngrok配置文件中添加(或修改) authtoken
屬性惜互。
安裝你的authtoken
ngrok authtoken <YOUR_AUTHTOKEN>
2.HTTP隧道
自定義子域名
ngrok為您打開的HTTP隧道分配隨機(jī)的十六進(jìn)制名稱。 這是一次性的個人用途琳拭。 但是训堆,如果您在hackathon中顯示該URL或與第三方Webhook集成,則如果隧道名稱更改或難以閱讀白嘁,則可能會令人沮喪坑鱼。 您可以使用-subdomain
開關(guān)為隧道網(wǎng)址指定自定義子域。
示例:密碼保護(hù)您的隧道
ngrok http -auth="username:password" 8080
自定義域上的隧道(白標(biāo)網(wǎng)址)
您的隧道不會顯示為ngrok.io
的子域,ngrok.io
可以在您的域上運(yùn)行ngrok隧道鲁沥。 要在dev.example.com
運(yùn)行隧道呼股,請按照下列步驟操作:
- 在
ngrok.com信息中心
的“保留”選項(xiàng)卡上輸入dev.example.com
作為保留域。 這樣可以確保沒有其他人可以使用自己的隧道來劫持您的域名画恰。 - 在信息中心上彭谁,點(diǎn)擊“CNAME”圖標(biāo)復(fù)制您的CNAME目標(biāo)。
- 從
dev.example.com
創(chuàng)建一個DNS CNAME記錄到您的CNAME目標(biāo)允扇。 在這個例子中缠局,我們將CNAME記錄指向2w9c34maz.cname.ngrok.io
- 使用
-hostname
開關(guān)調(diào)用ngrok,并將自定義域的名稱指定為參數(shù)考润。
示例:在自定義域上運(yùn)行隧道
ngrok http -hostname=dev.example.com 8000
注意:通過HTTPS訪問自定義域隧道仍然可以工作狭园,但證書不匹配。 如果您有TLS證書/密鑰對糊治,請嘗試使用TLS隧道唱矛。
禁用檢查
ngrok記錄您的隧道上的每個HTTP請求和響應(yīng)以進(jìn)行檢查和重播。 雖然這對開發(fā)非常有用井辜,但是當(dāng)您在生產(chǎn)服務(wù)上運(yùn)行ngrok時绎谦,您可能希望禁用它以實(shí)現(xiàn)安全性和性能。 使用-inspect
開關(guān)來禁用您的隧道檢查粥脚。
示例:沒有檢查的http隧道
重寫主機(jī)頭
轉(zhuǎn)發(fā)到本地端口時燥滑,ngrok根本不修改隧道HTTP請求,它們在接收到字節(jié)時被復(fù)制到服務(wù)器字節(jié)阿逃。 一些應(yīng)用服務(wù)器(如WAMP,MAMP和pow)使用Host
頭來確定要顯示的開發(fā)站點(diǎn)赃蛛。 因此恃锉,ngrok可以使用修改的主機(jī)頭重寫您的請求。 使用-host-header
開關(guān)重寫傳入的HTTP請求呕臂。
如果指定了rewrite
破托,則Host
頭將被重寫,以匹配轉(zhuǎn)發(fā)地址的主機(jī)名部分歧蒋。 任何其他值將導(dǎo)致將Host
頭重寫為該值土砂。
將主機(jī)頭重寫為“site.dev”
ngrok http -host-header=rewrite site.dev:80
將主機(jī)頭重寫為'example.com'
ngrok http -host-header=example.com 80
僅隧道HTTP或HTTPS
HTTPS隧道使用ngrok.com證書終止ngrok.com服務(wù)器上的所有TLS(SSL)流量。 對于生產(chǎn)級服務(wù)谜洽,您需要使用自己的TLS密鑰和證書對您的隧道流量進(jìn)行加密萝映。 使用TLS隧道,ngrok非常方便阐虚。
將TLS流量轉(zhuǎn)發(fā)到端口443上的本地HTTPS服務(wù)器
ngrok tls -subdomain=encrypted 443
隧道運(yùn)行后序臂,嘗試使用卷曲進(jìn)行訪問。