1.入门
将本地Web服务器暴露给互联网
ngrok允许您将本地计算机上运行的Web服务器公开到Internet。 告诉ngrok你的网络服务器正在侦听哪个端口。
如果您不知道Web服务器正在侦听哪个端口,那么它可能是端口80,默认为HTTP。
示例:将本地计算机的端口80上的Web服务器暴露给Internet
ngrok http 80
当您启动ngrok时,它将在您的终端中显示一个UI,其中包含您的隧道的公共URL以及有关通过隧道进行连接的其他状态和度量信息。
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提供了一个实时的网络用户界面,您可以在其中内省您通过隧道运行的所有HTTP流量。 启动ngrok之后,只需在Web浏览器中打开 http:// localhost:4040 即可查看请求详细信息。
尝试向您的公开网址发出请求。 之后,回顾检查界面。 您将看到请求和响应的所有详细信息,包括时间,持续时间,头,查询参数和请求负载以及电线上的原始字节。
详细反思HTTP请求和响应
重播请求
开发由外部API发布的Webhook可能会通过要求您进行一些工作(如拨打电话)来触发挂接请求,从而减慢开发周期。 ngrok允许您通过单击重播任何请求,大大加快了迭代周期。 点击Web检查用户界面上任何请求右上角的“ 重播”按钮重播。
一次点击即可重播任何针对您的隧道式网络服务器的请求
请求身体验证
ngrok特别支持在网络上使用的最常见的数据交换格式。 请求或响应主体中的任何XML或JSON数据将自动为您打印并检查语法错误。
突出显示JSON语法错误的位置
安装你的Authtoken
在进一步部分描述的ngrok.com服务的许多高级功能要求您注册一个帐户 。 注册后,您需要使用信息显示板上显示的authtoken配置ngrok。 这将授予您访问仅帐户功能的权限。 ngrok有一个简单的'authtoken'命令,使这很容易。 在引擎盖下,所有authtoken命令都是在ngrok配置文件中添加(或修改) authtoken
属性。
安装你的authtoken
ngrok authtoken <YOUR_AUTHTOKEN>
2.HTTP隧道
自定义子域名
ngrok为您打开的HTTP隧道分配随机的十六进制名称。 这是一次性的个人用途。 但是,如果您在hackathon中显示该URL或与第三方Webhook集成,则如果隧道名称更改或难以阅读,则可能会令人沮丧。 您可以使用-subdomain
开关为隧道网址指定自定义子域。
示例:密码保护您的隧道
ngrok http -auth="username:password" 8080
自定义域上的隧道(白标网址)
您的隧道不会显示为ngrok.io
的子域,ngrok.io
可以在您的域上运行ngrok隧道。 要在dev.example.com
运行隧道,请按照下列步骤操作:
- 在
ngrok.com信息中心
的“保留”选项卡上输入dev.example.com
作为保留域。 这样可以确保没有其他人可以使用自己的隧道来劫持您的域名。 - 在信息中心上,点击“CNAME”图标复制您的CNAME目标。
- 从
dev.example.com
创建一个DNS CNAME记录到您的CNAME目标。 在这个例子中,我们将CNAME记录指向2w9c34maz.cname.ngrok.io
- 使用
-hostname
开关调用ngrok,并将自定义域的名称指定为参数。
示例:在自定义域上运行隧道
ngrok http -hostname=dev.example.com 8000
注意:通过HTTPS访问自定义域隧道仍然可以工作,但证书不匹配。 如果您有TLS证书/密钥对,请尝试使用TLS隧道。
禁用检查
ngrok记录您的隧道上的每个HTTP请求和响应以进行检查和重播。 虽然这对开发非常有用,但是当您在生产服务上运行ngrok时,您可能希望禁用它以实现安全性和性能。 使用-inspect
开关来禁用您的隧道检查。
示例:没有检查的http隧道
重写主机头
转发到本地端口时,ngrok根本不修改隧道HTTP请求,它们在接收到字节时被复制到服务器字节。 一些应用服务器(如WAMP,MAMP和pow)使用Host
头来确定要显示的开发站点。 因此,ngrok可以使用修改的主机头重写您的请求。 使用-host-header
开关重写传入的HTTP请求。
如果指定了rewrite
,则Host
头将被重写,以匹配转发地址的主机名部分。 任何其他值将导致将Host
头重写为该值。
将主机头重写为“site.dev”
ngrok http -host-header=rewrite site.dev:80
将主机头重写为'example.com'
ngrok http -host-header=example.com 80
仅隧道HTTP或HTTPS
HTTPS隧道使用ngrok.com证书终止ngrok.com服务器上的所有TLS(SSL)流量。 对于生产级服务,您需要使用自己的TLS密钥和证书对您的隧道流量进行加密。 使用TLS隧道,ngrok非常方便。
将TLS流量转发到端口443上的本地HTTPS服务器
ngrok tls -subdomain=encrypted 443
隧道运行后,尝试使用卷曲进行访问。
网友评论